config DM_REGULATOR
	bool "Enable Driver Model for REGULATOR drivers (UCLASS_REGULATOR)"
	depends on DM
	---help---
	This config enables the driver model regulator support.
	UCLASS_REGULATOR - designed to provide a common API for basic regulator's
	functions, like get/set Voltage or Current value, enable state, etc...
	Note:
	When enabling this, please read the description, found in the files:
	- 'include/power/pmic.h'
	- 'include/power/regulator.h'
	- 'drivers/power/pmic/pmic-uclass.c'
	- 'drivers/power/pmic/regulator-uclass.c'
	It's important to call the device_bind() with the proper node offset,
	when binding the regulator devices. The pmic_bind_childs() can be used
	for this purpose if PMIC I/O driver is implemented or dm_scan_fdt_dev()
	otherwise. Detailed information can be found in the header file.

config SPL_DM_REGULATOR
	bool "Enable regulators for SPL"
	depends on DM_REGULATOR && SPL_POWER
	---help---
	Regulators are seldom needed in SPL. Even if they are accessed, some
	code space can be saved by accessing the PMIC registers directly.
	Enable this option if you need regulators in SPL and can cope with
	the extra code size.

config REGULATOR_ACT8846
	bool "Enable driver for ACT8846 regulator"
	depends on DM_REGULATOR && PMIC_ACT8846
	---help---
	Enable support for the regulator functions of the ACT8846 PMIC. The
	driver implements get/set api for the various BUCKS and LDOS supported
	by the PMIC device. This driver is controlled by a device tree node
	which includes voltage limits.

config REGULATOR_AS3722
	bool "Enable driver for AS7322 regulator"
	depends on DM_REGULATOR && PMIC_AS3722
	help
	  Enable support for the regulator functions of the AS3722. The
	  driver implements enable/disable for step-down bucks and LDOs,
	  but does not yet support change voltages. Currently this must be
	  done using direct register writes to the PMIC.

config REGULATOR_AXP
	bool "Enable driver for X-Powers AXP PMIC regulators"
	depends on DM_REGULATOR && PMIC_AXP
	help
	  Enable support for the regulators (DCDCs, LDOs) in the
	  X-Powers AXP152, AXP2xx, and AXP8xx PMICs.

config SPL_REGULATOR_AXP
	bool "Enable driver for X-Powers AXP PMIC regulators in SPL"
	depends on SPL_DM_REGULATOR && SPL_PMIC_AXP
	help
	  Enable support in SPL for the regulators (DCDCs, LDOs) in the
	  X-Powers AXP152, AXP2xx, and AXP8xx PMICs.

config REGULATOR_AXP_DRIVEVBUS
	bool "Enable driver for X-Powers AXP PMIC drivevbus"
	depends on DM_REGULATOR && PMIC_AXP
	help
	  Enable support for sensing or driving the USB VBUS on
	  X-Powers AXP2xx and AXP8xx PMICs.

config REGULATOR_AXP_USB_POWER
	bool "Enable driver for X-Powers AXP PMIC USB power supply"
	depends on DM_REGULATOR && PMIC_AXP
	help
	  Enable support for reading the USB power supply status from
	  X-Powers AXP2xx and AXP8xx PMICs.

config DM_REGULATOR_BD71837
	bool "Enable Driver Model for ROHM BD71837/BD71847 regulators"
	depends on DM_REGULATOR && DM_PMIC_BD71837
	help
	This config enables implementation of driver-model regulator uclass
	features for regulators on ROHM BD71837 and BD71847 PMICs.
	BD71837 contains 8 bucks and 7 LDOS. BD71847 is reduced version
	containing 6 bucks and 6 LDOs. The driver implements get/set api for
	value and enable.

config SPL_DM_REGULATOR_BD71837
	bool "Enable Driver Model for ROHM BD71837/BD71847 regulators in SPL"
	depends on DM_REGULATOR_BD71837 && SPL
	help
	This config enables implementation of driver-model regulator uclass
	features for regulators on ROHM BD71837 and BD71847 in SPL.

config DM_REGULATOR_PCA9450
	bool "Enable Driver Model for NXP PCA9450 regulators"
	depends on DM_REGULATOR && DM_PMIC_PCA9450
	help
	This config enables implementation of driver-model regulator uclass
	features for regulators on NXP PCA9450 PMICs. PCA9450 contains 6 bucks
	and 5 LDOS. The driver implements get/set api for value and enable.

