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_node()
	otherwise. Detailed information can be found in the header file.

config SPL_DM_REGULATOR
	bool "Enable regulators for SPL"
	depends on DM_REGULATOR
	---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 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 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_FIXED
	bool "Enable Driver Model for REGULATOR Fixed value"
	depends on DM_REGULATOR
	---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 REGULATOR_RK808
	bool "Enable driver for RK808 regulators"
	depends on DM_REGULATOR && PMIC_RK808
	---help---
	Enable support for the regulator functions of the RK808 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_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.
