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