]> Git Repo - J-u-boot.git/blob - drivers/power/Kconfig
Merge tag 'u-boot-imx-master-20250127' of https://gitlab.denx.de/u-boot/custodians...
[J-u-boot.git] / drivers / power / Kconfig
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
15
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"
32         depends on SPL && !SPL_DM_PMIC
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
46 source "drivers/power/acpi_pmc/Kconfig"
47
48 source "drivers/power/domain/Kconfig"
49
50 source "drivers/power/pmic/Kconfig"
51
52 source "drivers/power/regulator/Kconfig"
53
54 choice
55         prompt "Select Sunxi PMIC Variant"
56         depends on ARCH_SUNXI
57         default AXP209_POWER if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
58         default AXP221_POWER if MACH_SUN6I || MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_R40
59         default AXP818_POWER if MACH_SUN8I_A83T
60         default SUNXI_NO_PMIC if MACH_SUNXI_H3_H5 || MACH_SUN50I || MACH_SUN8I_V3S
61
62 config SUNXI_NO_PMIC
63         bool "board without a pmic"
64         ---help---
65         Select this for boards which do not use a PMIC.
66
67 config 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
76 config 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
85 config 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
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
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
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
119 config AXP809_POWER
120         bool "axp809 pmic support"
121         depends on MACH_SUN9I
122         select AXP_PMIC_BUS
123         select CMD_POWEROFF
124         ---help---
125         Say y here to enable support for the axp809 pmic found on A80 boards.
126
127 config AXP818_POWER
128         bool "axp818 pmic support"
129         depends on MACH_SUN8I_A83T
130         select AXP_PMIC_BUS
131         select CMD_POWEROFF
132         ---help---
133         Say y here to enable support for the axp818 pmic found on
134         A83T dev board.
135
136 config SY8106A_POWER
137         bool "SY8106A pmic support"
138         depends on MACH_SUNXI_H3_H5
139         ---help---
140         Select this to enable support for the SY8106A pmic found on some
141         H3 boards.
142
143 endchoice
144
145 config AXP_DCDC1_VOLT
146         int "axp pmic dcdc1 voltage"
147         depends on AXP221_POWER || AXP809_POWER || AXP818_POWER
148         default 3300 if AXP818_POWER || MACH_SUN8I_R40
149         default 3000 if MACH_SUN6I || MACH_SUN8I || MACH_SUN9I
150         ---help---
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
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.
158
159 config AXP_DCDC2_VOLT
160         int "axp pmic dcdc2 voltage"
161         depends on AXP152_POWER || AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER || AXP313_POWER || AXP717_POWER
162         default 900 if AXP818_POWER
163         default 1400 if AXP152_POWER || AXP209_POWER
164         default 1000 if AXP313_POWER
165         default 1000 if AXP717_POWER
166         default 1200 if MACH_SUN6I
167         default 1100 if MACH_SUN8I
168         default 0 if MACH_SUN9I
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.
174         On A23/A33 boards dcdc2 is used for VDD-SYS and should be 1.1V.
175         On A80 boards dcdc2 powers the GPU and can be left off.
176         On A83T boards dcdc2 is used for VDD-CPUA(cluster 0) and should be 0.9V.
177         On R40 boards dcdc2 is VDD-CPU and should be 1.1V
178         On boards using the AXP313 or AXP717 it's often VDD-CPU.
179
180 config AXP_DCDC3_VOLT
181         int "axp pmic dcdc3 voltage"
182         depends on AXP152_POWER || AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER || AXP313_POWER || AXP717_POWER
183         default 900 if AXP809_POWER || AXP818_POWER
184         default 1500 if AXP152_POWER
185         default 1250 if AXP209_POWER
186         default 1100 if AXP313_POWER
187         default 1100 if MACH_SUN8I_R40
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.
196         On A80 boards dcdc3 is used for VDD-CPUA(cluster 0) and should be 0.9V.
197         On A83T boards dcdc3 is used for VDD-CPUB(cluster 1) and should be 0.9V.
198         On R40 boards dcdc3 is VDD-SYS and VDD-GPU and should be 1.1V.
199         On boards using the AXP313 or AXP717 it's often VDD-DRAM and should
200         be 1.1V for LPDDR4.
201
202 config AXP_DCDC4_VOLT
203         int "axp pmic dcdc4 voltage"
204         depends on AXP152_POWER || AXP221_POWER || AXP809_POWER || AXP305_POWER
205         default 1250 if AXP152_POWER
206         default 1200 if MACH_SUN6I
207         default 0 if MACH_SUN8I
208         default 900 if MACH_SUN9I
209         default 1500 if AXP305_POWER
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.
216         On A80 boards dcdc4 powers VDD-SYS, HDMI, USB OTG and should be 0.9V.
217         On A83T boards dcdc4 is used for VDD-GPU.
218         On H616 boards dcdcd is used for VCC-DRAM.
219
220 config AXP_DCDC5_VOLT
221         int "axp pmic dcdc5 voltage"
222         depends on AXP221_POWER || AXP809_POWER || AXP818_POWER
223         default 1500 if MACH_SUN6I || MACH_SUN8I || MACH_SUN9I
224         ---help---
225         Set the voltage (mV) to program the axp pmic dcdc5 at, set to 0 to
226         disable dcdc5.
227         On A23 / A31 / A33 / A80 / A83T / R40 boards dcdc5 is VCC-DRAM and
228         should be 1.5V, 1.35V if DDR3L is used.
229
230 config AXP_ALDO1_VOLT
231         int "axp pmic (a)ldo1 voltage"
232         depends on AXP221_POWER || AXP809_POWER || AXP818_POWER
233         default 0 if MACH_SUN6I || MACH_SUN8I_R40
234         default 1800 if MACH_SUN8I_A83T
235         default 3000 if MACH_SUN8I || MACH_SUN9I
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.
241         On A80 boards aldo1 powers the USB hosts and should be 3.0V.
242         On A83T / H8 boards aldo1 is used for MIPI CSI, DSI, HDMI, EFUSE, and
243         should be 1.8V.
244
245 config AXP_ALDO2_VOLT
246         int "axp pmic (a)ldo2 voltage"
247         depends on AXP152_POWER || AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER
248         default 3000 if AXP152_POWER || AXP209_POWER
249         default 0 if MACH_SUN6I || MACH_SUN9I
250         default 1800 if MACH_SUN8I_A83T
251         default 2500 if MACH_SUN8I
252         ---help---
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.
259         On A80 boards aldo2 powers PB pingroup and camera IO and can be left off.
260         On A83T / H8 boards aldo2 powers VDD-DLL, VCC18-PLL, CPVDD, VDD18-ADC,
261         LPDDR2, and the codec. It should be 1.8V.
262
263 config AXP_ALDO3_VOLT
264         int "axp pmic (a)ldo3 voltage"
265         depends on AXP209_POWER || AXP221_POWER || AXP809_POWER || AXP818_POWER
266         default 0 if AXP209_POWER || MACH_SUN9I
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.
272         On A23 / A31 / A33 / R40 boards aldo3 is VCC-PLL and AVCC and should
273         be 3.0V.
274         On A80 boards aldo3 is normally not used.
275         On A83T / H8 boards aldo3 is AVCC, VCC-PL, and VCC-LED, and should be
276         3.0V.
277
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
312 config AXP_ALDO3_INRUSH_QUIRK
313         bool "axp pmic (a)ldo3 inrush quirk"
314         depends on AXP209_POWER
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
320 config AXP_ALDO4_VOLT
321         int "axp pmic (a)ldo4 voltage"
322         depends on AXP209_POWER
323         default 0 if AXP209_POWER
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"
331         depends on AXP221_POWER || AXP809_POWER || AXP818_POWER
332         default 0
333         ---help---
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
336         to power the ethernet phy. On A23, A33 and A80 boards this is often
337         used to power the wifi.
338
339 config AXP_DLDO2_VOLT
340         int "axp pmic dldo2 voltage"
341         depends on AXP221_POWER || AXP809_POWER || AXP818_POWER
342         default 3000 if MACH_SUN9I
343         default 0
344         ---help---
345         Set the voltage (mV) to program the axp pmic dldo2 at, set to 0 to
346         disable dldo2.
347         On A80 boards dldo2 normally powers the PL pins and should be 3.0V.
348
349 config AXP_DLDO3_VOLT
350         int "axp pmic dldo3 voltage"
351         depends on AXP221_POWER || AXP818_POWER
352         default 0
353         ---help---
354         Set the voltage (mV) to program the axp pmic dldo3 at, set to 0 to
355         disable dldo3.
356
357 config AXP_DLDO4_VOLT
358         int "axp pmic dldo4 voltage"
359         depends on AXP221_POWER || AXP818_POWER
360         default 0
361         ---help---
362         Set the voltage (mV) to program the axp pmic dldo4 at, set to 0 to
363         disable dldo4.
364
365 config AXP_ELDO1_VOLT
366         int "axp pmic eldo1 voltage"
367         depends on AXP221_POWER || AXP809_POWER || AXP818_POWER
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"
375         depends on AXP221_POWER || AXP809_POWER || AXP818_POWER
376         default 0
377         ---help---
378         Set the voltage (mV) to program the axp pmic eldo2 at, set to 0 to
379         disable eldo2.
380
381 config AXP_ELDO3_VOLT
382         int "axp pmic eldo3 voltage"
383         depends on AXP221_POWER || AXP809_POWER || AXP818_POWER
384         default 3000 if MACH_SUN9I
385         default 0
386         ---help---
387         Set the voltage (mV) to program the axp pmic eldo3 at, set to 0 to
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).
391         On A80 boards it powers the PM pingroup and should be 3.0V.
392
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
404         int "axp pmic fldo2 voltage"
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
420 config AXP_SW_ON
421         bool "axp pmic sw on"
422         depends on AXP809_POWER || AXP818_POWER
423         ---help---
424         Enable to turn on axp pmic sw.
425
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
435 config TPS6586X_POWER
436         bool "Enable legacy driver for TI TPS6586x power management chip"
437
438 config TWL4030_POWER
439         depends on OMAP34XX
440         bool "Enable driver for TI TWL4030 power management chip"
441         imply CMD_POWEROFF
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
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
453 config PALMAS_POWER
454         bool "Palmas power support"
455         depends on OMAP54XX
456
457 config POWER_FSL
458         bool "Power control (legacy) for Freescale / NXP platforms"
459         depends on POWER_LEGACY
460
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
471 config POWER_SPI
472         bool "SPI-based power control for legacy power_fsl driver"
473         depends on POWER_FSL && !POWER_I2C
474
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
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
499 endif
This page took 0.056222 seconds and 4 git commands to generate.