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