config SPL_DM_REGULATOR_PCA9450
	bool "Enable Driver Model for NXP PCA9450 regulators in SPL"
	depends on DM_REGULATOR_PCA9450 && SPL
	help
	This config enables implementation of driver-model regulator uclass
	features for regulators on ROHM PCA9450 in SPL.

config DM_REGULATOR_DA9063
	bool "Enable Driver Model for REGULATOR DA9063"
	depends on DM_REGULATOR && DM_PMIC_DA9063
	help
	  This config enables implementation of driver-model regulator uclass
	  features for REGULATOR DA9063.
	  The driver implements get/set api for value, enable and mode for all
	  regulators. It also implements the get/set api for current for the
	  buck regulators.

config SPL_DM_REGULATOR_DA9063
	bool "Enable Driver Model for REGULATOR DA9063 in SPL"
	depends on DM_REGULATOR && DM_PMIC_DA9063  && SPL
	help
	  This config enables implementation of driver-model regulator uclass
	  features for REGULATOR DA9063.
	  The driver implements get/set api for value, enable and mode for all
	  regulators. It also implements the get/set api for current for the
	  buck regulators.

config DM_REGULATOR_PFUZE100
	bool "Enable Driver Model for REGULATOR PFUZE100"
	depends on DM_REGULATOR && DM_PMIC_PFUZE100
	---help---
	This config enables implementation of driver-model regulator uclass
	features for REGULATOR PFUZE100. The driver implements get/set api for:
	value, enable and mode.

config REGULATOR_PWM
	bool "Enable driver for PWM regulators"
	depends on DM_REGULATOR
	---help---
	Enable support for the PWM regulator functions which voltage are
	controlled by PWM duty ratio. Some of Rockchip board using this kind
	of regulator. The driver implements get/set api for the various BUCKS.
	This driver is controlled by a device tree node
	which includes voltage limits.

config SPL_REGULATOR_PWM
	bool "Enable Driver for PWM regulators in SPL"
	depends on REGULATOR_PWM && SPL
	help
	  This config enables implementation of driver-model regulator uclass
	  features for PWM regulators in SPL.

config DM_REGULATOR_MAX8907
	bool "Enable Driver Model for REGULATOR MAX8907"
	depends on DM_REGULATOR && DM_PMIC_MAX8907
	---help---
	This config enables implementation of driver-model regulator uclass
	features for REGULATOR MAX8907. The driver supports both DC-to-DC
	Step-Down (SD) Regulators and Low-Dropout Linear (LDO) Regulators
	found in MAX8907 PMIC and implements get/set api for value and enable.

config DM_REGULATOR_MAX77663
	bool "Enable Driver Model for REGULATOR MAX77663"
	depends on DM_REGULATOR && DM_PMIC_MAX77663
	---help---
	This config enables implementation of driver-model regulator uclass
	features for REGULATOR MAX77663. The driver supports both DC-to-DC
	Step-Down (SD) Regulators and Low-Dropout Linear (LDO) Regulators
	found in MAX77663 PMIC and implements get/set api for value and enable.

config DM_REGULATOR_MAX77686
	bool "Enable Driver Model for REGULATOR MAX77686"
	depends on DM_REGULATOR && DM_PMIC_MAX77686
	---help---
	This config enables implementation of driver-model regulator uclass
	features for REGULATOR MAX77686. The driver implements get/set api for:
	value, enable and mode.

config DM_REGULATOR_NPCM8XX
	bool "Enable Driver Model for NPCM8xx voltage supply"
	depends on DM_REGULATOR && ARCH_NPCM8XX
	help
	  Enable support for configuring voltage supply on NPCM8XX SoC. The
	  voltage supplies support two voltage levels and the driver implements
	  get/set api for setting the value.

config DM_REGULATOR_FAN53555
	bool "Enable Driver Model for REGULATOR FAN53555"
	depends on DM_PMIC_FAN53555
	help
	  This config enables implementation of driver-model regulator
	  uclass features for the FAN53555 regulator. The FAN53555 is
	  a (family of) single-output regulators that supports
	  transitioning between two different output voltages based on
	  an voltage selection pin.

	  The driver implements a get/set api for the voltage of the
	  'normal mode' voltage only. Switching to 'suspend mode'
	  (i.e. the alternate voltage), disabling output via software,
	  or switching the mode is not supported by this driver (at
	  this time).

config DM_REGULATOR_COMMON
	bool
	depends on DM_REGULATOR

config SPL_DM_REGULATOR_COMMON
	bool
	depends on DM_REGULATOR

