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_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
193config 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
199config 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
205config 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
219config 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
234config 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
242config 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
251config 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
264config 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
288config 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
296config 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
303config 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
311config 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
319config 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
325config 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
331config 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
337config 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
344config 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
353config 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
360config 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
367config 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
374config 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
380config 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.
386endif
387
388config 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
396config POWER_TPS65218
397	bool "Enable legacy driver for TPS65218 PMIC"
398
399config POWER_TPS62362
400	bool "Enable legacy driver for TPS62362 PMIC"
401
402config SPL_POWER_TPS62362
403	bool "Enable legacy driver for TPS62362 PMIC in SPL"
404	default y if POWER_TPS62362
405	depends on SPL
406
407config SPL_POWER_TPS65910
408	bool "Enable legacy driver for TPS65910 PMIC in SPL"
409	depends on SPL
410
411if POWER_LEGACY || SPL_POWER_LEGACY
412
413config POWER_HI6553
414	bool "Enable legacy driver for HI6553 PMIC"
415
416config POWER_LTC3676
417	bool "Enable legacy driver for LTC3676 PMIC"
418
419config POWER_PCA9450
420	bool "Enable legacy driver for PCA9450 PMIC"
421
422config POWER_PFUZE100
423	bool "Enable legacy driver for PFUZE100 PMIC"
424
425config POWER_PFUZE3000
426	bool "Enable legacy driver for PFUZE3000 PMIC"
427
428config 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
435endif
436