Merge tag 'efi-2022-01-rc4-4' of https://source.denx.de/u-boot/custodians/u-boot-efi
[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         help
162           This config enables implementation of driver-model pmic uclass features
163           for PMIC PCA9450. The driver implements read/write operations.
164
165 config SPL_DM_PMIC_PCA9450
166         bool "Enable Driver Model for PMIC PCA9450"
167         depends on SPL_DM_PMIC
168         help
169           This config enables implementation of driver-model pmic uclass features
170           for PMIC PCA9450 in SPL. The driver implements read/write operations.
171
172 config DM_PMIC_PFUZE100
173         bool "Enable Driver Model for PMIC PFUZE100"
174         ---help---
175         This config enables implementation of driver-model pmic uclass features
176         for PMIC PFUZE100. The driver implements read/write operations.
177
178 config SPL_DM_PMIC_PFUZE100
179         bool "Enable Driver Model for PMIC PFUZE100 in SPL"
180         depends on SPL_DM_PMIC
181         ---help---
182         This config enables implementation of driver-model pmic uclass features
183         for PMIC PFUZE100 in SPL. The driver implements read/write operations.
184
185 config DM_PMIC_MAX77686
186         bool "Enable Driver Model for PMIC MAX77686"
187         ---help---
188         This config enables implementation of driver-model pmic uclass features
189         for PMIC MAX77686. The driver implements read/write operations.
190
191 config DM_PMIC_MAX8998
192         bool "Enable Driver Model for PMIC MAX8998"
193         ---help---
194         This config enables implementation of driver-model pmic uclass features
195         for PMIC MAX8998. The driver implements read/write operations.
196
197 config DM_PMIC_MC34708
198         bool "Enable Driver Model for PMIC MC34708"
199         help
200          This config enables implementation of driver-model pmic uclass features
201          for PMIC MC34708. The driver implements read/write operations.
202
203 config PMIC_MAX8997
204         bool "Enable Driver Model for PMIC MAX8997"
205         ---help---
206         This config enables implementation of driver-model pmic uclass features
207         for PMIC MAX8997. The driver implements read/write operations.
208         This is a Power Management IC with RTC, Fuel Gauge, MUIC control on Chip.
209         - 21x LDOs
210         - 12x GPIOs
211         - Haptic Motor driver
212         - RTC with two alarms
213         - Fueal Gauge and One backup battery charger
214         - MUIC
215         - Others
216
217 config PMIC_PM8916
218         bool "Enable Driver Model for Qualcomm PM8916 PMIC"
219         ---help---
220         The PM8916 is a PMIC connected to one (or several) processors
221         with SPMI bus. It has 2 slaves with several peripherals:
222         - 18x LDO
223         - 4x GPIO
224         - Power and Reset buttons
225         - Watchdog
226         - RTC
227         - Vibrator drivers
228         - Others
229
230         Driver binding info: doc/device-tree-bindings/pmic/pm8916.txt
231
232 config PMIC_RK8XX
233         bool "Enable support for Rockchip PMIC RK8XX"
234         ---help---
235         The Rockchip RK808 PMIC provides four buck DC-DC convertors, 8 LDOs,
236         an RTC and two low Rds (resistance (drain to source)) switches. It is
237         accessed via an I2C interface. The device is used with Rockchip SoCs.
238         This driver implements register read/write operations.
239
240 config SPL_PMIC_RK8XX
241         bool "Enable support for Rockchip PMIC RK8XX"
242         depends on SPL_DM_PMIC
243         ---help---
244         The Rockchip RK808 PMIC provides four buck DC-DC convertors, 8 LDOs,
245         an RTC and two low Rds (resistance (drain to source)) switches. It is
246         accessed via an I2C interface. The device is used with Rockchip SoCs.
247         This driver implements register read/write operations.
248
249 config PMIC_S2MPS11
250         bool "Enable Driver Model for PMIC Samsung S2MPS11"
251         ---help---
252         The Samsung S2MPS11 PMIC provides:
253          - 38 adjustable LDO regulators
254          - 9 High-Efficiency Buck Converters
255          - 1 BuckBoost Converter
256          - RTC with two alarms
257          - Backup battery charger
258          - I2C Configuration Interface
259         This driver provides access to I/O interface only.
260         Binding info: doc/device-tree-bindings/pmic/s2mps11.txt
261
262 config DM_PMIC_SANDBOX
263         bool "Enable Driver Model for emulated Sandbox PMIC"
264         ---help---
265         Enable the driver for Sandbox PMIC emulation. The emulated PMIC device
266         depends on two drivers:
267         - sandbox PMIC I/O driver - implements dm pmic operations
268         - sandbox PMIC i2c emul driver - emulates the PMIC's I2C transmission
269
270         A detailed information can be found in header: '<power/sandbox_pmic.h>'
271
272         The Sandbox PMIC info:
273         * I/O interface:
274           - I2C chip address:       0x40
275           - first register address: 0x0
276           - register count:         0x10
277         * Adjustable outputs:
278           - 2x LDO
279           - 2x BUCK
280           - Each, with a different operating conditions (header).
281         * Reset values:
282           - set by i2c emul driver's probe() (defaults in header)
283
284         Driver binding info: doc/device-tree-bindings/pmic/sandbox.txt
285
286 config PMIC_S5M8767
287         bool "Enable Driver Model for the Samsung S5M8767 PMIC"
288         ---help---
289         The S5M8767 PMIC provides a large array of LDOs and BUCKs for use
290         as a SoC power controller. It also provides 32KHz clock outputs. This
291         driver provides basic register access and sets up the attached
292         regulators if regulator support is enabled.
293
294 config PMIC_RN5T567
295         bool "Enable driver for Ricoh RN5T567 PMIC"
296         ---help---
297         The RN5T567 is a PMIC with 4 step-down DC/DC converters, 5 LDO
298         regulators Real-Time Clock and 4 GPIOs. This driver provides
299         register access only.
300
301 config PMIC_TPS65090
302         bool "Enable driver for Texas Instruments TPS65090 PMIC"
303         ---help---
304         The TPS65090 is a PMIC containing several LDOs, DC to DC convertors,
305         FETs and a battery charger. This driver provides register access
306         only, and you can enable the regulator/charger drivers separately if
307         required.
308
309 config PMIC_PALMAS
310         bool "Enable driver for Texas Instruments PALMAS PMIC"
311         ---help---
312         The PALMAS is a PMIC containing several LDOs, SMPS.
313         This driver binds the pmic children.
314
315 config PMIC_LP873X
316         bool "Enable driver for Texas Instruments LP873X PMIC"
317         ---help---
318         The LP873X is a PMIC containing couple of LDOs and couple of SMPS.
319         This driver binds the pmic children.
320
321 config PMIC_LP87565
322         bool "Enable driver for Texas Instruments LP87565 PMIC"
323         ---help---
324         The LP87565 is a PMIC containing a bunch of SMPS.
325         This driver binds the pmic children.
326
327 config DM_PMIC_TPS65910
328         bool "Enable driver for Texas Instruments TPS65910 PMIC"
329         ---help---
330         The TPS65910 is a PMIC containing 3 buck DC-DC converters, one boost
331         DC-DC converter, 8 LDOs and a RTC. This driver binds the SMPS and LDO
332         pmic children.
333
334 config PMIC_STPMIC1
335         bool "Enable support for STMicroelectronics STPMIC1 PMIC"
336         depends on DM_I2C
337         select SYSRESET_CMD_POWEROFF if CMD_POWEROFF && !ARM_PSCI_FW
338         ---help---
339         The STPMIC1 PMIC provides 4 BUCKs, 6 LDOs, 1 VREF and 2 power switches.
340         It is accessed via an I2C interface. The device is used with STM32MP1
341         SoCs. This driver implements register read/write operations.
342
343 config SPL_PMIC_PALMAS
344         bool "Enable driver for Texas Instruments PALMAS PMIC"
345         depends on SPL_DM_PMIC
346         help
347         The PALMAS is a PMIC containing several LDOs, SMPS.
348         This driver binds the pmic children in SPL.
349
350 config SPL_PMIC_LP873X
351         bool "Enable driver for Texas Instruments LP873X PMIC"
352         depends on SPL_DM_PMIC
353         help
354         The LP873X is a PMIC containing couple of LDOs and couple of SMPS.
355         This driver binds the pmic children in SPL.
356
357 config SPL_PMIC_LP87565
358         bool "Enable driver for Texas Instruments LP87565 PMIC"
359         depends on SPL_DM_PMIC
360         help
361         The LP87565 is a PMIC containing a bunch of SMPS.
362         This driver binds the pmic children in SPL.
363
364 config PMIC_TPS65941
365         bool "Enable driver for Texas Instruments TPS65941 PMIC"
366         help
367         The TPS65941 is a PMIC containing a bunch of SMPS & LDOs.
368         This driver binds the pmic children.
369
370 endif
371
372 config POWER_MC34VR500
373         bool "Enable driver for Freescale MC34VR500 PMIC"
374         depends on !DM_PMIC
375         ---help---
376         The MC34VR500 is used in conjunction with the FSL T1 and LS1 series
377         SoC. It provides 4 buck DC-DC convertors and 5 LDOs, and it is accessed
378         via an I2C interface.