config DM_REGULATOR_FIXED
	bool "Enable Driver Model for REGULATOR Fixed value"
	depends on DM_REGULATOR
	select DM_REGULATOR_COMMON
	---help---
	This config enables implementation of driver-model regulator uclass
	features for fixed value regulators. The driver implements get/set api
	for enable and get only for voltage value.

config SPL_DM_REGULATOR_FIXED
	bool "Enable Driver Model for REGULATOR Fixed value in SPL"
	depends on DM_REGULATOR_FIXED && SPL
	select SPL_DM_REGULATOR_COMMON
	---help---
	This config enables implementation of driver-model regulator uclass
	features for fixed value regulators in SPL.

config DM_REGULATOR_GPIO
	bool "Enable Driver Model for GPIO REGULATOR"
	depends on DM_REGULATOR && DM_GPIO
	select DM_REGULATOR_COMMON
	---help---
	This config enables implementation of driver-model regulator uclass
	features for gpio regulators. The driver implements get/set for
	voltage value.

config DM_REGULATOR_QCOM_RPMH
	bool "Enable driver model for Qualcomm RPMh regulator"
	depends on DM_REGULATOR && QCOM_RPMH
	---help---
	  Enable support for the Qualcomm RPMh regulator. The driver
	  implements get/set api for a limited set of regulators used
	  by u-boot.

config DM_REGULATOR_QCOM_USB_VBUS
	bool "Enable driver model for Qualcomm USB vbus regulator"
	depends on DM_REGULATOR
	---help---
	  Enable support for the Qualcomm USB Vbus regulator. The driver
	  implements get/set api for the regulator to be used by u-boot.

config SPL_DM_REGULATOR_GPIO
	bool "Enable Driver Model for GPIO REGULATOR in SPL"
	depends on DM_REGULATOR_GPIO && SPL_GPIO
	select SPL_DM_REGULATOR_COMMON
	---help---
	This config enables implementation of driver-model regulator uclass
	features for gpio regulators in SPL.

config REGULATOR_RK8XX
	bool "Enable driver for RK8XX regulators"
	depends on DM_REGULATOR && PMIC_RK8XX
	---help---
	Enable support for the regulator functions of the RK8XX PMIC. The
	driver implements get/set api for the various BUCKS and LDOs supported
	by the PMIC device. This driver is controlled by a device tree node
	which includes voltage limits.

config SPL_REGULATOR_RK8XX
	bool "Enable driver for RK8XX regulators in SPL"
	depends on SPL_DM_REGULATOR && SPL_PMIC_RK8XX
	help
	  Enable support for the regulator functions of the RK8XX PMIC in SPL. The
	  driver implements get/set api for the various BUCKS and LDOs supported
	  by the PMIC device. This driver is controlled by a device tree node
	  which includes voltage limits.

config DM_REGULATOR_S2MPS11
	bool "Enable driver for S2MPS11 regulator"
	depends on DM_REGULATOR && PMIC_S2MPS11
	---help---
	This enables implementation of driver-model regulator uclass
	features for REGULATOR S2MPS11.
	The driver implements get/set api for: value and enable.

config REGULATOR_S5M8767
	bool "Enable support for S5M8767 regulator"
	depends on DM_REGULATOR && PMIC_S5M8767
	---help---
	This enables the regulator features of the S5M8767, allowing voltages
	to be set, etc. The driver is not fully complete but supports most
	common requirements, including all LDOs and BUCKs. This allows many
	supplies to be set automatically using the device tree values.

config DM_REGULATOR_SANDBOX
	bool "Enable Driver Model for Sandbox PMIC regulator"
	depends on DM_REGULATOR && DM_PMIC_SANDBOX
	---help---
	Enable the regulator driver for emulated Sandbox PMIC.
	The emulated PMIC device depends on two drivers:
	- sandbox PMIC I/O driver - implements dm pmic operations
	- sandbox PMIC regulator driver - implements dm regulator operations
	- sandbox PMIC i2c emul driver - emulates the PMIC's I2C transmission

	The regulator driver provides uclass operations for sandbox PMIC's
	regulators. The driver implements get/set api for: voltage, current,
	operation mode and enable state.
	The driver supports LDO and BUCK regulators.

	The Sandbox PMIC info:
	* I/O interface:
	  - I2C chip address:       0x40
	  - first register address: 0x0
	  - register count:         0x10
	* Adjustable outputs:
	  - 2x LDO
	  - 2x BUCK
	  - Each, with a different operating conditions (header).
	* Reset values:
	  - set by i2c emul driver's probe() (defaults in header)

	A detailed information can be found in header: '<power/sandbox_pmic.h>'
	Binding info: 'doc/device-tree-bindings/pmic/max77686.txt'

