Simon Glass | 7ff6104 | 2021-08-08 12:20:28 -0600 | [diff] [blame] | 1 | menuconfig POWER |
| 2 | bool "Power" |
| 3 | default y |
| 4 | help |
| 5 | Enable support for power control in U-Boot. This includes support |
| 6 | for PMICs (Power-management Integrated Circuits) and some of the |
| 7 | features provided by PMICs. In particular, voltage regulators can |
| 8 | be used to enable/disable power and vary its voltage. That can be |
| 9 | useful in U-Boot to turn on boot peripherals and adjust CPU voltage |
| 10 | so that the clock speed can be increased. This enables the drivers |
| 11 | in drivers/power, drivers/power/pmic and drivers/power/regulator |
| 12 | as part of a build. |
| 13 | |
| 14 | if POWER |
Przemyslaw Marczak | 9a8bc95 | 2015-04-20 20:07:41 +0200 | [diff] [blame] | 15 | |
Simon Glass | 3133941 | 2021-08-08 12:20:27 -0600 | [diff] [blame] | 16 | config POWER_LEGACY |
| 17 | bool "Legacy power support" |
| 18 | help |
| 19 | Note: This is a legacy option. Use DM_PMIC instead. |
| 20 | |
| 21 | Enable support for power control in U-Boot. This includes support |
| 22 | for PMICs (Power-management Integrated Circuits) and some of the |
| 23 | features provided by PMICs. In particular, voltage regulators can |
| 24 | be used to enable/disable power and vary its voltage. That can be |
| 25 | useful in U-Boot to turn on boot peripherals and adjust CPU voltage |
| 26 | so that the clock speed can be increased. This enables the drivers |
| 27 | in drivers/power, drivers/power/pmic and drivers/power/regulator |
| 28 | as part of a build. |
| 29 | |
| 30 | config SPL_POWER_LEGACY |
| 31 | bool "Legacy power support in SPL" |
Tom Rini | 0a83cc2 | 2022-06-10 23:03:09 -0400 | [diff] [blame] | 32 | depends on SPL && !SPL_DM_PMIC |
Simon Glass | 3133941 | 2021-08-08 12:20:27 -0600 | [diff] [blame] | 33 | default y if POWER_LEGACY |
| 34 | help |
| 35 | Note: This is a legacy option. Use SPL_DM_PMIC instead. |
| 36 | |
| 37 | Enable support for power control in SPL. This includes support |
| 38 | for PMICs (Power-management Integrated Circuits) and some of the |
| 39 | features provided by PMICs. In particular, voltage regulators can |
| 40 | be used to enable/disable power and vary its voltage. That can be |
| 41 | useful in SPL to turn on boot peripherals and adjust CPU voltage |
| 42 | so that the clock speed can be increased. This enables the drivers |
| 43 | in drivers/power, drivers/power/pmic and drivers/power/regulator |
| 44 | as part of a build. |
| 45 | |
Simon Glass | 5e5c0cd | 2019-12-06 21:41:53 -0700 | [diff] [blame] | 46 | source "drivers/power/acpi_pmc/Kconfig" |
| 47 | |
Stephen Warren | 92c67fa | 2016-07-13 13:45:31 -0600 | [diff] [blame] | 48 | source "drivers/power/domain/Kconfig" |
| 49 | |
Przemyslaw Marczak | 9a8bc95 | 2015-04-20 20:07:41 +0200 | [diff] [blame] | 50 | source "drivers/power/pmic/Kconfig" |
| 51 | |
Przemyslaw Marczak | 08edd00 | 2015-04-20 20:07:42 +0200 | [diff] [blame] | 52 | source "drivers/power/regulator/Kconfig" |
| 53 | |
Hans de Goede | 70ce2c8 | 2015-09-30 15:12:30 +0200 | [diff] [blame] | 54 | choice |
| 55 | prompt "Select Sunxi PMIC Variant" |
| 56 | depends on ARCH_SUNXI |
| 57 | default AXP209_POWER if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I |
Chen-Yu Tsai | 478a3c5 | 2016-11-30 15:30:30 +0800 | [diff] [blame] | 58 | default AXP221_POWER if MACH_SUN6I || MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_R40 |
vishnupatekar | 91bce9c | 2015-11-29 01:07:21 +0800 | [diff] [blame] | 59 | default AXP818_POWER if MACH_SUN8I_A83T |
Icenowy Zheng | 365951a | 2020-10-26 22:19:34 +0800 | [diff] [blame] | 60 | default SUNXI_NO_PMIC if MACH_SUNXI_H3_H5 || MACH_SUN50I || MACH_SUN8I_V3S |
Hans de Goede | 70ce2c8 | 2015-09-30 15:12:30 +0200 | [diff] [blame] | 61 | |
| 62 | config SUNXI_NO_PMIC |
Masahiro Yamada | 78cd22a | 2016-08-12 10:26:50 +0900 | [diff] [blame] | 63 | bool "board without a pmic" |
Hans de Goede | 70ce2c8 | 2015-09-30 15:12:30 +0200 | [diff] [blame] | 64 | ---help--- |
| 65 | Select this for boards which do not use a PMIC. |
| 66 | |
| 67 | config AXP152_POWER |
Masahiro Yamada | 78cd22a | 2016-08-12 10:26:50 +0900 | [diff] [blame] | 68 | bool "axp152 pmic support" |
Hans de Goede | 70ce2c8 | 2015-09-30 15:12:30 +0200 | [diff] [blame] | 69 | depends on MACH_SUN5I |
Jagan Teki | feb2927 | 2018-02-14 22:28:30 +0530 | [diff] [blame] | 70 | select AXP_PMIC_BUS |
Hans de Goede | d728da1 | 2015-12-20 16:10:01 +0100 | [diff] [blame] | 71 | select CMD_POWEROFF |
Hans de Goede | 70ce2c8 | 2015-09-30 15:12:30 +0200 | [diff] [blame] | 72 | ---help--- |
| 73 | Select this to enable support for the axp152 pmic found on most |
| 74 | A10s boards. |
| 75 | |
| 76 | config AXP209_POWER |
Masahiro Yamada | 78cd22a | 2016-08-12 10:26:50 +0900 | [diff] [blame] | 77 | bool "axp209 pmic support" |
Icenowy Zheng | 365951a | 2020-10-26 22:19:34 +0800 | [diff] [blame] | 78 | depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUN8I_V3S |
Jagan Teki | feb2927 | 2018-02-14 22:28:30 +0530 | [diff] [blame] | 79 | select AXP_PMIC_BUS |
Michael van Slingerland | 8fb31fe | 2015-12-13 13:17:31 +0100 | [diff] [blame] | 80 | select CMD_POWEROFF |
Hans de Goede | 70ce2c8 | 2015-09-30 15:12:30 +0200 | [diff] [blame] | 81 | ---help--- |
| 82 | Select this to enable support for the axp209 pmic found on most |
| 83 | A10, A13 and A20 boards. |
| 84 | |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 85 | config AXP221_POWER |
Masahiro Yamada | 78cd22a | 2016-08-12 10:26:50 +0900 | [diff] [blame] | 86 | bool "axp221 / axp223 pmic support" |
Chen-Yu Tsai | 478a3c5 | 2016-11-30 15:30:30 +0800 | [diff] [blame] | 87 | depends on MACH_SUN6I || MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_R40 |
Jagan Teki | feb2927 | 2018-02-14 22:28:30 +0530 | [diff] [blame] | 88 | select AXP_PMIC_BUS |
Hans de Goede | 6391f0e | 2015-12-20 16:14:31 +0100 | [diff] [blame] | 89 | select CMD_POWEROFF |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 90 | ---help--- |
Hans de Goede | 70ce2c8 | 2015-09-30 15:12:30 +0200 | [diff] [blame] | 91 | Select this to enable support for the axp221/axp223 pmic found on most |
| 92 | A23 and A31 boards. |
| 93 | |
Jernej Skrabec | fde828c | 2021-01-11 21:11:33 +0100 | [diff] [blame] | 94 | config AXP305_POWER |
| 95 | bool "axp305 pmic support" |
| 96 | depends on MACH_SUN50I_H616 |
| 97 | select AXP_PMIC_BUS |
| 98 | select CMD_POWEROFF |
| 99 | ---help--- |
| 100 | Select this to enable support for the axp305 pmic found on most |
| 101 | H616 boards. |
| 102 | |
Andre Przywara | 107d1ae | 2023-07-30 01:11:01 +0100 | [diff] [blame] | 103 | config AXP313_POWER |
| 104 | bool "axp313 pmic support" |
| 105 | depends on MACH_SUN50I_H616 |
| 106 | select AXP_PMIC_BUS |
| 107 | select CMD_POWEROFF |
| 108 | ---help--- |
| 109 | Select this to enable support for the AXP313 PMIC found on some |
| 110 | H616 boards. |
| 111 | |
Andre Przywara | b95b901 | 2024-05-10 00:43:18 +0100 | [diff] [blame] | 112 | config AXP717_POWER |
| 113 | bool "axp717 pmic support" |
| 114 | select AXP_PMIC_BUS |
| 115 | select CMD_POWEROFF |
| 116 | ---help--- |
| 117 | Select this to enable support for the AXP717 PMIC found on some boards. |
| 118 | |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 119 | config AXP809_POWER |
Masahiro Yamada | 78cd22a | 2016-08-12 10:26:50 +0900 | [diff] [blame] | 120 | bool "axp809 pmic support" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 121 | depends on MACH_SUN9I |
Jagan Teki | feb2927 | 2018-02-14 22:28:30 +0530 | [diff] [blame] | 122 | select AXP_PMIC_BUS |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 123 | select CMD_POWEROFF |
| 124 | ---help--- |
| 125 | Say y here to enable support for the axp809 pmic found on A80 boards. |
| 126 | |
vishnupatekar | 91bce9c | 2015-11-29 01:07:21 +0800 | [diff] [blame] | 127 | config AXP818_POWER |
Masahiro Yamada | 78cd22a | 2016-08-12 10:26:50 +0900 | [diff] [blame] | 128 | bool "axp818 pmic support" |
vishnupatekar | 91bce9c | 2015-11-29 01:07:21 +0800 | [diff] [blame] | 129 | depends on MACH_SUN8I_A83T |
Jagan Teki | feb2927 | 2018-02-14 22:28:30 +0530 | [diff] [blame] | 130 | select AXP_PMIC_BUS |
Chen-Yu Tsai | 45f192c | 2016-05-02 10:28:14 +0800 | [diff] [blame] | 131 | select CMD_POWEROFF |
vishnupatekar | 91bce9c | 2015-11-29 01:07:21 +0800 | [diff] [blame] | 132 | ---help--- |
| 133 | Say y here to enable support for the axp818 pmic found on |
| 134 | A83T dev board. |
| 135 | |
Jelle van der Waa | 3f3a309 | 2016-02-23 18:47:19 +0100 | [diff] [blame] | 136 | config SY8106A_POWER |
Masahiro Yamada | 78cd22a | 2016-08-12 10:26:50 +0900 | [diff] [blame] | 137 | bool "SY8106A pmic support" |
Andre Przywara | 5fb9743 | 2017-02-16 01:20:27 +0000 | [diff] [blame] | 138 | depends on MACH_SUNXI_H3_H5 |
Jelle van der Waa | 3f3a309 | 2016-02-23 18:47:19 +0100 | [diff] [blame] | 139 | ---help--- |
| 140 | Select this to enable support for the SY8106A pmic found on some |
| 141 | H3 boards. |
| 142 | |
Hans de Goede | 70ce2c8 | 2015-09-30 15:12:30 +0200 | [diff] [blame] | 143 | endchoice |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 144 | |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 145 | config AXP_DCDC1_VOLT |
| 146 | int "axp pmic dcdc1 voltage" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 147 | depends on AXP221_POWER || AXP809_POWER || AXP818_POWER |
Chen-Yu Tsai | 478a3c5 | 2016-11-30 15:30:30 +0800 | [diff] [blame] | 148 | default 3300 if AXP818_POWER || MACH_SUN8I_R40 |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 149 | default 3000 if MACH_SUN6I || MACH_SUN8I || MACH_SUN9I |
Hans de Goede | 7865548 | 2014-12-13 14:12:06 +0100 | [diff] [blame] | 150 | ---help--- |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 151 | Set the voltage (mV) to program the axp pmic dcdc1 at, set to 0 to |
| 152 | disable dcdc1. On A23 / A31 / A33 (axp221) boards dcdc1 is used for |
| 153 | generic 3.3V IO voltage for external devices like the lcd-panal and |
| 154 | sdcard interfaces, etc. On most boards dcdc1 is undervolted to 3.0V to |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 155 | save battery. On A31 devices dcdc1 is also used for VCC-IO. On A83T |
| 156 | dcdc1 is used for VCC-IO, nand, usb0, sd , etc. On A80 dcdc1 normally |
| 157 | powers some of the pingroups, NAND/eMMC, SD/MMC, and USB OTG. |
Hans de Goede | 7865548 | 2014-12-13 14:12:06 +0100 | [diff] [blame] | 158 | |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 159 | config AXP_DCDC2_VOLT |
| 160 | int "axp pmic dcdc2 voltage" |
Andre Przywara | b95b901 | 2024-05-10 00:43:18 +0100 | [diff] [blame] | 161 | depends on AXP152_POWER || AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER || AXP313_POWER || AXP717_POWER |
vishnupatekar | 91bce9c | 2015-11-29 01:07:21 +0800 | [diff] [blame] | 162 | default 900 if AXP818_POWER |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 163 | default 1400 if AXP152_POWER || AXP209_POWER |
Andre Przywara | 107d1ae | 2023-07-30 01:11:01 +0100 | [diff] [blame] | 164 | default 1000 if AXP313_POWER |
Andre Przywara | b95b901 | 2024-05-10 00:43:18 +0100 | [diff] [blame] | 165 | default 1000 if AXP717_POWER |
Hans de Goede | cf96e3f | 2015-10-03 15:21:53 +0200 | [diff] [blame] | 166 | default 1200 if MACH_SUN6I |
| 167 | default 1100 if MACH_SUN8I |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 168 | default 0 if MACH_SUN9I |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 169 | ---help--- |
| 170 | Set the voltage (mV) to program the axp pmic dcdc2 at, set to 0 to |
| 171 | disable dcdc2. |
| 172 | On A10(s) / A13 / A20 boards dcdc2 is VDD-CPU and should be 1.4V. |
| 173 | On A31 boards dcdc2 is used for VDD-GPU and should be 1.2V. |
Hans de Goede | cf96e3f | 2015-10-03 15:21:53 +0200 | [diff] [blame] | 174 | On A23/A33 boards dcdc2 is used for VDD-SYS and should be 1.1V. |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 175 | On A80 boards dcdc2 powers the GPU and can be left off. |
vishnupatekar | 91bce9c | 2015-11-29 01:07:21 +0800 | [diff] [blame] | 176 | On A83T boards dcdc2 is used for VDD-CPUA(cluster 0) and should be 0.9V. |
Chen-Yu Tsai | 478a3c5 | 2016-11-30 15:30:30 +0800 | [diff] [blame] | 177 | On R40 boards dcdc2 is VDD-CPU and should be 1.1V |
Andre Przywara | b95b901 | 2024-05-10 00:43:18 +0100 | [diff] [blame] | 178 | On boards using the AXP313 or AXP717 it's often VDD-CPU. |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 179 | |
| 180 | config AXP_DCDC3_VOLT |
| 181 | int "axp pmic dcdc3 voltage" |
Andre Przywara | b95b901 | 2024-05-10 00:43:18 +0100 | [diff] [blame] | 182 | depends on AXP152_POWER || AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER || AXP313_POWER || AXP717_POWER |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 183 | default 900 if AXP809_POWER || AXP818_POWER |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 184 | default 1500 if AXP152_POWER |
| 185 | default 1250 if AXP209_POWER |
Andre Przywara | 107d1ae | 2023-07-30 01:11:01 +0100 | [diff] [blame] | 186 | default 1100 if AXP313_POWER |
Chen-Yu Tsai | 478a3c5 | 2016-11-30 15:30:30 +0800 | [diff] [blame] | 187 | default 1100 if MACH_SUN8I_R40 |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 188 | default 1200 if MACH_SUN6I || MACH_SUN8I |
| 189 | ---help--- |
| 190 | Set the voltage (mV) to program the axp pmic dcdc3 at, set to 0 to |
| 191 | disable dcdc3. |
| 192 | On A10(s) / A13 / A20 boards with an axp209 dcdc3 is VDD-INT-DLL and |
| 193 | should be 1.25V. |
| 194 | On A10s boards with an axp152 dcdc3 is VCC-DRAM and should be 1.5V. |
| 195 | On A23 / A31 / A33 boards dcdc3 is VDD-CPU and should be 1.2V. |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 196 | On A80 boards dcdc3 is used for VDD-CPUA(cluster 0) and should be 0.9V. |
vishnupatekar | 91bce9c | 2015-11-29 01:07:21 +0800 | [diff] [blame] | 197 | On A83T boards dcdc3 is used for VDD-CPUB(cluster 1) and should be 0.9V. |
Chen-Yu Tsai | 478a3c5 | 2016-11-30 15:30:30 +0800 | [diff] [blame] | 198 | On R40 boards dcdc3 is VDD-SYS and VDD-GPU and should be 1.1V. |
Andre Przywara | b95b901 | 2024-05-10 00:43:18 +0100 | [diff] [blame] | 199 | On boards using the AXP313 or AXP717 it's often VDD-DRAM and should |
| 200 | be 1.1V for LPDDR4. |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 201 | |
| 202 | config AXP_DCDC4_VOLT |
| 203 | int "axp pmic dcdc4 voltage" |
Andre Przywara | 2e370a3 | 2021-06-27 01:13:09 +0100 | [diff] [blame] | 204 | depends on AXP152_POWER || AXP221_POWER || AXP809_POWER || AXP305_POWER |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 205 | default 1250 if AXP152_POWER |
| 206 | default 1200 if MACH_SUN6I |
| 207 | default 0 if MACH_SUN8I |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 208 | default 900 if MACH_SUN9I |
Jernej Skrabec | fde828c | 2021-01-11 21:11:33 +0100 | [diff] [blame] | 209 | default 1500 if AXP305_POWER |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 210 | ---help--- |
| 211 | Set the voltage (mV) to program the axp pmic dcdc4 at, set to 0 to |
| 212 | disable dcdc4. |
| 213 | On A10s boards with an axp152 dcdc4 is VDD-INT-DLL and should be 1.25V. |
| 214 | On A31 boards dcdc4 is used for VDD-SYS and should be 1.2V. |
| 215 | On A23 / A33 boards dcdc4 is unused and should be disabled. |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 216 | On A80 boards dcdc4 powers VDD-SYS, HDMI, USB OTG and should be 0.9V. |
vishnupatekar | 91bce9c | 2015-11-29 01:07:21 +0800 | [diff] [blame] | 217 | On A83T boards dcdc4 is used for VDD-GPU. |
Jernej Skrabec | fde828c | 2021-01-11 21:11:33 +0100 | [diff] [blame] | 218 | On H616 boards dcdcd is used for VCC-DRAM. |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 219 | |
| 220 | config AXP_DCDC5_VOLT |
| 221 | int "axp pmic dcdc5 voltage" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 222 | depends on AXP221_POWER || AXP809_POWER || AXP818_POWER |
| 223 | default 1500 if MACH_SUN6I || MACH_SUN8I || MACH_SUN9I |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 224 | ---help--- |
| 225 | Set the voltage (mV) to program the axp pmic dcdc5 at, set to 0 to |
| 226 | disable dcdc5. |
Chen-Yu Tsai | 478a3c5 | 2016-11-30 15:30:30 +0800 | [diff] [blame] | 227 | On A23 / A31 / A33 / A80 / A83T / R40 boards dcdc5 is VCC-DRAM and |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 228 | should be 1.5V, 1.35V if DDR3L is used. |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 229 | |
| 230 | config AXP_ALDO1_VOLT |
| 231 | int "axp pmic (a)ldo1 voltage" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 232 | depends on AXP221_POWER || AXP809_POWER || AXP818_POWER |
Chen-Yu Tsai | 478a3c5 | 2016-11-30 15:30:30 +0800 | [diff] [blame] | 233 | default 0 if MACH_SUN6I || MACH_SUN8I_R40 |
Chen-Yu Tsai | c05aa39 | 2016-01-12 14:42:40 +0800 | [diff] [blame] | 234 | default 1800 if MACH_SUN8I_A83T |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 235 | default 3000 if MACH_SUN8I || MACH_SUN9I |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 236 | ---help--- |
| 237 | Set the voltage (mV) to program the axp pmic aldo1 at, set to 0 to |
| 238 | disable aldo1. |
| 239 | On A31 boards aldo1 is often used to power the wifi module. |
| 240 | On A23 / A33 boards aldo1 is used for VCC-IO and should be 3.0V. |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 241 | On A80 boards aldo1 powers the USB hosts and should be 3.0V. |
Chen-Yu Tsai | c05aa39 | 2016-01-12 14:42:40 +0800 | [diff] [blame] | 242 | On A83T / H8 boards aldo1 is used for MIPI CSI, DSI, HDMI, EFUSE, and |
| 243 | should be 1.8V. |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 244 | |
| 245 | config AXP_ALDO2_VOLT |
| 246 | int "axp pmic (a)ldo2 voltage" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 247 | depends on AXP152_POWER || AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 248 | default 3000 if AXP152_POWER || AXP209_POWER |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 249 | default 0 if MACH_SUN6I || MACH_SUN9I |
Chen-Yu Tsai | c05aa39 | 2016-01-12 14:42:40 +0800 | [diff] [blame] | 250 | default 1800 if MACH_SUN8I_A83T |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 251 | default 2500 if MACH_SUN8I |
Hans de Goede | c6c47c2 | 2015-08-14 16:19:34 +0200 | [diff] [blame] | 252 | ---help--- |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 253 | Set the voltage (mV) to program the axp pmic aldo2 at, set to 0 to |
| 254 | disable aldo2. |
| 255 | On A10(s) / A13 / A20 boards aldo2 is AVCC and should be 3.0V. |
| 256 | On A31 boards aldo2 is typically unused and should be disabled. |
| 257 | On A31 boards aldo2 may be used for LPDDR2 then it should be 1.8V. |
| 258 | On A23 / A33 boards aldo2 is used for VDD-DLL and should be 2.5V. |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 259 | On A80 boards aldo2 powers PB pingroup and camera IO and can be left off. |
Chen-Yu Tsai | c05aa39 | 2016-01-12 14:42:40 +0800 | [diff] [blame] | 260 | On A83T / H8 boards aldo2 powers VDD-DLL, VCC18-PLL, CPVDD, VDD18-ADC, |
| 261 | LPDDR2, and the codec. It should be 1.8V. |
Hans de Goede | c6c47c2 | 2015-08-14 16:19:34 +0200 | [diff] [blame] | 262 | |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 263 | config AXP_ALDO3_VOLT |
| 264 | int "axp pmic (a)ldo3 voltage" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 265 | depends on AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER |
| 266 | default 0 if AXP209_POWER || MACH_SUN9I |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 267 | default 3000 if MACH_SUN6I || MACH_SUN8I |
| 268 | ---help--- |
| 269 | Set the voltage (mV) to program the axp pmic aldo3 at, set to 0 to |
| 270 | disable aldo3. |
| 271 | On A10(s) / A13 / A20 boards aldo3 should be 2.8V. |
Chen-Yu Tsai | 478a3c5 | 2016-11-30 15:30:30 +0800 | [diff] [blame] | 272 | On A23 / A31 / A33 / R40 boards aldo3 is VCC-PLL and AVCC and should |
| 273 | be 3.0V. |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 274 | On A80 boards aldo3 is normally not used. |
Chen-Yu Tsai | c05aa39 | 2016-01-12 14:42:40 +0800 | [diff] [blame] | 275 | On A83T / H8 boards aldo3 is AVCC, VCC-PL, and VCC-LED, and should be |
| 276 | 3.0V. |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 277 | |
Olliver Schinagl | 353b4cf | 2018-11-21 20:05:30 +0200 | [diff] [blame] | 278 | choice |
| 279 | prompt "axp pmic (a)ldo3 voltage rate control" |
| 280 | depends on AXP209_POWER |
| 281 | default AXP_ALDO3_VOLT_SLOPE_NONE |
| 282 | ---help--- |
| 283 | The AXP can slowly ramp up voltage to reduce the inrush current when |
| 284 | changing voltages. |
| 285 | Note, this does not apply when enabling/disabling LDO3. See |
| 286 | "axp pmic (a)ldo3 inrush quirk" below to enable a slew rate to limit |
| 287 | inrush current on broken board designs. |
| 288 | |
| 289 | config AXP_ALDO3_VOLT_SLOPE_NONE |
| 290 | bool "No voltage slope" |
| 291 | ---help--- |
| 292 | Tries to reach the next voltage setting near instantaneously. Measurements |
| 293 | indicate that this is about 0.0167 V/uS. |
| 294 | |
| 295 | config AXP_ALDO3_VOLT_SLOPE_16 |
| 296 | bool "1.6 mV per uS" |
| 297 | ---help--- |
| 298 | Increases the voltage by 1.6 mV per uS until the final voltage has |
| 299 | been reached. Note that the scaling is in 25 mV steps and thus |
| 300 | the slew rate in reality is about 25 mV/31.250 uS. |
| 301 | |
| 302 | config AXP_ALDO3_VOLT_SLOPE_08 |
| 303 | bool "0.8 mV per uS" |
| 304 | ---help--- |
| 305 | Increases the voltage by 0.8 mV per uS until the final voltage has |
| 306 | been reached. Note that the scaling is in 25 mV steps however and thus |
| 307 | the slew rate in reality is about 25 mV/15.625 uS. |
| 308 | This is the slowest supported rate. |
| 309 | |
| 310 | endchoice |
| 311 | |
Olliver Schinagl | 9e77d61 | 2018-11-21 20:05:31 +0200 | [diff] [blame] | 312 | config AXP_ALDO3_INRUSH_QUIRK |
| 313 | bool "axp pmic (a)ldo3 inrush quirk" |
| 314 | depends on AXP209_POWER |
Olliver Schinagl | 9e77d61 | 2018-11-21 20:05:31 +0200 | [diff] [blame] | 315 | ---help--- |
| 316 | The reference design denotes a value of 4.7 uF for the output capacitor |
| 317 | of LDO3. Some boards have too high capacitance causing an inrush current |
| 318 | and resulting an AXP209 shutdown. |
| 319 | |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 320 | config AXP_ALDO4_VOLT |
| 321 | int "axp pmic (a)ldo4 voltage" |
| 322 | depends on AXP209_POWER |
Hans de Goede | a8c8491 | 2015-10-03 15:29:24 +0200 | [diff] [blame] | 323 | default 0 if AXP209_POWER |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 324 | ---help--- |
| 325 | Set the voltage (mV) to program the axp pmic aldo4 at, set to 0 to |
| 326 | disable aldo4. |
| 327 | On A10(s) / A13 / A20 boards aldo4 should be 2.8V. |
| 328 | |
| 329 | config AXP_DLDO1_VOLT |
| 330 | int "axp pmic dldo1 voltage" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 331 | depends on AXP221_POWER || AXP809_POWER || AXP818_POWER |
Hans de Goede | be4929c | 2014-12-13 14:02:38 +0100 | [diff] [blame] | 332 | default 0 |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 333 | ---help--- |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 334 | Set the voltage (mV) to program the axp pmic dldo1 at, set to 0 to |
| 335 | disable dldo1. On sun6i (A31) boards with ethernet dldo1 is often used |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 336 | to power the ethernet phy. On A23, A33 and A80 boards this is often |
| 337 | used to power the wifi. |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 338 | |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 339 | config AXP_DLDO2_VOLT |
| 340 | int "axp pmic dldo2 voltage" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 341 | depends on AXP221_POWER || AXP809_POWER || AXP818_POWER |
| 342 | default 3000 if MACH_SUN9I |
Hans de Goede | be4929c | 2014-12-13 14:02:38 +0100 | [diff] [blame] | 343 | default 0 |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 344 | ---help--- |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 345 | Set the voltage (mV) to program the axp pmic dldo2 at, set to 0 to |
| 346 | disable dldo2. |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 347 | On A80 boards dldo2 normally powers the PL pins and should be 3.0V. |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 348 | |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 349 | config AXP_DLDO3_VOLT |
| 350 | int "axp pmic dldo3 voltage" |
Chen-Yu Tsai | 265015b | 2016-01-12 14:42:38 +0800 | [diff] [blame] | 351 | depends on AXP221_POWER || AXP818_POWER |
Hans de Goede | be4929c | 2014-12-13 14:02:38 +0100 | [diff] [blame] | 352 | default 0 |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 353 | ---help--- |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 354 | Set the voltage (mV) to program the axp pmic dldo3 at, set to 0 to |
| 355 | disable dldo3. |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 356 | |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 357 | config AXP_DLDO4_VOLT |
| 358 | int "axp pmic dldo4 voltage" |
vishnupatekar | 91bce9c | 2015-11-29 01:07:21 +0800 | [diff] [blame] | 359 | depends on AXP221_POWER || AXP818_POWER |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 360 | default 0 |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 361 | ---help--- |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 362 | Set the voltage (mV) to program the axp pmic dldo4 at, set to 0 to |
| 363 | disable dldo4. |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 364 | |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 365 | config AXP_ELDO1_VOLT |
| 366 | int "axp pmic eldo1 voltage" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 367 | depends on AXP221_POWER || AXP809_POWER || AXP818_POWER |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 368 | default 0 |
| 369 | ---help--- |
| 370 | Set the voltage (mV) to program the axp pmic eldo1 at, set to 0 to |
| 371 | disable eldo1. |
| 372 | |
| 373 | config AXP_ELDO2_VOLT |
| 374 | int "axp pmic eldo2 voltage" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 375 | depends on AXP221_POWER || AXP809_POWER || AXP818_POWER |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 376 | default 0 |
Oliver Schinagl | d3a558d | 2013-07-26 12:56:58 +0200 | [diff] [blame] | 377 | ---help--- |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 378 | Set the voltage (mV) to program the axp pmic eldo2 at, set to 0 to |
| 379 | disable eldo2. |
Siarhei Siamashka | 7e4eb6c | 2015-01-19 05:23:30 +0200 | [diff] [blame] | 380 | |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 381 | config AXP_ELDO3_VOLT |
| 382 | int "axp pmic eldo3 voltage" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 383 | depends on AXP221_POWER || AXP809_POWER || AXP818_POWER |
| 384 | default 3000 if MACH_SUN9I |
Siarhei Siamashka | 7e4eb6c | 2015-01-19 05:23:30 +0200 | [diff] [blame] | 385 | default 0 |
| 386 | ---help--- |
Hans de Goede | 04bfd41 | 2015-09-30 15:22:42 +0200 | [diff] [blame] | 387 | Set the voltage (mV) to program the axp pmic eldo3 at, set to 0 to |
Siarhei Siamashka | 7e4eb6c | 2015-01-19 05:23:30 +0200 | [diff] [blame] | 388 | disable eldo3. On some A31(s) tablets it might be used to supply |
| 389 | 1.2V for the SSD2828 chip (converter of parallel LCD interface |
| 390 | into MIPI DSI). |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 391 | On A80 boards it powers the PM pingroup and should be 3.0V. |
Przemyslaw Marczak | 9a8bc95 | 2015-04-20 20:07:41 +0200 | [diff] [blame] | 392 | |
Chen-Yu Tsai | d028fba | 2016-03-30 00:26:48 +0800 | [diff] [blame] | 393 | config AXP_FLDO1_VOLT |
| 394 | int "axp pmic fldo1 voltage" |
| 395 | depends on AXP818_POWER |
| 396 | default 0 if MACH_SUN8I_A83T |
| 397 | ---help--- |
| 398 | Set the voltage (mV) to program the axp pmic fldo1 at, set to 0 to |
| 399 | disable fldo1. |
| 400 | On A83T / H8 boards fldo1 is VCC-HSIC and should be 1.2V if HSIC is |
| 401 | used. |
| 402 | |
| 403 | config AXP_FLDO2_VOLT |
Chen-Yu Tsai | 7096534 | 2016-05-02 10:28:11 +0800 | [diff] [blame] | 404 | int "axp pmic fldo2 voltage" |
Chen-Yu Tsai | d028fba | 2016-03-30 00:26:48 +0800 | [diff] [blame] | 405 | depends on AXP818_POWER |
| 406 | default 900 if MACH_SUN8I_A83T |
| 407 | ---help--- |
| 408 | Set the voltage (mV) to program the axp pmic fldo2 at, set to 0 to |
| 409 | disable fldo2. |
| 410 | On A83T / H8 boards fldo2 is VCC-CPUS and should be 0.9V. |
| 411 | |
| 412 | config AXP_FLDO3_VOLT |
| 413 | int "axp pmic fldo3 voltage" |
| 414 | depends on AXP818_POWER |
| 415 | default 0 |
| 416 | ---help--- |
| 417 | Set the voltage (mV) to program the axp pmic fldo3 at, set to 0 to |
| 418 | disable fldo3. |
| 419 | |
Chen-Yu Tsai | 0e3efd3 | 2016-05-02 10:28:12 +0800 | [diff] [blame] | 420 | config AXP_SW_ON |
| 421 | bool "axp pmic sw on" |
Chen-Yu Tsai | f1e66e7 | 2016-05-02 10:28:15 +0800 | [diff] [blame] | 422 | depends on AXP809_POWER || AXP818_POWER |
Chen-Yu Tsai | 0e3efd3 | 2016-05-02 10:28:12 +0800 | [diff] [blame] | 423 | ---help--- |
| 424 | Enable to turn on axp pmic sw. |
| 425 | |
Jelle van der Waa | 3f3a309 | 2016-02-23 18:47:19 +0100 | [diff] [blame] | 426 | config SY8106A_VOUT1_VOLT |
| 427 | int "SY8106A pmic VOUT1 voltage" |
| 428 | depends on SY8106A_POWER |
| 429 | default 1200 |
| 430 | ---help--- |
| 431 | Set the voltage (mV) to program the SY8106A pmic VOUT1. This |
| 432 | is typically used to power the VDD-CPU and should be 1200mV. |
| 433 | Values can range from 680mV till 1950mV. |
| 434 | |
Tom Rini | 7b6e5d0 | 2022-11-19 18:45:35 -0500 | [diff] [blame] | 435 | config TPS6586X_POWER |
| 436 | bool "Enable legacy driver for TI TPS6586x power management chip" |
| 437 | |
Adam Ford | bc16804 | 2017-04-26 13:41:31 -0500 | [diff] [blame] | 438 | config TWL4030_POWER |
| 439 | depends on OMAP34XX |
| 440 | bool "Enable driver for TI TWL4030 power management chip" |
Adam Ford | c53d613 | 2017-05-13 07:02:24 -0500 | [diff] [blame] | 441 | imply CMD_POWEROFF |
Adam Ford | bc16804 | 2017-04-26 13:41:31 -0500 | [diff] [blame] | 442 | ---help--- |
| 443 | The TWL4030 in a combination audio CODEC/power management with |
| 444 | GPIO and it is commonly used with the OMAP3 family of processors |
| 445 | |
Frank Wunderlich | 06aeb74 | 2019-11-22 15:32:24 +0100 | [diff] [blame] | 446 | config POWER_MT6323 |
| 447 | bool "Poweroff driver for mediatek mt6323" |
| 448 | select CMD_POWEROFF |
| 449 | help |
| 450 | This adds poweroff driver for mt6323 |
| 451 | this pmic is used on mt7623 / Bananapi R2 |
| 452 | |
Tom Rini | ac7f321 | 2022-06-25 11:02:38 -0400 | [diff] [blame] | 453 | config PALMAS_POWER |
| 454 | bool "Palmas power support" |
| 455 | depends on OMAP54XX |
| 456 | |
Tom Rini | db9d925 | 2022-11-19 18:45:15 -0500 | [diff] [blame] | 457 | config POWER_FSL |
| 458 | bool "Power control (legacy) for Freescale / NXP platforms" |
| 459 | depends on POWER_LEGACY |
| 460 | |
Simon Glass | 3133941 | 2021-08-08 12:20:27 -0600 | [diff] [blame] | 461 | config POWER_I2C |
| 462 | bool "I2C-based power control for legacy power" |
| 463 | depends on POWER_LEGACY |
| 464 | help |
| 465 | Enable this to use the I2C driver designed for the legacy PMIC |
| 466 | interface. |
| 467 | |
| 468 | Not to be used for new designs and existing ones should be moved to |
| 469 | the new PMIC interface based on driver model. |
| 470 | |
Tom Rini | db9d925 | 2022-11-19 18:45:15 -0500 | [diff] [blame] | 471 | config POWER_SPI |
| 472 | bool "SPI-based power control for legacy power_fsl driver" |
| 473 | depends on POWER_FSL && !POWER_I2C |
| 474 | |
Simon Glass | 3133941 | 2021-08-08 12:20:27 -0600 | [diff] [blame] | 475 | config SPL_POWER_I2C |
| 476 | bool "I2C-based power control for legacy power" |
| 477 | depends on SPL_POWER_LEGACY |
| 478 | default y if POWER_I2C |
| 479 | help |
| 480 | Enable this to use the I2C driver designed for the legacy PMIC |
| 481 | interface. |
| 482 | |
| 483 | Not to be used for new designs and existing ones should be moved to |
| 484 | the new PMIC interface based on driver model. |
| 485 | |
Tom Rini | db9d925 | 2022-11-19 18:45:15 -0500 | [diff] [blame] | 486 | choice |
| 487 | prompt "PMIC chip" |
| 488 | default POWER_FSL_MC13892 |
| 489 | depends on POWER_FSL && POWER_I2C |
| 490 | |
| 491 | config POWER_FSL_MC13892 |
| 492 | bool "MC13892" |
| 493 | |
| 494 | config POWER_FSL_MC34704 |
| 495 | bool "MC34704" |
| 496 | |
| 497 | endchoice |
| 498 | |
Simon Glass | 7ff6104 | 2021-08-08 12:20:28 -0600 | [diff] [blame] | 499 | endif |