1menuconfig 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 14if POWER 15 16config 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 30config SPL_POWER_LEGACY 31 bool "Legacy power support in SPL" 32 default y if POWER_LEGACY 33 help 34 Note: This is a legacy option. Use SPL_DM_PMIC instead. 35 36 Enable support for power control in SPL. This includes support 37 for PMICs (Power-management Integrated Circuits) and some of the 38 features provided by PMICs. In particular, voltage regulators can 39 be used to enable/disable power and vary its voltage. That can be 40 useful in SPL to turn on boot peripherals and adjust CPU voltage 41 so that the clock speed can be increased. This enables the drivers 42 in drivers/power, drivers/power/pmic and drivers/power/regulator 43 as part of a build. 44 45source "drivers/power/acpi_pmc/Kconfig" 46 47source "drivers/power/domain/Kconfig" 48 49source "drivers/power/pmic/Kconfig" 50 51source "drivers/power/regulator/Kconfig" 52 53choice 54 prompt "Select Sunxi PMIC Variant" 55 depends on ARCH_SUNXI 56 default AXP209_POWER if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I 57 default AXP221_POWER if MACH_SUN6I || MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_R40 58 default AXP305_POWER if MACH_SUN50I_H616 59 default AXP818_POWER if MACH_SUN8I_A83T 60 default SUNXI_NO_PMIC if MACH_SUNXI_H3_H5 || MACH_SUN50I || MACH_SUN8I_V3S 61 62config SUNXI_NO_PMIC 63 bool "board without a pmic" 64 ---help--- 65 Select this for boards which do not use a PMIC. 66 67config AXP152_POWER 68 bool "axp152 pmic support" 69 depends on MACH_SUN5I 70 select AXP_PMIC_BUS 71 select CMD_POWEROFF 72 ---help--- 73 Select this to enable support for the axp152 pmic found on most 74 A10s boards. 75 76config AXP209_POWER 77 bool "axp209 pmic support" 78 depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUN8I_V3S 79 select AXP_PMIC_BUS 80 select CMD_POWEROFF 81 ---help--- 82 Select this to enable support for the axp209 pmic found on most 83 A10, A13 and A20 boards. 84 85config AXP221_POWER 86 bool "axp221 / axp223 pmic support" 87 depends on MACH_SUN6I || MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_R40 88 select AXP_PMIC_BUS 89 select CMD_POWEROFF 90 ---help--- 91 Select this to enable support for the axp221/axp223 pmic found on most 92 A23 and A31 boards. 93 94config 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 103config AXP809_POWER 104 bool "axp809 pmic support" 105 depends on MACH_SUN9I 106 select AXP_PMIC_BUS 107 select CMD_POWEROFF 108 ---help--- 109 Say y here to enable support for the axp809 pmic found on A80 boards. 110 111config AXP818_POWER 112 bool "axp818 pmic support" 113 depends on MACH_SUN8I_A83T 114 select AXP_PMIC_BUS 115 select CMD_POWEROFF 116 ---help--- 117 Say y here to enable support for the axp818 pmic found on 118 A83T dev board. 119 120config SY8106A_POWER 121 bool "SY8106A pmic support" 122 depends on MACH_SUNXI_H3_H5 123 ---help--- 124 Select this to enable support for the SY8106A pmic found on some 125 H3 boards. 126 127endchoice 128 129config AXP_DCDC1_VOLT 130 int "axp pmic dcdc1 voltage" 131 depends on AXP221_POWER || AXP809_POWER || AXP818_POWER 132 default 3300 if AXP818_POWER || MACH_SUN8I_R40 133 default 3000 if MACH_SUN6I || MACH_SUN8I || MACH_SUN9I 134 ---help--- 135 Set the voltage (mV) to program the axp pmic dcdc1 at, set to 0 to 136 disable dcdc1. On A23 / A31 / A33 (axp221) boards dcdc1 is used for 137 generic 3.3V IO voltage for external devices like the lcd-panal and 138 sdcard interfaces, etc. On most boards dcdc1 is undervolted to 3.0V to 139 save battery. On A31 devices dcdc1 is also used for VCC-IO. On A83T 140 dcdc1 is used for VCC-IO, nand, usb0, sd , etc. On A80 dcdc1 normally 141 powers some of the pingroups, NAND/eMMC, SD/MMC, and USB OTG. 142 143config AXP_DCDC2_VOLT 144 int "axp pmic dcdc2 voltage" 145 depends on AXP152_POWER || AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER 146 default 900 if AXP818_POWER 147 default 1400 if AXP152_POWER || AXP209_POWER 148 default 1200 if MACH_SUN6I 149 default 1100 if MACH_SUN8I 150 default 0 if MACH_SUN9I 151 ---help--- 152 Set the voltage (mV) to program the axp pmic dcdc2 at, set to 0 to 153 disable dcdc2. 154 On A10(s) / A13 / A20 boards dcdc2 is VDD-CPU and should be 1.4V. 155 On A31 boards dcdc2 is used for VDD-GPU and should be 1.2V. 156 On A23/A33 boards dcdc2 is used for VDD-SYS and should be 1.1V. 157 On A80 boards dcdc2 powers the GPU and can be left off. 158 On A83T boards dcdc2 is used for VDD-CPUA(cluster 0) and should be 0.9V. 159 On R40 boards dcdc2 is VDD-CPU and should be 1.1V 160 161config AXP_DCDC3_VOLT 162 int "axp pmic dcdc3 voltage" 163 depends on AXP152_POWER || AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER 164 default 900 if AXP809_POWER || AXP818_POWER 165 default 1500 if AXP152_POWER 166 default 1250 if AXP209_POWER 167 default 1100 if MACH_SUN8I_R40 168 default 1200 if MACH_SUN6I || MACH_SUN8I 169 ---help--- 170 Set the voltage (mV) to program the axp pmic dcdc3 at, set to 0 to 171 disable dcdc3. 172 On A10(s) / A13 / A20 boards with an axp209 dcdc3 is VDD-INT-DLL and 173 should be 1.25V. 174 On A10s boards with an axp152 dcdc3 is VCC-DRAM and should be 1.5V. 175 On A23 / A31 / A33 boards dcdc3 is VDD-CPU and should be 1.2V. 176 On A80 boards dcdc3 is used for VDD-CPUA(cluster 0) and should be 0.9V. 177 On A83T boards dcdc3 is used for VDD-CPUB(cluster 1) and should be 0.9V. 178 On R40 boards dcdc3 is VDD-SYS and VDD-GPU and should be 1.1V. 179 180config AXP_DCDC4_VOLT 181 int "axp pmic dcdc4 voltage" 182 depends on AXP152_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER || AXP305_POWER 183 default 1250 if AXP152_POWER 184 default 1200 if MACH_SUN6I 185 default 0 if MACH_SUN8I 186 default 900 if MACH_SUN9I 187 default 1500 if AXP305_POWER 188 ---help--- 189 Set the voltage (mV) to program the axp pmic dcdc4 at, set to 0 to 190 disable dcdc4. 191 On A10s boards with an axp152 dcdc4 is VDD-INT-DLL and should be 1.25V. 192 On A31 boards dcdc4 is used for VDD-SYS and should be 1.2V. 193 On A23 / A33 boards dcdc4 is unused and should be disabled. 194 On A80 boards dcdc4 powers VDD-SYS, HDMI, USB OTG and should be 0.9V. 195 On A83T boards dcdc4 is used for VDD-GPU. 196 On H616 boards dcdcd is used for VCC-DRAM. 197 198config AXP_DCDC5_VOLT 199 int "axp pmic dcdc5 voltage" 200 depends on AXP221_POWER || AXP809_POWER || AXP818_POWER 201 default 1500 if MACH_SUN6I || MACH_SUN8I || MACH_SUN9I 202 ---help--- 203 Set the voltage (mV) to program the axp pmic dcdc5 at, set to 0 to 204 disable dcdc5. 205 On A23 / A31 / A33 / A80 / A83T / R40 boards dcdc5 is VCC-DRAM and 206 should be 1.5V, 1.35V if DDR3L is used. 207 208config AXP_ALDO1_VOLT 209 int "axp pmic (a)ldo1 voltage" 210 depends on AXP221_POWER || AXP809_POWER || AXP818_POWER 211 default 0 if MACH_SUN6I || MACH_SUN8I_R40 212 default 1800 if MACH_SUN8I_A83T 213 default 3000 if MACH_SUN8I || MACH_SUN9I 214 ---help--- 215 Set the voltage (mV) to program the axp pmic aldo1 at, set to 0 to 216 disable aldo1. 217 On A31 boards aldo1 is often used to power the wifi module. 218 On A23 / A33 boards aldo1 is used for VCC-IO and should be 3.0V. 219 On A80 boards aldo1 powers the USB hosts and should be 3.0V. 220 On A83T / H8 boards aldo1 is used for MIPI CSI, DSI, HDMI, EFUSE, and 221 should be 1.8V. 222 223config AXP_ALDO2_VOLT 224 int "axp pmic (a)ldo2 voltage" 225 depends on AXP152_POWER || AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER 226 default 3000 if AXP152_POWER || AXP209_POWER 227 default 0 if MACH_SUN6I || MACH_SUN9I 228 default 1800 if MACH_SUN8I_A83T 229 default 2500 if MACH_SUN8I 230 ---help--- 231 Set the voltage (mV) to program the axp pmic aldo2 at, set to 0 to 232 disable aldo2. 233 On A10(s) / A13 / A20 boards aldo2 is AVCC and should be 3.0V. 234 On A31 boards aldo2 is typically unused and should be disabled. 235 On A31 boards aldo2 may be used for LPDDR2 then it should be 1.8V. 236 On A23 / A33 boards aldo2 is used for VDD-DLL and should be 2.5V. 237 On A80 boards aldo2 powers PB pingroup and camera IO and can be left off. 238 On A83T / H8 boards aldo2 powers VDD-DLL, VCC18-PLL, CPVDD, VDD18-ADC, 239 LPDDR2, and the codec. It should be 1.8V. 240 241config AXP_ALDO3_VOLT 242 int "axp pmic (a)ldo3 voltage" 243 depends on AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER 244 default 0 if AXP209_POWER || MACH_SUN9I 245 default 3000 if MACH_SUN6I || MACH_SUN8I 246 ---help--- 247 Set the voltage (mV) to program the axp pmic aldo3 at, set to 0 to 248 disable aldo3. 249 On A10(s) / A13 / A20 boards aldo3 should be 2.8V. 250 On A23 / A31 / A33 / R40 boards aldo3 is VCC-PLL and AVCC and should 251 be 3.0V. 252 On A80 boards aldo3 is normally not used. 253 On A83T / H8 boards aldo3 is AVCC, VCC-PL, and VCC-LED, and should be 254 3.0V. 255 256choice 257 prompt "axp pmic (a)ldo3 voltage rate control" 258 depends on AXP209_POWER 259 default AXP_ALDO3_VOLT_SLOPE_NONE 260 ---help--- 261 The AXP can slowly ramp up voltage to reduce the inrush current when 262 changing voltages. 263 Note, this does not apply when enabling/disabling LDO3. See 264 "axp pmic (a)ldo3 inrush quirk" below to enable a slew rate to limit 265 inrush current on broken board designs. 266 267config AXP_ALDO3_VOLT_SLOPE_NONE 268 bool "No voltage slope" 269 ---help--- 270 Tries to reach the next voltage setting near instantaneously. Measurements 271 indicate that this is about 0.0167 V/uS. 272 273config AXP_ALDO3_VOLT_SLOPE_16 274 bool "1.6 mV per uS" 275 ---help--- 276 Increases the voltage by 1.6 mV per uS until the final voltage has 277 been reached. Note that the scaling is in 25 mV steps and thus 278 the slew rate in reality is about 25 mV/31.250 uS. 279 280config AXP_ALDO3_VOLT_SLOPE_08 281 bool "0.8 mV per uS" 282 ---help--- 283 Increases the voltage by 0.8 mV per uS until the final voltage has 284 been reached. Note that the scaling is in 25 mV steps however and thus 285 the slew rate in reality is about 25 mV/15.625 uS. 286 This is the slowest supported rate. 287 288endchoice 289 290config AXP_ALDO3_INRUSH_QUIRK 291 bool "axp pmic (a)ldo3 inrush quirk" 292 depends on AXP209_POWER 293 ---help--- 294 The reference design denotes a value of 4.7 uF for the output capacitor 295 of LDO3. Some boards have too high capacitance causing an inrush current 296 and resulting an AXP209 shutdown. 297 298config AXP_ALDO4_VOLT 299 int "axp pmic (a)ldo4 voltage" 300 depends on AXP209_POWER 301 default 0 if AXP209_POWER 302 ---help--- 303 Set the voltage (mV) to program the axp pmic aldo4 at, set to 0 to 304 disable aldo4. 305 On A10(s) / A13 / A20 boards aldo4 should be 2.8V. 306 307config AXP_DLDO1_VOLT 308 int "axp pmic dldo1 voltage" 309 depends on AXP221_POWER || AXP809_POWER || AXP818_POWER 310 default 0 311 ---help--- 312 Set the voltage (mV) to program the axp pmic dldo1 at, set to 0 to 313 disable dldo1. On sun6i (A31) boards with ethernet dldo1 is often used 314 to power the ethernet phy. On A23, A33 and A80 boards this is often 315 used to power the wifi. 316 317config AXP_DLDO2_VOLT 318 int "axp pmic dldo2 voltage" 319 depends on AXP221_POWER || AXP809_POWER || AXP818_POWER 320 default 3000 if MACH_SUN9I 321 default 0 322 ---help--- 323 Set the voltage (mV) to program the axp pmic dldo2 at, set to 0 to 324 disable dldo2. 325 On A80 boards dldo2 normally powers the PL pins and should be 3.0V. 326 327config AXP_DLDO3_VOLT 328 int "axp pmic dldo3 voltage" 329 depends on AXP221_POWER || AXP818_POWER 330 default 0 331 ---help--- 332 Set the voltage (mV) to program the axp pmic dldo3 at, set to 0 to 333 disable dldo3. 334 335config AXP_DLDO4_VOLT 336 int "axp pmic dldo4 voltage" 337 depends on AXP221_POWER || AXP818_POWER 338 default 0 339 ---help--- 340 Set the voltage (mV) to program the axp pmic dldo4 at, set to 0 to 341 disable dldo4. 342 343config AXP_ELDO1_VOLT 344 int "axp pmic eldo1 voltage" 345 depends on AXP221_POWER || AXP809_POWER || AXP818_POWER 346 default 0 347 ---help--- 348 Set the voltage (mV) to program the axp pmic eldo1 at, set to 0 to 349 disable eldo1. 350 351config AXP_ELDO2_VOLT 352 int "axp pmic eldo2 voltage" 353 depends on AXP221_POWER || AXP809_POWER || AXP818_POWER 354 default 0 355 ---help--- 356 Set the voltage (mV) to program the axp pmic eldo2 at, set to 0 to 357 disable eldo2. 358 359config AXP_ELDO3_VOLT 360 int "axp pmic eldo3 voltage" 361 depends on AXP221_POWER || AXP809_POWER || AXP818_POWER 362 default 3000 if MACH_SUN9I 363 default 0 364 ---help--- 365 Set the voltage (mV) to program the axp pmic eldo3 at, set to 0 to 366 disable eldo3. On some A31(s) tablets it might be used to supply 367 1.2V for the SSD2828 chip (converter of parallel LCD interface 368 into MIPI DSI). 369 On A80 boards it powers the PM pingroup and should be 3.0V. 370 371config AXP_FLDO1_VOLT 372 int "axp pmic fldo1 voltage" 373 depends on AXP818_POWER 374 default 0 if MACH_SUN8I_A83T 375 ---help--- 376 Set the voltage (mV) to program the axp pmic fldo1 at, set to 0 to 377 disable fldo1. 378 On A83T / H8 boards fldo1 is VCC-HSIC and should be 1.2V if HSIC is 379 used. 380 381config AXP_FLDO2_VOLT 382 int "axp pmic fldo2 voltage" 383 depends on AXP818_POWER 384 default 900 if MACH_SUN8I_A83T 385 ---help--- 386 Set the voltage (mV) to program the axp pmic fldo2 at, set to 0 to 387 disable fldo2. 388 On A83T / H8 boards fldo2 is VCC-CPUS and should be 0.9V. 389 390config AXP_FLDO3_VOLT 391 int "axp pmic fldo3 voltage" 392 depends on AXP818_POWER 393 default 0 394 ---help--- 395 Set the voltage (mV) to program the axp pmic fldo3 at, set to 0 to 396 disable fldo3. 397 398config AXP_SW_ON 399 bool "axp pmic sw on" 400 depends on AXP809_POWER || AXP818_POWER 401 ---help--- 402 Enable to turn on axp pmic sw. 403 404config SY8106A_VOUT1_VOLT 405 int "SY8106A pmic VOUT1 voltage" 406 depends on SY8106A_POWER 407 default 1200 408 ---help--- 409 Set the voltage (mV) to program the SY8106A pmic VOUT1. This 410 is typically used to power the VDD-CPU and should be 1200mV. 411 Values can range from 680mV till 1950mV. 412 413config TWL4030_POWER 414 depends on OMAP34XX 415 bool "Enable driver for TI TWL4030 power management chip" 416 imply CMD_POWEROFF 417 ---help--- 418 The TWL4030 in a combination audio CODEC/power management with 419 GPIO and it is commonly used with the OMAP3 family of processors 420 421config POWER_MT6323 422 bool "Poweroff driver for mediatek mt6323" 423 select CMD_POWEROFF 424 help 425 This adds poweroff driver for mt6323 426 this pmic is used on mt7623 / Bananapi R2 427 428config POWER_I2C 429 bool "I2C-based power control for legacy power" 430 depends on POWER_LEGACY 431 help 432 Enable this to use the I2C driver designed for the legacy PMIC 433 interface. 434 435 Not to be used for new designs and existing ones should be moved to 436 the new PMIC interface based on driver model. 437 438config SPL_POWER_I2C 439 bool "I2C-based power control for legacy power" 440 depends on SPL_POWER_LEGACY 441 default y if POWER_I2C 442 help 443 Enable this to use the I2C driver designed for the legacy PMIC 444 interface. 445 446 Not to be used for new designs and existing ones should be moved to 447 the new PMIC interface based on driver model. 448 449endif 450