config REGULATOR_TPS65090
	bool "Enable driver for TPS65090 PMIC regulators"
	depends on PMIC_TPS65090
	---help---
	The TPS65090 provides several FETs (Field-effect Transistors,
	effectively switches) which are supported by this driver as
	regulators, one for each FET. The standard regulator interface is
	supported, but it is only possible to turn the regulators on or off.
	There is no voltage/current control.

config DM_REGULATOR_PALMAS
	bool "Enable driver for PALMAS PMIC regulators"
       depends on PMIC_PALMAS
	---help---
	This enables implementation of driver-model regulator uclass
	features for REGULATOR PALMAS and the family of PALMAS PMICs.
	The driver implements get/set api for: value and enable.

config DM_REGULATOR_PBIAS
	bool "Enable driver for PBIAS regulator"
	depends on DM_REGULATOR
	select REGMAP
	select SYSCON
	---help---
	This enables implementation of driver-model regulator uclass
	features for pseudo-regulator PBIAS found in the OMAP SOCs.
	This pseudo-regulator is used to provide a BIAS voltage to MMC1
	signal pads and must be configured properly during a voltage switch.
	Voltage switching is required by some operating modes of SDcards and
	eMMC.

config DM_REGULATOR_LP873X
	bool "Enable driver for LP873X PMIC regulators"
        depends on PMIC_LP873X
	---help---
	This enables implementation of driver-model regulator uclass
	features for REGULATOR LP873X and the family of LP873X PMICs.
	The driver implements get/set api for: value and enable.

config DM_REGULATOR_LP87565
	bool "Enable driver for LP87565 PMIC regulators"
        depends on PMIC_LP87565
	---help---
	This enables implementation of driver-model regulator uclass
	features for REGULATOR LP87565 and the family of LP87565 PMICs.
	LP87565 series of PMICs have 4 single phase BUCKs that can also
	be configured in multi phase modes. The driver implements
	get/set api for value and enable.

config DM_REGULATOR_STM32_VREFBUF
	bool "Enable driver for STMicroelectronics STM32 VREFBUF"
	depends on DM_REGULATOR && (STM32H7 || ARCH_STM32MP)
	help
	This driver supports STMicroelectronics STM32 VREFBUF (voltage
	reference buffer) which can be used as voltage reference for
	internal ADCs, DACs and also for external components through
	dedicated Vref+ pin.

config DM_REGULATOR_TPS65910
	bool "Enable driver for TPS65910 PMIC regulators"
	depends on DM_PMIC_TPS65910
	---help---
	The TPS65910 PMIC provides 4 SMPSs and 8 LDOs. This driver supports all
	regulator types of the TPS65910 (BUCK, BOOST and LDO). It implements
	the get/set api for value and enable.

config DM_REGULATOR_TPS65911
	bool "Enable driver for TPS65911 PMIC regulators"
	depends on DM_PMIC_TPS65910
	---help---
	This config enables implementation of driver-model regulator
	uclass features for the TPS65911 PMIC. The driver supports Step-Down
	DC-DC Converters for Processor Cores (VDD1 and VDD2), Step-Down DC-DC
	Converter for I/O Power (VIO), Controller for External FETs (VDDCtrl)
	and LDO Voltage Regulators found in TPS65911 PMIC and implements
	get/set api for value and enable.

config DM_REGULATOR_TPS62360
	bool "Enable driver for TPS6236x Power Regulator"
	depends on DM_REGULATOR
	help
	The TPS6236X DC/DC step down converter provides a single output
	power line peaking at 3A current. This driver supports all four
	variants of the chip (TPS62360, TPS62361, TPS62362, TPS62363). It
	implements the get/set api for value only, as the power line is
	always on.

config DM_REGULATOR_TPS80031
	bool "Enable driver for TPS80031/TPS80032 PMIC regulators"
	depends on DM_PMIC_TPS80031
	---help---
	This enables implementation of driver-model regulator uclass
	features for TPS80031/TPS80032 PMICs. The driver implements
	get/set api for: value and enable.

config DM_REGULATOR_TPS6287X
	bool "Enable driver for TPS6287x Power Regulator"
	depends on DM_REGULATOR
	help
	The TPS6287X is a step down converter with a fast transient
	response. This driver supports all four variants of the chip
	(TPS62870, TPS62871, TPS62872, TPS62873). It implements the
	get/set api for value only, as the power line is always on.

