Prepare v2023.10
[platform/kernel/u-boot.git] / drivers / power / pmic / Kconfig
1 config DM_PMIC
2         bool "Enable Driver Model for PMIC drivers (UCLASS_PMIC)"
3         depends on DM
4         ---help---
5         This config enables the driver-model PMIC support.
6         UCLASS_PMIC - designed to provide an I/O interface for PMIC devices.
7         For the multi-function PMIC devices, this can be used as parent I/O
8         device for each IC's interface. Then, each children uses its parent
9         for read/write. For detailed description, please refer to the files:
10         - 'drivers/power/pmic/pmic-uclass.c'
11         - 'include/power/pmic.h'
12
13 if DM_PMIC
14
15 config SPL_DM_PMIC
16         bool "Enable Driver Model for PMIC drivers (UCLASS_PMIC) in SPL"
17         depends on SPL_DM
18         default y
19         ---help---
20         This config enables the driver-model PMIC support in SPL.
21         UCLASS_PMIC - designed to provide an I/O interface for PMIC devices.
22         For the multi-function PMIC devices, this can be used as parent I/O
23         device for each IC's interface. Then, each children uses its parent
24         for read/write. For detailed description, please refer to the files:
25         - 'drivers/power/pmic/pmic-uclass.c'
26         - 'include/power/pmic.h'
27
28 config PMIC_CHILDREN
29         bool "Allow child devices for PMICs"
30         default y
31         ---help---
32         This allows PMICs to support child devices (such as regulators) in
33         SPL. This adds quite a bit of code so if you are not using this
34         feature you can turn it off. Most likely you should turn it on for
35         U-Boot proper.
36
37 config SPL_PMIC_CHILDREN
38         bool "Allow child devices for PMICs in SPL"
39         depends on SPL_DM_PMIC
40         default y
41         ---help---
42         This allows PMICs to support child devices (such as regulators) in
43         SPL. This adds quite a bit of code so if you are not using this
44         feature you can turn it off. In this case you may need a 'back door'
45         to call your regulator code (e.g. see rk8xx.c for direct functions
46         for use in SPL).
47
48 config PMIC_AB8500
49         bool "Enable driver for ST-Ericsson AB8500 PMIC via PRCMU"
50         select REGMAP
51         select SYSCON
52         help
53           Enable support for the ST-Ericsson AB8500 (Analog Baseband) PMIC.
54           It connects with the ST-Ericsson DB8500 SoC via an I2C bus managed by
55           the power/reset/clock management unit (PRCMU) firmware.
56
57 config PMIC_ACT8846
58         bool "Enable support for the active-semi 8846 PMIC"
59         depends on DM_I2C
60         ---help---
61         This PMIC includes 4 DC/DC step-down buck regulators and 8 low-dropout
62         regulators (LDOs). It also provides some GPIO, reset and battery
63         functions. It uses an I2C interface and is designed for use with
64         tablets and smartphones.
65
66 config PMIC_AXP
67         bool "Enable Driver Model for X-Powers AXP PMICs"
68         depends on DM_I2C
69         select SYSRESET_CMD_POWEROFF if SYSRESET && CMD_POWEROFF
70         imply CMD_POWEROFF if SYSRESET
71         help
72           This config enables driver-model PMIC uclass features for
73           X-Powers AXP152, AXP2xx, and AXP8xx PMICs.
74
75 config SPL_PMIC_AXP
76         bool "Enable Driver Model for X-Powers AXP PMICs in SPL"
77         depends on SPL_DM_I2C && SPL_DM_PMIC
78         help
79           This config enables driver-model PMIC uclass features in the SPL for
80           X-Powers AXP152, AXP2xx, and AXP8xx PMICs.
81
82 config DM_PMIC_DA9063
83         bool "Enable Driver Model for the Dialog DA9063 PMIC"
84         help
85           This config enables implementation of driver-model pmic uclass features
86           for PMIC DA9063. The driver implements read/write operations.
87
88 config SPL_DM_PMIC_DA9063
89         bool "Enable Driver Model for the Dialog DA9063 PMIC in SPL"
90         depends on SPL_DM_PMIC
91         help
92           This config enables implementation of driver-model pmic uclass features
93           for PMIC DA9063. The driver implements read/write operations.
94
95 config PMIC_AS3722
96         bool "Enable support for the Austria Micro Systems (AMS) AS7322 PMIC"
97         help
98           The AS3722 includes 7 DC/DC buck convertors, 11 low-noise LDOs, a
99           real-time clock, GPIOs, ADC and a few other features. It uses an I2C
100           interface and is designs to cover most of the power managementment
101           required for a tablets or laptop.
102
103 config DM_PMIC_BD71837
104         bool "Enable Driver Model for PMIC BD71837"
105         help
106           This config enables implementation of driver-model pmic uclass features
107           for PMIC BD71837. The driver implements read/write operations.
108
109 config SPL_DM_PMIC_BD71837
110         bool "Enable Driver Model for PMIC BD71837 in SPL stage"
111         depends on SPL_DM_PMIC
112         help
113           This config enables implementation of driver-model pmic uclass
114           features for PMIC BD71837. The driver implements read/write
115           operations.
116
117 config DM_PMIC_FAN53555
118         bool "Enable support for OnSemi FAN53555"
119         depends on DM_REGULATOR && DM_I2C
120         select DM_REGULATOR_FAN53555
121         help
122           This config enables implementation of driver-model PMIC
123           uclass features for the FAN53555 regulator. The FAN53555 is
124           a (family of) single-output regulators that supports
125           transitioning between two different output voltages based on
126           an voltage selection pin.
127
128           The driver implements read/write operations for use with the FAN53555
129           regulator driver and binds the regulator driver to its node.
130
131 config SPL_DM_PMIC_FAN53555
132         bool "Enable support for OnSemi FAN53555 in SPL"
133         depends on SPL_DM_REGULATOR && SPL_DM_I2C
134         select SPL_DM_REGULATOR_FAN53555
135         help
136           This config enables implementation of driver-model PMIC
137           uclass features for the FAN53555 regulator. The FAN53555 is
138           a (family of) single-output regulators that supports
139           transitioning between two different output voltages based on
140           an voltage selection pin.
141
142           The driver implements read/write operations for use with the FAN53555
143           regulator driver and binds the regulator driver to its node.
144
145 config DM_PMIC_MP5416
146         bool "Enable Driver Model for PMIC MP5416"
147         help
148           This config enables implementation of driver-model pmic uclass features
149           for PMIC MP5416. The driver implements read/write operations.
150
151 config SPL_DM_PMIC_MP5416
152         bool "Enable Driver Model for PMIC MP5416 in SPL stage"
153         depends on SPL_DM_PMIC
154         help
155           This config enables implementation of driver-model pmic uclass
156           features for PMIC MP5416. The driver implements read/write
157           operations.
158
159 config DM_PMIC_PCA9450
160         bool "Enable Driver Model for PMIC PCA9450"
161         depends on DM_I2C
162         help
163           This config enables implementation of driver-model pmic uclass features
164           for PMIC PCA9450. The driver implements read/write operations.
165
166 config SPL_DM_PMIC_PCA9450
167         bool "Enable Driver Model for PMIC PCA9450 in SPL"
168         depends on SPL_DM_PMIC
169         depends on SPL_DM_I2C
170         help
171           This config enables implementation of driver-model pmic uclass features
172           for PMIC PCA9450 in SPL. The driver implements read/write operations.
173
174 config DM_PMIC_PFUZE100
175         bool "Enable Driver Model for PMIC PFUZE100"
176         ---help---
177         This config enables implementation of driver-model pmic uclass features
178         for PMIC PFUZE100. The driver implements read/write operations.
179
180 config SPL_DM_PMIC_PFUZE100
181         bool "Enable Driver Model for PMIC PFUZE100 in SPL"
182         depends on SPL_DM_PMIC
183         ---help---
184         This config enables implementation of driver-model pmic uclass features
185         for PMIC PFUZE100 in SPL. The driver implements read/write operations.
186
187 config DM_PMIC_MAX77686
188         bool "Enable Driver Model for PMIC MAX77686"
189         ---help---
190         This config enables implementation of driver-model pmic uclass features
191         for PMIC MAX77686. The driver implements read/write operations.
192
193 config DM_PMIC_MAX8998
194         bool "Enable Driver Model for PMIC MAX8998"
195         ---help---
196         This config enables implementation of driver-model pmic uclass features
197         for PMIC MAX8998. The driver implements read/write operations.
198
199 config DM_PMIC_MC34708
200         bool "Enable Driver Model for PMIC MC34708"
201         help
202          This config enables implementation of driver-model pmic uclass features
203          for PMIC MC34708. The driver implements read/write operations.
204
205 config PMIC_MAX8997
206         bool "Enable Driver Model for PMIC MAX8997"
207         ---help---
208         This config enables implementation of driver-model pmic uclass features
209         for PMIC MAX8997. The driver implements read/write operations.
210         This is a Power Management IC with RTC, Fuel Gauge, MUIC control on Chip.
211         - 21x LDOs
212         - 12x GPIOs
213         - Haptic Motor driver
214         - RTC with two alarms
215         - Fueal Gauge and One backup battery charger
216         - MUIC
217         - Others
218
219 config PMIC_QCOM
220         bool "Enable Driver Model for Qualcomm generic PMIC"
221         ---help---
222         The Qcom PMIC is connected to one (or several) processors
223         with SPMI bus. It has 2 slaves with several peripherals:
224         - 18x LDO
225         - 4x GPIO
226         - Power and Reset buttons
227         - Watchdog
228         - RTC
229         - Vibrator drivers
230         - Others
231
232         Driver binding info: doc/device-tree-bindings/pmic/qcom,spmi-pmic.txt
233
234 config PMIC_RK8XX
235         bool "Enable support for Rockchip PMIC RK8XX"
236         ---help---
237         The Rockchip RK808 PMIC provides four buck DC-DC convertors, 8 LDOs,
238         an RTC and two low Rds (resistance (drain to source)) switches. It is
239         accessed via an I2C interface. The device is used with Rockchip SoCs.
240         This driver implements register read/write operations.
241
242 config SPL_PMIC_RK8XX
243         bool "Enable support for Rockchip PMIC RK8XX"
244         depends on SPL_DM_PMIC
245         ---help---
246         The Rockchip RK808 PMIC provides four buck DC-DC convertors, 8 LDOs,
247         an RTC and two low Rds (resistance (drain to source)) switches. It is
248         accessed via an I2C interface. The device is used with Rockchip SoCs.
249         This driver implements register read/write operations.
250
251 config PMIC_S2MPS11
252         bool "Enable Driver Model for PMIC Samsung S2MPS11"
253         ---help---
254         The Samsung S2MPS11 PMIC provides:
255          - 38 adjustable LDO regulators
256          - 9 High-Efficiency Buck Converters
257          - 1 BuckBoost Converter
258          - RTC with two alarms
259          - Backup battery charger
260          - I2C Configuration Interface
261         This driver provides access to I/O interface only.
262         Binding info: doc/device-tree-bindings/pmic/s2mps11.txt
263
264 config DM_PMIC_SANDBOX
265         bool "Enable Driver Model for emulated Sandbox PMIC"
266         ---help---
267         Enable the driver for Sandbox PMIC emulation. The emulated PMIC device
268         depends on two drivers:
269         - sandbox PMIC I/O driver - implements dm pmic operations
270         - sandbox PMIC i2c emul driver - emulates the PMIC's I2C transmission
271
272         A detailed information can be found in header: '<power/sandbox_pmic.h>'
273
274         The Sandbox PMIC info:
275         * I/O interface:
276           - I2C chip address:       0x40
277           - first register address: 0x0
278           - register count:         0x10
279         * Adjustable outputs:
280           - 2x LDO
281           - 2x BUCK
282           - Each, with a different operating conditions (header).
283         * Reset values:
284           - set by i2c emul driver's probe() (defaults in header)
285
286         Driver binding info: doc/device-tree-bindings/pmic/sandbox.txt
287
288 config PMIC_S5M8767
289         bool "Enable Driver Model for the Samsung S5M8767 PMIC"
290         ---help---
291         The S5M8767 PMIC provides a large array of LDOs and BUCKs for use
292         as a SoC power controller. It also provides 32KHz clock outputs. This
293         driver provides basic register access and sets up the attached
294         regulators if regulator support is enabled.
295
296 config PMIC_RN5T567
297         bool "Enable driver for Ricoh RN5T567 PMIC"
298         ---help---
299         The RN5T567 is a PMIC with 4 step-down DC/DC converters, 5 LDO
300         regulators Real-Time Clock and 4 GPIOs. This driver provides
301         register access only.
302
303 config SPL_PMIC_RN5T567
304         bool "Enable driver for Ricoh RN5T567 PMIC in SPL"
305         depends on SPL_DM_PMIC
306         ---help---
307         The RN5T567 is a PMIC with 4 step-down DC/DC converters, 5 LDO
308         regulators Real-Time Clock and 4 GPIOs. This driver provides
309         register access only.
310
311 config PMIC_TPS65090
312         bool "Enable driver for Texas Instruments TPS65090 PMIC"
313         ---help---
314         The TPS65090 is a PMIC containing several LDOs, DC to DC convertors,
315         FETs and a battery charger. This driver provides register access
316         only, and you can enable the regulator/charger drivers separately if
317         required.
318
319 config PMIC_PALMAS
320         bool "Enable driver for Texas Instruments PALMAS PMIC"
321         ---help---
322         The PALMAS is a PMIC containing several LDOs, SMPS.
323         This driver binds the pmic children.
324
325 config PMIC_LP873X
326         bool "Enable driver for Texas Instruments LP873X PMIC"
327         ---help---
328         The LP873X is a PMIC containing couple of LDOs and couple of SMPS.
329         This driver binds the pmic children.
330
331 config PMIC_LP87565
332         bool "Enable driver for Texas Instruments LP87565 PMIC"
333         ---help---
334         The LP87565 is a PMIC containing a bunch of SMPS.
335         This driver binds the pmic children.
336
337 config DM_PMIC_TPS65910
338         bool "Enable driver for Texas Instruments TPS65910 PMIC"
339         ---help---
340         The TPS65910 is a PMIC containing 3 buck DC-DC converters, one boost
341         DC-DC converter, 8 LDOs and a RTC. This driver binds the SMPS and LDO
342         pmic children.
343
344 config PMIC_STPMIC1
345         bool "Enable support for STMicroelectronics STPMIC1 PMIC"
346         depends on DM_I2C
347         select SYSRESET_CMD_POWEROFF if CMD_POWEROFF && !ARM_PSCI_FW
348         ---help---
349         The STPMIC1 PMIC provides 4 BUCKs, 6 LDOs, 1 VREF and 2 power switches.
350         It is accessed via an I2C interface. The device is used with STM32MP1
351         SoCs. This driver implements register read/write operations.
352
353 config SPL_PMIC_PALMAS
354         bool "Enable driver for Texas Instruments PALMAS PMIC"
355         depends on SPL_DM_PMIC
356         help
357         The PALMAS is a PMIC containing several LDOs, SMPS.
358         This driver binds the pmic children in SPL.
359
360 config SPL_PMIC_LP873X
361         bool "Enable driver for Texas Instruments LP873X PMIC"
362         depends on SPL_DM_PMIC
363         help
364         The LP873X is a PMIC containing couple of LDOs and couple of SMPS.
365         This driver binds the pmic children in SPL.
366
367 config SPL_PMIC_LP87565
368         bool "Enable driver for Texas Instruments LP87565 PMIC"
369         depends on SPL_DM_PMIC
370         help
371         The LP87565 is a PMIC containing a bunch of SMPS.
372         This driver binds the pmic children in SPL.
373
374 config PMIC_TPS65941
375         bool "Enable driver for Texas Instruments TPS65941 PMIC"
376         help
377         The TPS65941 is a PMIC containing a bunch of SMPS & LDOs.
378         This driver binds the pmic children.
379
380 config PMIC_TPS65219
381         bool "Enable driver for Texas Instruments TPS65219 PMIC"
382         depends on DM_PMIC
383         help
384         The TPS65219 is a PMIC containing a bunch of SMPS & LDOs.
385         This driver binds the pmic children.
386 endif
387
388 config PMIC_TPS65217
389         bool "Enable driver for Texas Instruments TPS65217 PMIC"
390         ---help---
391         The TPS65217 is a PMIC containing several LDOs, DC to DC convertors,
392         FETs and a battery charger. This driver provides register access
393         only, and you can enable the regulator/charger drivers separately if
394         required.
395
396 config POWER_TPS65218
397         bool "Enable legacy driver for TPS65218 PMIC"
398
399 config POWER_TPS62362
400         bool "Enable legacy driver for TPS62362 PMIC"
401
402 config SPL_POWER_TPS62362
403         bool "Enable legacy driver for TPS62362 PMIC in SPL"
404         default y if POWER_TPS62362
405         depends on SPL
406
407 config SPL_POWER_TPS65910
408         bool "Enable legacy driver for TPS65910 PMIC in SPL"
409         depends on SPL
410
411 if POWER_LEGACY || SPL_POWER_LEGACY
412
413 config POWER_HI6553
414         bool "Enable legacy driver for HI6553 PMIC"
415
416 config POWER_LTC3676
417         bool "Enable legacy driver for LTC3676 PMIC"
418
419 config POWER_PCA9450
420         bool "Enable legacy driver for PCA9450 PMIC"
421
422 config POWER_PFUZE100
423         bool "Enable legacy driver for PFUZE100 PMIC"
424
425 config POWER_PFUZE3000
426         bool "Enable legacy driver for PFUZE3000 PMIC"
427
428 config POWER_MC34VR500
429         bool "Enable driver for Freescale MC34VR500 PMIC"
430         ---help---
431         The MC34VR500 is used in conjunction with the FSL T1 and LS1 series
432         SoC. It provides 4 buck DC-DC convertors and 5 LDOs, and it is accessed
433         via an I2C interface.
434
435 endif