Difference between revisions of "PinePhone Power Management"
Jump to navigation
Jump to search
(→GPIO) |
|||
Line 16: | Line 16: | ||
| 3.3V | | 3.3V | ||
| No | | No | ||
| No | | No (VCC-IO) | ||
| VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN | | VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN | ||
|- | |- | ||
Line 64: | Line 64: | ||
| 1.8V | | 1.8V | ||
| No | | No | ||
| No | | No (VCC-PL) | ||
| VCC-PL; Pogo INT | | VCC-PL; Pogo INT | ||
|- | |- | ||
Line 70: | Line 70: | ||
| 3.0V | | 3.0V | ||
| No | | No | ||
| No | | No (KEYADC) | ||
| AVCC, KEYADC, VCC-PLL | | AVCC, KEYADC, VCC-PLL | ||
|- | |- | ||
| DLDO1 | | DLDO1 | ||
| 3.3V | | 3.3V | ||
| No | | No | ||
| No (ANX7688 AVDD33) | |||
| 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 | | 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 | ||
|- | |- | ||
Line 135: | Line 135: | ||
| GPIO1-LDO | | GPIO1-LDO | ||
| 1.8V | | 1.8V | ||
| No | |||
| No (ANX7688 DVDD1V8) | | No (ANX7688 DVDD1V8) | ||
| ANX7688 [AVDD1V8, DVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up] | | ANX7688 [AVDD1V8, DVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up] | ||
|- | |- |
Revision as of 00:57, 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-IO) | 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) | VCC-PL; Pogo INT |
ALDO3 | 3.0V | No | No (KEYADC) | AVCC, KEYADC, VCC-PLL |
DLDO1 | 3.3V | No | No (ANX7688 AVDD33) | 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 | 3.3V | Yes | Yes | Backlight PWM, LCD, Proximity sensor VDD, Touchscreen [I2C, VCC] |
GPIO1-LDO | 1.8V | No | No (ANX7688 DVDD1V8) | 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 | 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.
Pin | Signal Name | Description | Direction (as modem) | Needed in suspend? | Connected to |
---|---|---|---|---|---|
1 | WAKEUP_IN | Drive low to wake up the modem | I | No | PH7 (active high) |
2 | AP_READY | Drive high/low to signal the A64 is ready to receive URCs | I | No (if held) | NC |
4 | W_DISABLE# | Drive low to enter Airplane Mode | I | No (if held/tristate) | PH8 (active high) |
20 | RESET_N | Drive low to reset the modem | I | No (if held/tristate) | PC4 (active high) |
21 | PWRKEY | Drive low to turn the modem on/off | I | No (if held/tristate) | PB3 (active high) |
61 | STATUS | Open drain output, pulled low when the modem is on | O | No | PB3 |
62 | RI | Pulled low to request host wakeup | O | Yes | PB2 |
66 | DTR | Drive low to wake up the modem | I | No | PL6 (active low) |
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?