Difference between revisions of "PinePhone Power Management"
Jump to navigation
Jump to search
Line 131: | Line 131: | ||
| Yes | | Yes | ||
| Yes | | Yes | ||
| Backlight PWM, LCD, Proximity sensor, Touchscreen [I2C, VCC] | | Backlight PWM, LCD, Proximity sensor VDD, Touchscreen [I2C, VCC] | ||
|- | |- | ||
| GPIO1-LDO | | GPIO1-LDO | ||
Line 185: | Line 185: | ||
The result of these changes would be that: | The result of these changes would be that: | ||
# The always-on part of the ANX7688 chip will always be powered | # The always-on part of the ANX7688 chip (AVDD33, DVDD1V8) will always be powered | ||
# GPIO1-LDO only needs to be powered when a USB cable is detected, and is enough to power the rest of the chip (except HDMI) | # GPIO1-LDO only needs to be powered when a USB cable is detected, and is enough to power the rest of the chip (except HDMI) | ||
# DLDO1 only needs to be enabled if the display pipeline or sensors are active, even if a USB cable is plugged in | # DLDO1 only needs to be enabled if the display pipeline or sensors are active, even if a USB cable is plugged in | ||
==== Sensors ==== | |||
# Swap the VDD and LEDA inputs of the STK3311-A sensor, moving VDD to DLDO1 and LEDA to GPIO0-LDO. The sensor VDD needs to match the I2C voltage, and the LED driver should be on a separate power supply from the sensors. There is some concern, because GPIO0-LDO has a 100mA limit, but the proximity sensor should work properly at the lowest LED drive current (12.5mA). | |||
==== Assignments after Suggested Changes ==== | ==== Assignments after Suggested Changes ==== | ||
Line 217: | Line 221: | ||
| Yes | | Yes | ||
| Yes | | Yes | ||
| HVCC, VCC-DSI; ANX7688 [HDMI_VT], HDMI [DDC, HPD], Proximity | | HVCC, VCC-DSI; ANX7688 [HDMI_VT], HDMI [DDC, HPD], Proximity sensor VDD, Sensor I2C, Sensor VDD | ||
|- | |||
| GPIO0-LDO | |||
| 2.8V-3.3V | |||
| Yes | |||
| Yes | |||
| Backlight PWM, LCD, Proximity LED, Touchscreen [I2C, VCC] | |||
|- | |- | ||
| GPIO1-LDO | | GPIO1-LDO |
Revision as of 00:13, 16 February 2020
The data on this page is based on the the PinePhone v1.1 - Braveheart.
Regulators
Current Assignments
Name/GPIO | Output Voltage | Can disable at runtime? | Can disable in suspend? | Consumers (internal/external separated by semicolon) |
---|---|---|---|---|
DCDC1 | 3.3V | No | No | VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN |
DCDC2 | DVFS | No | Yes | VDD-CPUX |
DCDC3 | DVFS | N/A | N/A | VDD-CPUX (polyphase with DCDC2) |
DCDC4 | N/A | Yes | Yes | Not used |
DCDC5 | 1.2V | No | Yes (future) | VCC-DRAM; DRAM |
DCDC6 | 1.1V | No | Yes (future) | VDD-SYS |
DC1SW | N/A | Yes | Yes | Not used |
ALDO1 | 2.8V | Yes | Yes | VCC-PE; Camera AFVCC, Camera DOVDD, CSI I2C, Pogo I2C |
ALDO2 | 1.8V | No | No | VCC-PL; Pogo INT |
ALDO3 | 3.0V | No | No | AVCC, KEYADC, VCC-PLL |
DLDO1 | 3.3V | No (ANX7688 [AVDD33, VCONN_EN Disable Pull-up]) | No | HVCC, VCC-DSI; ANX7688 [AVDD33, HDMI_VT, I2C, ANX-V1.0 Enable, VCONN_EN Disable Pull-up], HDMI [DDC, HPD], Proximity LED, Sensor I2C, Sensor VDD |
DLDO2 | 1.8V? 3.3V? | Yes | Yes | MIPI-DSI VIO |
DLDO3 | 2.8V | Yes | Yes | Camera AVDD |
DLDO4 | 1.8V-3.3V | Yes | Yes | VCC-PG; VQMMC1 |
ELDO1 | 1.8V | No | No (DRAM) | CPVDD; DRAM |
ELDO2 | N/A | Yes | Yes | Not used |
ELDO3 | 1.8V | Yes | Yes | Camera DVDD |
FLDO1 | 1.2V | Yes | Yes | HSIC-VCC (not used) |
FLDO2 | 1.1V | No | No (VDD-CPUS) | VDD-CPUS |
GPIO0-LDO | 2.8V-3.3V | Yes | Yes | Backlight PWM, LCD, Proximity sensor VDD, Touchscreen [I2C, VCC] |
GPIO1-LDO | 1.8V | No (ANX7688 DVDD1V8) | No | ANX7688 [AVDD1V8, DVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up] |
PD6 | 5.0V | Yes | Yes | USB OTG |
PD8 | 5.0V | Yes | Yes | Pogo supply, USB OTG via PD6 |
PD9 | 5.0V | Yes | Yes | VCONN (USB Type C) |
PH10 | PWM | Yes | Yes | Backlight |
PL7 | VBAT | Yes | Yes | Modem |
ANX-V1.0 | 1.0V | Yes | Yes | ANX7688 [AVDD1V0, DVDD1V0] |
Suggested Hardware Changes
ANX7688
- Move ANX7688 AVDD33 (the chip input only, not the other things connected to 3v3) and ANX7688 I2C Level Shift (3.3V side) from DLD01 to DCDC1
- Move ANX7688 DVDD1V8 (the chip input only, not the other things labeled DVDD1V8) from GPIO1-LDO to ALDO2
- Move ANX7688 ANX-V1.0 Regulator Enable and ANX7688 VCONN_EN Disable Pull-up from DLDO1 to GPIO1-LDO
The result of these changes would be that:
- The always-on part of the ANX7688 chip (AVDD33, DVDD1V8) will always be powered
- GPIO1-LDO only needs to be powered when a USB cable is detected, and is enough to power the rest of the chip (except HDMI)
- DLDO1 only needs to be enabled if the display pipeline or sensors are active, even if a USB cable is plugged in
Sensors
- Swap the VDD and LEDA inputs of the STK3311-A sensor, moving VDD to DLDO1 and LEDA to GPIO0-LDO. The sensor VDD needs to match the I2C voltage, and the LED driver should be on a separate power supply from the sensors. There is some concern, because GPIO0-LDO has a 100mA limit, but the proximity sensor should work properly at the lowest LED drive current (12.5mA).
Assignments after Suggested Changes
Note: Only regulators that were modified are included here.
Name/GPIO | Output Voltage | Can disable at runtime? | Can disable in suspend? | Consumers (internal/external separated by semicolon) |
---|---|---|---|---|
DCDC1 | 3.3V | No | No | VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; ANX7688 [AVDD33, I2C], Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN |
ALDO2 | 1.8V | No | No | VCC-PL; ANX7688 [DVDD1V8], Pogo INT |
DLDO1 | 3.3V | Yes | Yes | HVCC, VCC-DSI; ANX7688 [HDMI_VT], HDMI [DDC, HPD], Proximity sensor VDD, Sensor I2C, Sensor VDD |
GPIO0-LDO | 2.8V-3.3V | Yes | Yes | Backlight PWM, LCD, Proximity LED, Touchscreen [I2C, VCC] |
GPIO1-LDO | 1.8V | Yes | Yes | ANX7688 [ANX-V1.0 Enable, AVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up, VCONN_EN Disable Pull-up] |
Open Questions
- How is ANX1.8V actually powered? from GPIO1-LDO or PS or both?
- Is DLDO2 supposed to be 1.8V or 3.3V? The schematic says both in different places.
- If DLDO2 is 3.3V, can we spread the HDMI/DSI/Sensors better across DLDO1 and DLDO2 so they can be more independent?
Software Updates Needed
Drivers that Need Regulator Consumers
- LCD Panel for VCC-LCD
- MIPI-DSI/DPHY/Panel for MIPI-DSI VIO
- STK3311-A
Drivers that Need to Suspend Regulators
- STK3311-A
- LIS3MDL
- MPU6050
- Goodix touchscreen
- sunxi pinctrl (maybe)
- USB PHY
GPIO
Current Modem Pin Assignments
Note: only pins relevant to power management are included in this table.
Current Port L Pin Assignments
Pin | Signal Name | Description | Direction | Needed in suspend? |
---|---|---|---|---|
PL0 | PMU-SCK | AXP803 I2C/RSB Clock | O | Yes |
PL1 | PMU-SDA | AXP803 I2C/RSB Data | I/O | Yes |
PL2 | WL-REG-ON | Not Connected | N/A | N/A |
PL3 | WL-WAKE-AP | Wake-on-WLAN Interrupt | I | Yes |
PL4 | BT-RST-N | Bluetooth Reset Control | O | No (if held) |
PL5 | BT-WAKE-AP | Wake-on-BT Interrupt | I | Yes |
PL6 | DTR | Modem DTR (Wakeup Request) | O | No |
PL7 | 4G-PWR-BAT | Modem Power Supply Control | O | No (if held) |
PL8 | ANX7688-CABLE_DET | ANX7688 Cable Detection Interrupt | I | Yes |
PL9 | ANX_RESET | ANX7688 Reset Control | O | No (if held) |
PL10 | LCD-PWM | LCD Backlight PWM Brightness Control | O | No |
PL11 | ANX7688-INT | ANX7688 Alert Interrupt | I | Yes |
PL12 | POGO-INT | Pogo Pin Interrupt | I | Yes |
Pins Held During Suspend
Pins Active During Suspend
Suggested Hardware Changes
Open Questions
- What exactly is the modem PWRKEY connected to?