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_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_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 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 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_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_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_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.
