1config DM_REGULATOR
2	bool "Enable Driver Model for REGULATOR drivers (UCLASS_REGULATOR)"
3	depends on DM
4	---help---
5	This config enables the driver model regulator support.
6	UCLASS_REGULATOR - designed to provide a common API for basic regulator's
7	functions, like get/set Voltage or Current value, enable state, etc...
8	Note:
9	When enabling this, please read the description, found in the files:
10	- 'include/power/pmic.h'
11	- 'include/power/regulator.h'
12	- 'drivers/power/pmic/pmic-uclass.c'
13	- 'drivers/power/pmic/regulator-uclass.c'
14	It's important to call the device_bind() with the proper node offset,
15	when binding the regulator devices. The pmic_bind_childs() can be used
16	for this purpose if PMIC I/O driver is implemented or dm_scan_fdt_dev()
17	otherwise. Detailed information can be found in the header file.
18
19config SPL_DM_REGULATOR
20	bool "Enable regulators for SPL"
21	depends on DM_REGULATOR && SPL_POWER
22	---help---
23	Regulators are seldom needed in SPL. Even if they are accessed, some
24	code space can be saved by accessing the PMIC registers directly.
25	Enable this option if you need regulators in SPL and can cope with
26	the extra code size.
27
28config REGULATOR_ACT8846
29	bool "Enable driver for ACT8846 regulator"
30	depends on DM_REGULATOR && PMIC_ACT8846
31	---help---
32	Enable support for the regulator functions of the ACT8846 PMIC. The
33	driver implements get/set api for the various BUCKS and LDOS supported
34	by the PMIC device. This driver is controlled by a device tree node
35	which includes voltage limits.
36
37config REGULATOR_AS3722
38	bool "Enable driver for AS7322 regulator"
39	depends on DM_REGULATOR && PMIC_AS3722
40	help
41	  Enable support for the regulator functions of the AS3722. The
42	  driver implements enable/disable for step-down bucks and LDOs,
43	  but does not yet support change voltages. Currently this must be
44	  done using direct register writes to the PMIC.
45
46config REGULATOR_AXP
47	bool "Enable driver for X-Powers AXP PMIC regulators"
48	depends on DM_REGULATOR && PMIC_AXP
49	help
50	  Enable support for the regulators (DCDCs, LDOs) in the
51	  X-Powers AXP152, AXP2xx, and AXP8xx PMICs.
52
53config SPL_REGULATOR_AXP
54	bool "Enable driver for X-Powers AXP PMIC regulators in SPL"
55	depends on SPL_DM_REGULATOR && SPL_PMIC_AXP
56	help
57	  Enable support in SPL for the regulators (DCDCs, LDOs) in the
58	  X-Powers AXP152, AXP2xx, and AXP8xx PMICs.
59
60config REGULATOR_AXP_DRIVEVBUS
61	bool "Enable driver for X-Powers AXP PMIC drivevbus"
62	depends on DM_REGULATOR && PMIC_AXP
63	help
64	  Enable support for sensing or driving the USB VBUS on
65	  X-Powers AXP2xx and AXP8xx PMICs.
66
67config REGULATOR_AXP_USB_POWER
68	bool "Enable driver for X-Powers AXP PMIC USB power supply"
69	depends on DM_REGULATOR && PMIC_AXP
70	help
71	  Enable support for reading the USB power supply status from
72	  X-Powers AXP2xx and AXP8xx PMICs.
73
74config DM_REGULATOR_BD71837
75	bool "Enable Driver Model for ROHM BD71837/BD71847 regulators"
76	depends on DM_REGULATOR && DM_PMIC_BD71837
77	help
78	This config enables implementation of driver-model regulator uclass
79	features for regulators on ROHM BD71837 and BD71847 PMICs.
80	BD71837 contains 8 bucks and 7 LDOS. BD71847 is reduced version
81	containing 6 bucks and 6 LDOs. The driver implements get/set api for
82	value and enable.
83
84config SPL_DM_REGULATOR_BD71837
85	bool "Enable Driver Model for ROHM BD71837/BD71847 regulators in SPL"
86	depends on DM_REGULATOR_BD71837 && SPL
87	help
88	This config enables implementation of driver-model regulator uclass
89	features for regulators on ROHM BD71837 and BD71847 in SPL.
90
91config DM_REGULATOR_PCA9450
92	bool "Enable Driver Model for NXP PCA9450 regulators"
93	depends on DM_REGULATOR && DM_PMIC_PCA9450
94	help
95	This config enables implementation of driver-model regulator uclass
96	features for regulators on NXP PCA9450 PMICs. PCA9450 contains 6 bucks
97	and 5 LDOS. The driver implements get/set api for value and enable.
98
99config SPL_DM_REGULATOR_PCA9450
100	bool "Enable Driver Model for NXP PCA9450 regulators in SPL"
101	depends on DM_REGULATOR_PCA9450 && SPL
102	help
103	This config enables implementation of driver-model regulator uclass
104	features for regulators on ROHM PCA9450 in SPL.
105
106config DM_REGULATOR_DA9063
107	bool "Enable Driver Model for REGULATOR DA9063"
108	depends on DM_REGULATOR && DM_PMIC_DA9063
109	help
110	  This config enables implementation of driver-model regulator uclass
111	  features for REGULATOR DA9063.
112	  The driver implements get/set api for value, enable and mode for all
113	  regulators. It also implements the get/set api for current for the
114	  buck regulators.
115
116config SPL_DM_REGULATOR_DA9063
117	bool "Enable Driver Model for REGULATOR DA9063 in SPL"
118	depends on DM_REGULATOR && DM_PMIC_DA9063  && SPL
119	help
120	  This config enables implementation of driver-model regulator uclass
121	  features for REGULATOR DA9063.
122	  The driver implements get/set api for value, enable and mode for all
123	  regulators. It also implements the get/set api for current for the
124	  buck regulators.
125
126config DM_REGULATOR_PFUZE100
127	bool "Enable Driver Model for REGULATOR PFUZE100"
128	depends on DM_REGULATOR && DM_PMIC_PFUZE100
129	---help---
130	This config enables implementation of driver-model regulator uclass
131	features for REGULATOR PFUZE100. The driver implements get/set api for:
132	value, enable and mode.
133
134config REGULATOR_PWM
135	bool "Enable driver for PWM regulators"
136	depends on DM_REGULATOR
137	---help---
138	Enable support for the PWM regulator functions which voltage are
139	controlled by PWM duty ratio. Some of Rockchip board using this kind
140	of regulator. The driver implements get/set api for the various BUCKS.
141	This driver is controlled by a device tree node
142	which includes voltage limits.
143
144config SPL_REGULATOR_PWM
145	bool "Enable Driver for PWM regulators in SPL"
146	depends on REGULATOR_PWM && SPL
147	help
148	  This config enables implementation of driver-model regulator uclass
149	  features for PWM regulators in SPL.
150
151config DM_REGULATOR_MAX8907
152	bool "Enable Driver Model for REGULATOR MAX8907"
153	depends on DM_REGULATOR && DM_PMIC_MAX8907
154	---help---
155	This config enables implementation of driver-model regulator uclass
156	features for REGULATOR MAX8907. The driver supports both DC-to-DC
157	Step-Down (SD) Regulators and Low-Dropout Linear (LDO) Regulators
158	found in MAX8907 PMIC and implements get/set api for value and enable.
159
160config DM_REGULATOR_MAX77663
161	bool "Enable Driver Model for REGULATOR MAX77663"
162	depends on DM_REGULATOR && DM_PMIC_MAX77663
163	---help---
164	This config enables implementation of driver-model regulator uclass
165	features for REGULATOR MAX77663. The driver supports both DC-to-DC
166	Step-Down (SD) Regulators and Low-Dropout Linear (LDO) Regulators
167	found in MAX77663 PMIC and implements get/set api for value and enable.
168
169config DM_REGULATOR_MAX77686
170	bool "Enable Driver Model for REGULATOR MAX77686"
171	depends on DM_REGULATOR && DM_PMIC_MAX77686
172	---help---
173	This config enables implementation of driver-model regulator uclass
174	features for REGULATOR MAX77686. The driver implements get/set api for:
175	value, enable and mode.
176
177config DM_REGULATOR_NPCM8XX
178	bool "Enable Driver Model for NPCM8xx voltage supply"
179	depends on DM_REGULATOR && ARCH_NPCM8XX
180	help
181	  Enable support for configuring voltage supply on NPCM8XX SoC. The
182	  voltage supplies support two voltage levels and the driver implements
183	  get/set api for setting the value.
184
185config DM_REGULATOR_FAN53555
186	bool "Enable Driver Model for REGULATOR FAN53555"
187	depends on DM_PMIC_FAN53555
188	help
189	  This config enables implementation of driver-model regulator
190	  uclass features for the FAN53555 regulator. The FAN53555 is
191	  a (family of) single-output regulators that supports
192	  transitioning between two different output voltages based on
193	  an voltage selection pin.
194
195	  The driver implements a get/set api for the voltage of the
196	  'normal mode' voltage only. Switching to 'suspend mode'
197	  (i.e. the alternate voltage), disabling output via software,
198	  or switching the mode is not supported by this driver (at
199	  this time).
200
201config DM_REGULATOR_COMMON
202	bool
203	depends on DM_REGULATOR
204
205config SPL_DM_REGULATOR_COMMON
206	bool
207	depends on DM_REGULATOR
208
209config DM_REGULATOR_FIXED
210	bool "Enable Driver Model for REGULATOR Fixed value"
211	depends on DM_REGULATOR
212	select DM_REGULATOR_COMMON
213	---help---
214	This config enables implementation of driver-model regulator uclass
215	features for fixed value regulators. The driver implements get/set api
216	for enable and get only for voltage value.
217
218config SPL_DM_REGULATOR_FIXED
219	bool "Enable Driver Model for REGULATOR Fixed value in SPL"
220	depends on DM_REGULATOR_FIXED && SPL
221	select SPL_DM_REGULATOR_COMMON
222	---help---
223	This config enables implementation of driver-model regulator uclass
224	features for fixed value regulators in SPL.
225
226config DM_REGULATOR_GPIO
227	bool "Enable Driver Model for GPIO REGULATOR"
228	depends on DM_REGULATOR && DM_GPIO
229	select DM_REGULATOR_COMMON
230	---help---
231	This config enables implementation of driver-model regulator uclass
232	features for gpio regulators. The driver implements get/set for
233	voltage value.
234
235config DM_REGULATOR_QCOM_RPMH
236	bool "Enable driver model for Qualcomm RPMh regulator"
237	depends on DM_REGULATOR && QCOM_RPMH
238	---help---
239	  Enable support for the Qualcomm RPMh regulator. The driver
240	  implements get/set api for a limited set of regulators used
241	  by u-boot.
242
243config DM_REGULATOR_QCOM_USB_VBUS
244	bool "Enable driver model for Qualcomm USB vbus regulator"
245	depends on DM_REGULATOR
246	---help---
247	  Enable support for the Qualcomm USB Vbus regulator. The driver
248	  implements get/set api for the regulator to be used by u-boot.
249
250config SPL_DM_REGULATOR_GPIO
251	bool "Enable Driver Model for GPIO REGULATOR in SPL"
252	depends on DM_REGULATOR_GPIO && SPL_GPIO
253	select SPL_DM_REGULATOR_COMMON
254	---help---
255	This config enables implementation of driver-model regulator uclass
256	features for gpio regulators in SPL.
257
258config REGULATOR_RK8XX
259	bool "Enable driver for RK8XX regulators"
260	depends on DM_REGULATOR && PMIC_RK8XX
261	---help---
262	Enable support for the regulator functions of the RK8XX PMIC. The
263	driver implements get/set api for the various BUCKS and LDOs supported
264	by the PMIC device. This driver is controlled by a device tree node
265	which includes voltage limits.
266
267config SPL_REGULATOR_RK8XX
268	bool "Enable driver for RK8XX regulators in SPL"
269	depends on SPL_DM_REGULATOR && SPL_PMIC_RK8XX
270	help
271	  Enable support for the regulator functions of the RK8XX PMIC in SPL. The
272	  driver implements get/set api for the various BUCKS and LDOs supported
273	  by the PMIC device. This driver is controlled by a device tree node
274	  which includes voltage limits.
275
276config DM_REGULATOR_S2MPS11
277	bool "Enable driver for S2MPS11 regulator"
278	depends on DM_REGULATOR && PMIC_S2MPS11
279	---help---
280	This enables implementation of driver-model regulator uclass
281	features for REGULATOR S2MPS11.
282	The driver implements get/set api for: value and enable.
283
284config REGULATOR_S5M8767
285	bool "Enable support for S5M8767 regulator"
286	depends on DM_REGULATOR && PMIC_S5M8767
287	---help---
288	This enables the regulator features of the S5M8767, allowing voltages
289	to be set, etc. The driver is not fully complete but supports most
290	common requirements, including all LDOs and BUCKs. This allows many
291	supplies to be set automatically using the device tree values.
292
293config DM_REGULATOR_SANDBOX
294	bool "Enable Driver Model for Sandbox PMIC regulator"
295	depends on DM_REGULATOR && DM_PMIC_SANDBOX
296	---help---
297	Enable the regulator driver for emulated Sandbox PMIC.
298	The emulated PMIC device depends on two drivers:
299	- sandbox PMIC I/O driver - implements dm pmic operations
300	- sandbox PMIC regulator driver - implements dm regulator operations
301	- sandbox PMIC i2c emul driver - emulates the PMIC's I2C transmission
302
303	The regulator driver provides uclass operations for sandbox PMIC's
304	regulators. The driver implements get/set api for: voltage, current,
305	operation mode and enable state.
306	The driver supports LDO and BUCK regulators.
307
308	The Sandbox PMIC info:
309	* I/O interface:
310	  - I2C chip address:       0x40
311	  - first register address: 0x0
312	  - register count:         0x10
313	* Adjustable outputs:
314	  - 2x LDO
315	  - 2x BUCK
316	  - Each, with a different operating conditions (header).
317	* Reset values:
318	  - set by i2c emul driver's probe() (defaults in header)
319
320	A detailed information can be found in header: '<power/sandbox_pmic.h>'
321	Binding info: 'doc/device-tree-bindings/pmic/max77686.txt'
322
323config REGULATOR_TPS65090
324	bool "Enable driver for TPS65090 PMIC regulators"
325	depends on PMIC_TPS65090
326	---help---
327	The TPS65090 provides several FETs (Field-effect Transistors,
328	effectively switches) which are supported by this driver as
329	regulators, one for each FET. The standard regulator interface is
330	supported, but it is only possible to turn the regulators on or off.
331	There is no voltage/current control.
332
333config DM_REGULATOR_PALMAS
334	bool "Enable driver for PALMAS PMIC regulators"
335       depends on PMIC_PALMAS
336	---help---
337	This enables implementation of driver-model regulator uclass
338	features for REGULATOR PALMAS and the family of PALMAS PMICs.
339	The driver implements get/set api for: value and enable.
340
341config DM_REGULATOR_PBIAS
342	bool "Enable driver for PBIAS regulator"
343	depends on DM_REGULATOR
344	select REGMAP
345	select SYSCON
346	---help---
347	This enables implementation of driver-model regulator uclass
348	features for pseudo-regulator PBIAS found in the OMAP SOCs.
349	This pseudo-regulator is used to provide a BIAS voltage to MMC1
350	signal pads and must be configured properly during a voltage switch.
351	Voltage switching is required by some operating modes of SDcards and
352	eMMC.
353
354config DM_REGULATOR_LP873X
355	bool "Enable driver for LP873X PMIC regulators"
356        depends on PMIC_LP873X
357	---help---
358	This enables implementation of driver-model regulator uclass
359	features for REGULATOR LP873X and the family of LP873X PMICs.
360	The driver implements get/set api for: value and enable.
361
362config DM_REGULATOR_LP87565
363	bool "Enable driver for LP87565 PMIC regulators"
364        depends on PMIC_LP87565
365	---help---
366	This enables implementation of driver-model regulator uclass
367	features for REGULATOR LP87565 and the family of LP87565 PMICs.
368	LP87565 series of PMICs have 4 single phase BUCKs that can also
369	be configured in multi phase modes. The driver implements
370	get/set api for value and enable.
371
372config DM_REGULATOR_STM32_VREFBUF
373	bool "Enable driver for STMicroelectronics STM32 VREFBUF"
374	depends on DM_REGULATOR && (STM32H7 || ARCH_STM32MP)
375	help
376	This driver supports STMicroelectronics STM32 VREFBUF (voltage
377	reference buffer) which can be used as voltage reference for
378	internal ADCs, DACs and also for external components through
379	dedicated Vref+ pin.
380
381config DM_REGULATOR_TPS65910
382	bool "Enable driver for TPS65910 PMIC regulators"
383	depends on DM_PMIC_TPS65910
384	---help---
385	The TPS65910 PMIC provides 4 SMPSs and 8 LDOs. This driver supports all
386	regulator types of the TPS65910 (BUCK, BOOST and LDO). It implements
387	the get/set api for value and enable.
388
389config DM_REGULATOR_TPS65911
390	bool "Enable driver for TPS65911 PMIC regulators"
391	depends on DM_PMIC_TPS65910
392	---help---
393	This config enables implementation of driver-model regulator
394	uclass features for the TPS65911 PMIC. The driver supports Step-Down
395	DC-DC Converters for Processor Cores (VDD1 and VDD2), Step-Down DC-DC
396	Converter for I/O Power (VIO), Controller for External FETs (VDDCtrl)
397	and LDO Voltage Regulators found in TPS65911 PMIC and implements
398	get/set api for value and enable.
399
400config DM_REGULATOR_TPS62360
401	bool "Enable driver for TPS6236x Power Regulator"
402	depends on DM_REGULATOR
403	help
404	The TPS6236X DC/DC step down converter provides a single output
405	power line peaking at 3A current. This driver supports all four
406	variants of the chip (TPS62360, TPS62361, TPS62362, TPS62363). It
407	implements the get/set api for value only, as the power line is
408	always on.
409
410config DM_REGULATOR_TPS80031
411	bool "Enable driver for TPS80031/TPS80032 PMIC regulators"
412	depends on DM_PMIC_TPS80031
413	---help---
414	This enables implementation of driver-model regulator uclass
415	features for TPS80031/TPS80032 PMICs. The driver implements
416	get/set api for: value and enable.
417
418config DM_REGULATOR_TPS6287X
419	bool "Enable driver for TPS6287x Power Regulator"
420	depends on DM_REGULATOR
421	help
422	The TPS6287X is a step down converter with a fast transient
423	response. This driver supports all four variants of the chip
424	(TPS62870, TPS62871, TPS62872, TPS62873). It implements the
425	get/set api for value only, as the power line is always on.
426
427config DM_REGULATOR_STPMIC1
428	bool "Enable driver for STPMIC1 regulators"
429	depends on DM_REGULATOR && PMIC_STPMIC1
430	---help---
431	Enable support for the regulator functions of the STPMIC1 PMIC. The
432	driver implements get/set api for the various BUCKS and LDOs supported
433	by the PMIC device. This driver is controlled by a device tree node
434	which includes voltage limits.
435
436config DM_REGULATOR_ANATOP
437	bool "Enable driver for ANATOP regulators"
438	depends on DM_REGULATOR
439	select REGMAP
440	select SYSCON
441	help
442	Enable support for the Freescale i.MX on-chip ANATOP LDO
443	regulators. It is recommended that this option be enabled on
444	i.MX6 platform.
445
446config SPL_DM_REGULATOR_TPS6287X
447	bool "Enable driver for TPS6287x Power Regulator"
448	depends on SPL_DM_REGULATOR
449	help
450	The TPS6287X is a step down converter with a fast transient
451	response. This driver supports all four variants of the chip
452	(TPS62870, TPS62871, TPS62872, TPS62873). It implements the
453	get/set api for value only, as the power line is always on.
454
455config SPL_DM_REGULATOR_STPMIC1
456	bool "Enable driver for STPMIC1 regulators in SPL"
457	depends on SPL_DM_REGULATOR && PMIC_STPMIC1
458	help
459	  Enable support for the regulator functions of the STPMIC1 PMIC in SPL.
460
461config SPL_DM_REGULATOR_PALMAS
462	bool "Enable driver for PALMAS PMIC regulators"
463	depends on SPL_PMIC_PALMAS
464	help
465	This enables implementation of driver-model regulator uclass
466	features for REGULATOR PALMAS and the family of PALMAS PMICs.
467	The driver implements get/set api for: value and enable in SPL.
468
469config SPL_DM_REGULATOR_LP87565
470	bool "Enable driver for LP87565 PMIC regulators"
471	depends on SPL_PMIC_LP87565
472	help
473	This enables implementation of driver-model regulator uclass
474	features for REGULATOR LP87565 and the family of LP87565 PMICs.
475	LP87565 series of PMICs have 4 single phase BUCKs that can also
476	be configured in multi phase modes. The driver implements
477	get/set api for value and enable in SPL.
478
479config SPL_DM_REGULATOR_LP873X
480	bool "Enable driver for LP873X PMIC regulators"
481	depends on SPL_PMIC_LP873X
482	help
483	This enables implementation of driver-model regulator uclass
484	features for REGULATOR LP873X and the family of LP873X PMICs.
485	The driver implements get/set api for: value and enable in SPL.
486
487config DM_REGULATOR_TPS65941
488	bool "Enable driver for TPS65941 PMIC regulators"
489        depends on PMIC_TPS65941
490	help
491	This enables implementation of driver-model regulator uclass
492	features for REGULATOR TPS65941 and the family of TPS65941 PMICs.
493	TPS65941 series of PMICs have 5 single phase BUCKs that can also
494	be configured in multi phase modes & 4 LDOs. The driver implements
495	get/set api for value and enable.
496
497config DM_REGULATOR_SCMI
498	bool "Enable driver for SCMI voltage domain regulators"
499	depends on DM_REGULATOR
500	select SCMI_AGENT
501        help
502          Enable this option if you want to support regulators exposed through
503	  the SCMI voltage domain protocol by a SCMI server.
504
505config DM_REGULATOR_TPS65219
506	bool "Enable driver for TPS65219 PMIC regulators"
507        depends on PMIC_TPS65219
508	help
509	This enables implementation of driver-model regulator uclass
510	features for REGULATOR TPS65219 and the family of TPS65219 PMICs.
511	TPS65219 series of PMICs have 3 single phase BUCKs & 4 LDOs.
512	The driver implements get/set api for value and enable.
513
514config REGULATOR_RZG2L_USBPHY
515	bool "Enable driver for RZ/G2L USB PHY VBUS supply"
516	depends on DM_REGULATOR
517	help
518	  Enable this option to support controlling the VBUS supply in
519	  the USB PHY peripheral of the Renesas RZ/G2L SoC. This option
520	  is required in order to use the USB OTG port.
521
522config DM_REGULATOR_CPCAP
523	bool "Enable driver for CPCAP PMIC regulators"
524	depends on DM_REGULATOR && DM_PMIC_CPCAP
525	---help---
526	Enable implementation of driver-model regulator uclass features for
527	REGULATOR CPCAP. The driver supports both DC-to-DC Step-Down Switching
528	(SW) Regulators and Low-Dropout Linear (LDO) Regulators	found in CPCAP
529	PMIC and implements get/set api for voltage and state.
530