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