1config 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
13if DM_PMIC
14
15config 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
28config 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
37config 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
48config 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
57config 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
66config 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
75config 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
82config 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
88config 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
95config 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
103config 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
109config 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
117config 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
131config 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
145config 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
151config 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
159config 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
166config 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
174config 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
180config 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
187config DM_PMIC_MAX8907
188	bool "Enable Driver Model for PMIC MAX8907"
189	---help---
190	This config enables implementation of driver-model pmic uclass features
191	for PMIC MAX8907. The driver implements read/write operations.
192	This is a Power Management IC with a decent set of peripherals from which
193	3 DC-to-DC Step-Down (SD) Regulators, 20 Low-Dropout Linear (LDO) Regulators,
194	Real-Time Clock (RTC) and more with I2C Compatible Interface.
195
196config DM_PMIC_MAX77663
197	bool "Enable Driver Model for PMIC MAX77663"
198	---help---
199	This config enables implementation of driver-model pmic uclass features
200	for PMIC MAX77663. The driver implements read/write operations.
201	This is a Power Management IC with a decent set of peripherals from which
202	4 DC-to-DC Step-Down (SD) Regulators, 9 Low-Dropout Linear (LDO) Regulators,
203	8 GPIOs, Real-Time Clock (RTC) and more with I2C Compatible Interface.
204
205config DM_PMIC_MAX77686
206	bool "Enable Driver Model for PMIC MAX77686"
207	---help---
208	This config enables implementation of driver-model pmic uclass features
209	for PMIC MAX77686. The driver implements read/write operations.
210
211config DM_PMIC_MAX8998
212	bool "Enable Driver Model for PMIC MAX8998"
213	---help---
214	This config enables implementation of driver-model pmic uclass features
215	for PMIC MAX8998. The driver implements read/write operations.
216
217config DM_PMIC_MC34708
218	bool "Enable Driver Model for PMIC MC34708"
219	help
220	 This config enables implementation of driver-model pmic uclass features
221	 for PMIC MC34708. The driver implements read/write operations.
222
223config PMIC_MAX8997
224	bool "Enable Driver Model for PMIC MAX8997"
225	---help---
226	This config enables implementation of driver-model pmic uclass features
227	for PMIC MAX8997. The driver implements read/write operations.
228	This is a Power Management IC with RTC, Fuel Gauge, MUIC control on Chip.
229	- 21x LDOs
230	- 12x GPIOs
231	- Haptic Motor driver
232	- RTC with two alarms
233	- Fueal Gauge and One backup battery charger
234	- MUIC
235	- Others
236
237config PMIC_QCOM
238	bool "Enable Driver Model for Qualcomm generic PMIC"
239	---help---
240	The Qcom PMIC is connected to one (or several) processors
241	with SPMI bus. It has 2 slaves with several peripherals:
242	- 18x LDO
243	- 4x GPIO
244	- Power and Reset buttons
245	- Watchdog
246	- RTC
247	- Vibrator drivers
248	- Others
249
250	Driver binding info: doc/device-tree-bindings/pmic/qcom,spmi-pmic.txt
251
252config PMIC_RK8XX
253	bool "Enable support for Rockchip PMIC RK8XX"
254	select SYSRESET_CMD_POWEROFF if SYSRESET && CMD_POWEROFF
255	---help---
256	The Rockchip RK808 PMIC provides four buck DC-DC convertors, 8 LDOs,
257	an RTC and two low Rds (resistance (drain to source)) switches. It is
258	accessed via an I2C interface. The device is used with Rockchip SoCs.
259	This driver implements register read/write operations.
260
261config SPL_PMIC_RK8XX
262	bool "Enable support for Rockchip PMIC RK8XX in SPL"
263	depends on SPL_DM_PMIC
264	---help---
265	The Rockchip RK808 PMIC provides four buck DC-DC convertors, 8 LDOs,
266	an RTC and two low Rds (resistance (drain to source)) switches. It is
267	accessed via an I2C interface. The device is used with Rockchip SoCs.
268	This driver implements register read/write operations.
269
270config PMIC_S2MPS11
271	bool "Enable Driver Model for PMIC Samsung S2MPS11"
272	---help---
273	The Samsung S2MPS11 PMIC provides:
274	 - 38 adjustable LDO regulators
275	 - 9 High-Efficiency Buck Converters
276	 - 1 BuckBoost Converter
277	 - RTC with two alarms
278	 - Backup battery charger
279	 - I2C Configuration Interface
280	This driver provides access to I/O interface only.
281	Binding info: doc/device-tree-bindings/pmic/s2mps11.txt
282
283config DM_PMIC_SANDBOX
284	bool "Enable Driver Model for emulated Sandbox PMIC"
285	---help---
286	Enable the driver for Sandbox PMIC emulation. The emulated PMIC device
287	depends on two drivers:
288	- sandbox PMIC I/O driver - implements dm pmic operations
289	- sandbox PMIC i2c emul driver - emulates the PMIC's I2C transmission
290
291	A detailed information can be found in header: '<power/sandbox_pmic.h>'
292
293	The Sandbox PMIC info:
294	* I/O interface:
295	  - I2C chip address:       0x40
296	  - first register address: 0x0
297	  - register count:         0x10
298	* Adjustable outputs:
299	  - 2x LDO
300	  - 2x BUCK
301	  - Each, with a different operating conditions (header).
302	* Reset values:
303	  - set by i2c emul driver's probe() (defaults in header)
304
305	Driver binding info: doc/device-tree-bindings/pmic/sandbox.txt
306
307config DM_PMIC_CPCAP
308	bool "Enable Driver Model for Motorola CPCAP"
309	help
310	The CPCAP is a Motorola/ST-Ericsson creation, a multifunctional IC
311	whose main purpose is power control. It was used in a wide variety of
312	Motorola products, both Tegra and OMAP based. The most notable devices
313	using this PMIC are the Motorola Droid 4, Atrix 4G, and Droid X2.
314	Unlike most PMICs, this one is not I2C based; it uses the SPI bus. The
315	core driver provides both read and write access to the device registers.
316
317config PMIC_S5M8767
318	bool "Enable Driver Model for the Samsung S5M8767 PMIC"
319	---help---
320	The S5M8767 PMIC provides a large array of LDOs and BUCKs for use
321	as a SoC power controller. It also provides 32KHz clock outputs. This
322	driver provides basic register access and sets up the attached
323	regulators if regulator support is enabled.
324
325config PMIC_RN5T567
326	bool "Enable driver for Ricoh RN5T567 PMIC"
327	---help---
328	The RN5T567 is a PMIC with 4 step-down DC/DC converters, 5 LDO
329	regulators Real-Time Clock and 4 GPIOs. This driver provides
330	register access only.
331
332config SPL_PMIC_RN5T567
333	bool "Enable driver for Ricoh RN5T567 PMIC in SPL"
334	depends on SPL_DM_PMIC
335	---help---
336	The RN5T567 is a PMIC with 4 step-down DC/DC converters, 5 LDO
337	regulators Real-Time Clock and 4 GPIOs. This driver provides
338	register access only.
339
340config PMIC_TPS65090
341	bool "Enable driver for Texas Instruments TPS65090 PMIC"
342	---help---
343	The TPS65090 is a PMIC containing several LDOs, DC to DC convertors,
344	FETs and a battery charger. This driver provides register access
345	only, and you can enable the regulator/charger drivers separately if
346	required.
347
348config PMIC_PALMAS
349	bool "Enable driver for Texas Instruments PALMAS PMIC"
350	---help---
351	The PALMAS is a PMIC containing several LDOs, SMPS.
352	This driver binds the pmic children.
353
354config PMIC_LP873X
355	bool "Enable driver for Texas Instruments LP873X PMIC"
356	---help---
357	The LP873X is a PMIC containing couple of LDOs and couple of SMPS.
358	This driver binds the pmic children.
359
360config PMIC_LP87565
361	bool "Enable driver for Texas Instruments LP87565 PMIC"
362	---help---
363	The LP87565 is a PMIC containing a bunch of SMPS.
364	This driver binds the pmic children.
365
366config DM_PMIC_TPS65910
367	bool "Enable driver for Texas Instruments TPS65910 PMIC"
368	---help---
369	The TPS65910 is a PMIC containing 3 buck DC-DC converters, one boost
370	DC-DC converter, 8 LDOs and a RTC. This driver binds the SMPS and LDO
371	pmic children.
372
373config DM_PMIC_TPS80031
374	bool "Enable driver for Texas Instruments TPS80031/TPS80032 PMIC"
375	---help---
376	This config enables implementation of driver-model pmic uclass features
377	for TPS80031/TPS80032 PMICs. The driver implements read/write operations.
378	This is a Power Management IC with a decent set of peripherals from which
379	5 Buck Converters refered as Switched-mode power supply (SMPS), 11 General-
380	Purpose Low-Dropout Voltage Regulators (LDO), USB OTG Module, Real-Time
381	Clock (RTC) with Timer and Alarm Wake-Up, Two Digital PWM Outputs and more
382	with I2C Compatible Interface. PMIC occupies 4 I2C addresses.
383
384config PMIC_STPMIC1
385	bool "Enable support for STMicroelectronics STPMIC1 PMIC"
386	depends on DM_I2C
387	select SYSRESET_CMD_POWEROFF if CMD_POWEROFF && !ARM_PSCI_FW
388	---help---
389	The STPMIC1 PMIC provides 4 BUCKs, 6 LDOs, 1 VREF and 2 power switches.
390	It is accessed via an I2C interface. The device is used with STM32MP1
391	SoCs. This driver implements register read/write operations.
392
393config SPL_PMIC_PALMAS
394	bool "Enable driver for Texas Instruments PALMAS PMIC"
395	depends on SPL_DM_PMIC
396	help
397	The PALMAS is a PMIC containing several LDOs, SMPS.
398	This driver binds the pmic children in SPL.
399
400config SPL_PMIC_LP873X
401	bool "Enable driver for Texas Instruments LP873X PMIC"
402	depends on SPL_DM_PMIC
403	help
404	The LP873X is a PMIC containing couple of LDOs and couple of SMPS.
405	This driver binds the pmic children in SPL.
406
407config SPL_PMIC_LP87565
408	bool "Enable driver for Texas Instruments LP87565 PMIC"
409	depends on SPL_DM_PMIC
410	help
411	The LP87565 is a PMIC containing a bunch of SMPS.
412	This driver binds the pmic children in SPL.
413
414config PMIC_TPS65941
415	bool "Enable driver for Texas Instruments TPS65941 PMIC"
416	depends on DM_PMIC
417	help
418	The TPS65941 is a PMIC containing a bunch of SMPS & LDOs.
419	This driver binds the pmic children.
420
421config PMIC_TPS65219
422	bool "Enable driver for Texas Instruments TPS65219 PMIC"
423	depends on DM_PMIC
424	help
425	The TPS65219 is a PMIC containing a bunch of SMPS & LDOs.
426	This driver binds the pmic children.
427
428config PMIC_RAA215300
429	bool "Renesas RAA215300 PMIC driver"
430	depends on DM_PMIC
431	help
432	  The Renesas RAA215300 PMIC driver includes RTC support, system reset
433	  support and several voltage regulators. For now, this driver simply
434	  allows register access and will bind the sysreset driver
435	  (CONFIG_SYSRESET_RAA215300) if it is enabled.
436endif
437
438config PMIC_TPS65217
439	bool "Enable driver for Texas Instruments TPS65217 PMIC"
440	---help---
441	The TPS65217 is a PMIC containing several LDOs, DC to DC convertors,
442	FETs and a battery charger. This driver provides register access
443	only, and you can enable the regulator/charger drivers separately if
444	required.
445
446config POWER_TPS65218
447	bool "Enable legacy driver for TPS65218 PMIC"
448
449config POWER_TPS62362
450	bool "Enable legacy driver for TPS62362 PMIC"
451
452config SPL_POWER_TPS62362
453	bool "Enable legacy driver for TPS62362 PMIC in SPL"
454	default y if POWER_TPS62362
455	depends on SPL
456
457config SPL_POWER_TPS65910
458	bool "Enable legacy driver for TPS65910 PMIC in SPL"
459	depends on SPL
460
461if POWER_LEGACY || SPL_POWER_LEGACY
462
463config POWER_HI6553
464	bool "Enable legacy driver for HI6553 PMIC"
465
466config POWER_LTC3676
467	bool "Enable legacy driver for LTC3676 PMIC"
468
469config POWER_PCA9450
470	bool "Enable legacy driver for PCA9450 PMIC"
471
472config POWER_PFUZE100
473	bool "Enable legacy driver for PFUZE100 PMIC"
474
475config POWER_PFUZE3000
476	bool "Enable legacy driver for PFUZE3000 PMIC"
477
478config POWER_MC34VR500
479	bool "Enable driver for Freescale MC34VR500 PMIC"
480	---help---
481	The MC34VR500 is used in conjunction with the FSL T1 and LS1 series
482	SoC. It provides 4 buck DC-DC convertors and 5 LDOs, and it is accessed
483	via an I2C interface.
484
485endif
486