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_SUPPORT
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 DM_REGULATOR_BD71837
47	bool "Enable Driver Model for ROHM BD71837/BD71847 regulators"
48	depends on DM_REGULATOR && DM_PMIC_BD71837
49	help
50	This config enables implementation of driver-model regulator uclass
51	features for regulators on ROHM BD71837 and BD71847 PMICs.
52	BD71837 contains 8 bucks and 7 LDOS. BD71847 is reduced version
53	containing 6 bucks and 6 LDOs. The driver implements get/set api for
54	value and enable.
55
56config SPL_DM_REGULATOR_BD71837
57	bool "Enable Driver Model for ROHM BD71837/BD71847 regulators in SPL"
58	depends on DM_REGULATOR_BD71837
59	help
60	This config enables implementation of driver-model regulator uclass
61	features for regulators on ROHM BD71837 and BD71847 in SPL.
62
63config DM_REGULATOR_DA9063
64	bool "Enable Driver Model for REGULATOR DA9063"
65	depends on DM_REGULATOR && DM_PMIC_DA9063
66	help
67	  This config enables implementation of driver-model regulator uclass
68	  features for REGULATOR DA9063.
69	  The driver implements get/set api for value, enable and mode for all
70	  regulators. It also implements the get/set api for current for the
71	  buck regulators.
72
73config SPL_DM_REGULATOR_DA9063
74	bool "Enable Driver Model for REGULATOR DA9063 in SPL"
75	depends on DM_REGULATOR && DM_PMIC_DA9063  && SPL
76	help
77	  This config enables implementation of driver-model regulator uclass
78	  features for REGULATOR DA9063.
79	  The driver implements get/set api for value, enable and mode for all
80	  regulators. It also implements the get/set api for current for the
81	  buck regulators.
82
83config DM_REGULATOR_PFUZE100
84	bool "Enable Driver Model for REGULATOR PFUZE100"
85	depends on DM_REGULATOR && DM_PMIC_PFUZE100
86	---help---
87	This config enables implementation of driver-model regulator uclass
88	features for REGULATOR PFUZE100. The driver implements get/set api for:
89	value, enable and mode.
90
91config REGULATOR_PWM
92	bool "Enable driver for PWM regulators"
93	depends on DM_REGULATOR
94	---help---
95	Enable support for the PWM regulator functions which voltage are
96	controlled by PWM duty ratio. Some of Rockchip board using this kind
97	of regulator. The driver implements get/set api for the various BUCKS.
98	This driver is controlled by a device tree node
99	which includes voltage limits.
100
101config SPL_REGULATOR_PWM
102	bool "Enable Driver for PWM regulators in SPL"
103	depends on REGULATOR_PWM
104	help
105	  This config enables implementation of driver-model regulator uclass
106	  features for PWM regulators in SPL.
107
108config DM_REGULATOR_MAX77686
109	bool "Enable Driver Model for REGULATOR MAX77686"
110	depends on DM_REGULATOR && DM_PMIC_MAX77686
111	---help---
112	This config enables implementation of driver-model regulator uclass
113	features for REGULATOR MAX77686. The driver implements get/set api for:
114	value, enable and mode.
115
116config DM_REGULATOR_FAN53555
117	bool "Enable Driver Model for REGULATOR FAN53555"
118	depends on DM_PMIC_FAN53555
119	help
120	  This config enables implementation of driver-model regulator
121	  uclass features for the FAN53555 regulator. The FAN53555 is
122	  a (family of) single-output regulators that supports
123	  transitioning between two different output voltages based on
124	  an voltage selection pin.
125
126	  The driver implements a get/set api for the voltage of the
127	  'normal mode' voltage only. Switching to 'suspend mode'
128	  (i.e. the alternate voltage), disabling output via software,
129	  or switching the mode is not supported by this driver (at
130	  this time).
131
132config DM_REGULATOR_COMMON
133	bool
134	depends on DM_REGULATOR
135
136config SPL_DM_REGULATOR_COMMON
137	bool
138	depends on DM_REGULATOR
139
140config DM_REGULATOR_FIXED
141	bool "Enable Driver Model for REGULATOR Fixed value"
142	depends on DM_REGULATOR
143	select DM_REGULATOR_COMMON
144	---help---
145	This config enables implementation of driver-model regulator uclass
146	features for fixed value regulators. The driver implements get/set api
147	for enable and get only for voltage value.
148
149config SPL_DM_REGULATOR_FIXED
150	bool "Enable Driver Model for REGULATOR Fixed value in SPL"
151	depends on DM_REGULATOR_FIXED
152	select SPL_DM_REGULATOR_COMMON
153	---help---
154	This config enables implementation of driver-model regulator uclass
155	features for fixed value regulators in SPL.
156
157config DM_REGULATOR_GPIO
158	bool "Enable Driver Model for GPIO REGULATOR"
159	depends on DM_REGULATOR && DM_GPIO
160	select DM_REGULATOR_COMMON
161	---help---
162	This config enables implementation of driver-model regulator uclass
163	features for gpio regulators. The driver implements get/set for
164	voltage value.
165
166config SPL_DM_REGULATOR_GPIO
167	bool "Enable Driver Model for GPIO REGULATOR in SPL"
168	depends on DM_REGULATOR_GPIO && SPL_GPIO_SUPPORT
169	select SPL_DM_REGULATOR_COMMON
170	---help---
171	This config enables implementation of driver-model regulator uclass
172	features for gpio regulators in SPL.
173
174config REGULATOR_RK8XX
175	bool "Enable driver for RK8XX regulators"
176	depends on DM_REGULATOR && PMIC_RK8XX
177	---help---
178	Enable support for the regulator functions of the RK8XX PMIC. The
179	driver implements get/set api for the various BUCKS and LDOs supported
180	by the PMIC device. This driver is controlled by a device tree node
181	which includes voltage limits.
182
183config DM_REGULATOR_S2MPS11
184	bool "Enable driver for S2MPS11 regulator"
185	depends on DM_REGULATOR && PMIC_S2MPS11
186	---help---
187	This enables implementation of driver-model regulator uclass
188	features for REGULATOR S2MPS11.
189	The driver implements get/set api for: value and enable.
190
191config REGULATOR_S5M8767
192	bool "Enable support for S5M8767 regulator"
193	depends on DM_REGULATOR && PMIC_S5M8767
194	---help---
195	This enables the regulator features of the S5M8767, allowing voltages
196	to be set, etc. The driver is not fully complete but supports most
197	common requirements, including all LDOs and BUCKs. This allows many
198	supplies to be set automatically using the device tree values.
199
200config DM_REGULATOR_SANDBOX
201	bool "Enable Driver Model for Sandbox PMIC regulator"
202	depends on DM_REGULATOR && DM_PMIC_SANDBOX
203	---help---
204	Enable the regulator driver for emulated Sandbox PMIC.
205	The emulated PMIC device depends on two drivers:
206	- sandbox PMIC I/O driver - implements dm pmic operations
207	- sandbox PMIC regulator driver - implements dm regulator operations
208	- sandbox PMIC i2c emul driver - emulates the PMIC's I2C transmission
209
210	The regulator driver provides uclass operations for sandbox PMIC's
211	regulators. The driver implements get/set api for: voltage, current,
212	operation mode and enable state.
213	The driver supports LDO and BUCK regulators.
214
215	The Sandbox PMIC info:
216	* I/O interface:
217	  - I2C chip address:       0x40
218	  - first register address: 0x0
219	  - register count:         0x10
220	* Adjustable outputs:
221	  - 2x LDO
222	  - 2x BUCK
223	  - Each, with a different operating conditions (header).
224	* Reset values:
225	  - set by i2c emul driver's probe() (defaults in header)
226
227	A detailed information can be found in header: '<power/sandbox_pmic.h>'
228	Binding info: 'doc/device-tree-bindings/pmic/max77686.txt'
229
230config REGULATOR_TPS65090
231	bool "Enable driver for TPS65090 PMIC regulators"
232	depends on PMIC_TPS65090
233	---help---
234	The TPS65090 provides several FETs (Field-effect Transistors,
235	effectively switches) which are supported by this driver as
236	regulators, one for each FET. The standard regulator interface is
237	supported, but it is only possible to turn the regulators on or off.
238	There is no voltage/current control.
239
240config DM_REGULATOR_PALMAS
241	bool "Enable driver for PALMAS PMIC regulators"
242       depends on PMIC_PALMAS
243	---help---
244	This enables implementation of driver-model regulator uclass
245	features for REGULATOR PALMAS and the family of PALMAS PMICs.
246	The driver implements get/set api for: value and enable.
247
248config DM_REGULATOR_PBIAS
249	bool "Enable driver for PBIAS regulator"
250	depends on DM_REGULATOR
251	select REGMAP
252	select SYSCON
253	---help---
254	This enables implementation of driver-model regulator uclass
255	features for pseudo-regulator PBIAS found in the OMAP SOCs.
256	This pseudo-regulator is used to provide a BIAS voltage to MMC1
257	signal pads and must be configured properly during a voltage switch.
258	Voltage switching is required by some operating modes of SDcards and
259	eMMC.
260
261config DM_REGULATOR_LP873X
262	bool "Enable driver for LP873X PMIC regulators"
263        depends on PMIC_LP873X
264	---help---
265	This enables implementation of driver-model regulator uclass
266	features for REGULATOR LP873X and the family of LP873X PMICs.
267	The driver implements get/set api for: value and enable.
268
269config DM_REGULATOR_LP87565
270	bool "Enable driver for LP87565 PMIC regulators"
271        depends on PMIC_LP87565
272	---help---
273	This enables implementation of driver-model regulator uclass
274	features for REGULATOR LP87565 and the family of LP87565 PMICs.
275	LP87565 series of PMICs have 4 single phase BUCKs that can also
276	be configured in multi phase modes. The driver implements
277	get/set api for value and enable.
278
279config DM_REGULATOR_STM32_VREFBUF
280	bool "Enable driver for STMicroelectronics STM32 VREFBUF"
281	depends on DM_REGULATOR && (STM32H7 || ARCH_STM32MP)
282	help
283	This driver supports STMicroelectronics STM32 VREFBUF (voltage
284	reference buffer) which can be used as voltage reference for
285	internal ADCs, DACs and also for external components through
286	dedicated Vref+ pin.
287
288config DM_REGULATOR_TPS65910
289	bool "Enable driver for TPS65910 PMIC regulators"
290	depends on DM_PMIC_TPS65910
291	---help---
292	The TPS65910 PMIC provides 4 SMPSs and 8 LDOs. This driver supports all
293	regulator types of the TPS65910 (BUCK, BOOST and LDO). It implements
294	the get/set api for value and enable.
295
296config DM_REGULATOR_TPS62360
297	bool "Enable driver for TPS6236x Power Regulator"
298	depends on DM_REGULATOR
299	help
300	The TPS6236X DC/DC step down converter provides a single output
301	power line peaking at 3A current. This driver supports all four
302	variants of the chip (TPS62360, TPS62361, TPS62362, TPS62363). It
303	implements the get/set api for value only, as the power line is
304	always on.
305
306config DM_REGULATOR_STPMIC1
307	bool "Enable driver for STPMIC1 regulators"
308	depends on DM_REGULATOR && PMIC_STPMIC1
309	---help---
310	Enable support for the regulator functions of the STPMIC1 PMIC. The
311	driver implements get/set api for the various BUCKS and LDOs supported
312	by the PMIC device. This driver is controlled by a device tree node
313	which includes voltage limits.
314
315config DM_REGULATOR_ANATOP
316	bool "Enable driver for ANATOP regulators"
317	depends on DM_REGULATOR
318	select REGMAP
319	select SYSCON
320	help
321	Enable support for the Freescale i.MX on-chip ANATOP LDO
322	regulators. It is recommended that this option be enabled on
323	i.MX6 platform.
324
325config SPL_DM_REGULATOR_STPMIC1
326	bool "Enable driver for STPMIC1 regulators in SPL"
327	depends on SPL_DM_REGULATOR && PMIC_STPMIC1
328	help
329	  Enable support for the regulator functions of the STPMIC1 PMIC in SPL.
330
331config SPL_DM_REGULATOR_PALMAS
332	bool "Enable driver for PALMAS PMIC regulators"
333       depends on SPL_PMIC_PALMAS
334	help
335	This enables implementation of driver-model regulator uclass
336	features for REGULATOR PALMAS and the family of PALMAS PMICs.
337	The driver implements get/set api for: value and enable in SPL.
338
339config SPL_DM_REGULATOR_LP87565
340	bool "Enable driver for LP87565 PMIC regulators"
341       depends on SPL_PMIC_LP87565
342	help
343	This enables implementation of driver-model regulator uclass
344	features for REGULATOR LP87565 and the family of LP87565 PMICs.
345	LP87565 series of PMICs have 4 single phase BUCKs that can also
346	be configured in multi phase modes. The driver implements
347	get/set api for value and enable in SPL.
348
349config SPL_DM_REGULATOR_LP873X
350	bool "Enable driver for LP873X PMIC regulators"
351	depends on SPL_PMIC_LP873X
352	help
353	This enables implementation of driver-model regulator uclass
354	features for REGULATOR LP873X and the family of LP873X PMICs.
355	The driver implements get/set api for: value and enable in SPL.
356
357config DM_REGULATOR_TPS65941
358	bool "Enable driver for TPS65941 PMIC regulators"
359        depends on PMIC_TPS65941
360	help
361	This enables implementation of driver-model regulator uclass
362	features for REGULATOR TPS65941 and the family of TPS65941 PMICs.
363	TPS65941 series of PMICs have 5 single phase BUCKs that can also
364	be configured in multi phase modes & 4 LDOs. The driver implements
365	get/set api for value and enable.
366
367config DM_REGULATOR_SCMI
368	bool "Enable driver for SCMI voltage domain regulators"
369	depends on DM_REGULATOR
370	select SCMI_AGENT
371        help
372          Enable this option if you want to support regulators exposed through
373	  the SCMI voltage domain protocol by a SCMI server.
374