config DM_REGULATOR_STPMIC1
	bool "Enable driver for STPMIC1 regulators"
	depends on DM_REGULATOR && PMIC_STPMIC1
	---help---
	Enable support for the regulator functions of the STPMIC1 PMIC. The
	driver implements get/set api for the various BUCKS and LDOs supported
	by the PMIC device. This driver is controlled by a device tree node
	which includes voltage limits.

config DM_REGULATOR_ANATOP
	bool "Enable driver for ANATOP regulators"
	depends on DM_REGULATOR
	select REGMAP
	select SYSCON
	help
	Enable support for the Freescale i.MX on-chip ANATOP LDO
	regulators. It is recommended that this option be enabled on
	i.MX6 platform.

config SPL_DM_REGULATOR_TPS6287X
	bool "Enable driver for TPS6287x Power Regulator"
	depends on SPL_DM_REGULATOR
	help
	The TPS6287X is a step down converter with a fast transient
	response. This driver supports all four variants of the chip
	(TPS62870, TPS62871, TPS62872, TPS62873). It implements the
	get/set api for value only, as the power line is always on.

config SPL_DM_REGULATOR_STPMIC1
	bool "Enable driver for STPMIC1 regulators in SPL"
	depends on SPL_DM_REGULATOR && PMIC_STPMIC1
	help
	  Enable support for the regulator functions of the STPMIC1 PMIC in SPL.

config SPL_DM_REGULATOR_PALMAS
	bool "Enable driver for PALMAS PMIC regulators"
	depends on SPL_PMIC_PALMAS
	help
	This enables implementation of driver-model regulator uclass
	features for REGULATOR PALMAS and the family of PALMAS PMICs.
	The driver implements get/set api for: value and enable in SPL.

config SPL_DM_REGULATOR_LP87565
	bool "Enable driver for LP87565 PMIC regulators"
	depends on SPL_PMIC_LP87565
	help
	This enables implementation of driver-model regulator uclass
	features for REGULATOR LP87565 and the family of LP87565 PMICs.
	LP87565 series of PMICs have 4 single phase BUCKs that can also
	be configured in multi phase modes. The driver implements
	get/set api for value and enable in SPL.

config SPL_DM_REGULATOR_LP873X
	bool "Enable driver for LP873X PMIC regulators"
	depends on SPL_PMIC_LP873X
	help
	This enables implementation of driver-model regulator uclass
	features for REGULATOR LP873X and the family of LP873X PMICs.
	The driver implements get/set api for: value and enable in SPL.

config DM_REGULATOR_TPS65941
	bool "Enable driver for TPS65941 PMIC regulators"
        depends on PMIC_TPS65941
	help
	This enables implementation of driver-model regulator uclass
	features for REGULATOR TPS65941 and the family of TPS65941 PMICs.
	TPS65941 series of PMICs have 5 single phase BUCKs that can also
	be configured in multi phase modes & 4 LDOs. The driver implements
	get/set api for value and enable.

config DM_REGULATOR_SCMI
	bool "Enable driver for SCMI voltage domain regulators"
	depends on DM_REGULATOR
	select SCMI_AGENT
        help
          Enable this option if you want to support regulators exposed through
	  the SCMI voltage domain protocol by a SCMI server.

config DM_REGULATOR_TPS65219
	bool "Enable driver for TPS65219 PMIC regulators"
        depends on PMIC_TPS65219
	help
	This enables implementation of driver-model regulator uclass
	features for REGULATOR TPS65219 and the family of TPS65219 PMICs.
	TPS65219 series of PMICs have 3 single phase BUCKs & 4 LDOs.
	The driver implements get/set api for value and enable.

config REGULATOR_RZG2L_USBPHY
	bool "Enable driver for RZ/G2L USB PHY VBUS supply"
	depends on DM_REGULATOR
	help
	  Enable this option to support controlling the VBUS supply in
	  the USB PHY peripheral of the Renesas RZ/G2L SoC. This option
	  is required in order to use the USB OTG port.

config DM_REGULATOR_CPCAP
	bool "Enable driver for CPCAP PMIC regulators"
	depends on DM_REGULATOR && DM_PMIC_CPCAP
	---help---
	Enable implementation of driver-model regulator uclass features for
	REGULATOR CPCAP. The driver supports both DC-to-DC Step-Down Switching
	(SW) Regulators and Low-Dropout Linear (LDO) Regulators	found in CPCAP
	PMIC and implements get/set api for voltage and state.
