config DM_PMIC
	bool "Enable Driver Model for PMIC drivers (UCLASS_PMIC)"
	depends on DM
	---help---
	This config enables the driver-model PMIC support.
	UCLASS_PMIC - designed to provide an I/O interface for PMIC devices.
	For the multi-function PMIC devices, this can be used as parent I/O
	device for each IC's interface. Then, each children uses its parent
	for read/write. For detailed description, please refer to the files:
	- 'drivers/power/pmic/pmic-uclass.c'
	- 'include/power/pmic.h'

config PMIC_CHILDREN
	bool "Allow child devices for PMICs"
	depends on DM_PMIC
	default y
	---help---
	This allows PMICs to support child devices (such as regulators) in
	SPL. This adds quite a bit of code so if you are not using this
	feature you can turn it off. Most likely you should turn it on for
	U-Boot proper.

config SPL_PMIC_CHILDREN
	bool "Allow child devices for PMICs in SPL"
	depends on DM_PMIC
	default y
	---help---
	This allows PMICs to support child devices (such as regulators) in
	SPL. This adds quite a bit of code so if you are not using this
	feature you can turn it off. In this case you may need a 'back door'
	to call your regulator code (e.g. see rk8xx.c for direct functions
	for use in SPL).

config PMIC_ACT8846
	bool "Enable support for the active-semi 8846 PMIC"
	depends on DM_PMIC && DM_I2C
	---help---
	This PMIC includes 4 DC/DC step-down buck regulators and 8 low-dropout
	regulators (LDOs). It also provides some GPIO, reset and battery
	functions. It uses an I2C interface and is designed for use with
	tablets and smartphones.

config PMIC_AS3722
	bool "Enable support for the Austria Micro Systems (AMS) AS7322 PMIC"
	help
	  The AS3722 includes 7 DC/DC buck convertors, 11 low-noise LDOs, a
	  real-time clock, GPIOs, ADC and a few other features. It uses an I2C
	  interface and is designs to cover most of the power managementment
	  required for a tablets or laptop.

config DM_PMIC_PFUZE100
	bool "Enable Driver Model for PMIC PFUZE100"
	depends on DM_PMIC
	---help---
	This config enables implementation of driver-model pmic uclass features
	for PMIC PFUZE100. The driver implements read/write operations.

config DM_PMIC_MAX77686
	bool "Enable Driver Model for PMIC MAX77686"
	depends on DM_PMIC
	---help---
	This config enables implementation of driver-model pmic uclass features
	for PMIC MAX77686. The driver implements read/write operations.

config DM_PMIC_MAX8998
	bool "Enable Driver Model for PMIC MAX8998"
	depends on DM_PMIC
	---help---
	This config enables implementation of driver-model pmic uclass features
	for PMIC MAX8998. The driver implements read/write operations.

config PMIC_MAX8997
	bool "Enable Driver Model for PMIC MAX8997"
	depends on DM_PMIC
	---help---
	This config enables implementation of driver-model pmic uclass features
	for PMIC MAX8997. The driver implements read/write operations.
	This is a Power Management IC with RTC, Fuel Gauge, MUIC control on Chip.
	- 21x LDOs
	- 12x GPIOs
	- Haptic Motor driver
	- RTC with two alarms
	- Fueal Gauge and One backup battery charger
	- MUIC
	- Others

config PMIC_PM8916
	bool "Enable Driver Model for Qualcomm PM8916 PMIC"
	depends on DM_PMIC
	---help---
	The PM8916 is a PMIC connected to one (or several) processors
	with SPMI bus. It has 2 slaves with several peripherals:
	- 18x LDO
	- 4x GPIO
	- Power and Reset buttons
	- Watchdog
	- RTC
	- Vibrator drivers
	- Others

	Driver binding info: doc/device-tree-bindings/pmic/pm8916.txt

config PMIC_RK8XX
	bool "Enable support for Rockchip PMIC RK8XX"
	depends on DM_PMIC
	---help---
	The Rockchip RK808 PMIC provides four buck DC-DC convertors, 8 LDOs,
	an RTC and two low Rds (resistance (drain to source)) switches. It is
	accessed via an I2C interface. The device is used with Rockchip SoCs.
	This driver implements register read/write operations.

config PMIC_S2MPS11
	bool "Enable Driver Model for PMIC Samsung S2MPS11"
	depends on DM_PMIC
	---help---
	The Samsung S2MPS11 PMIC provides:
	 - 38 adjustable LDO regulators
	 - 9 High-Efficiency Buck Converters
	 - 1 BuckBoost Converter
	 - RTC with two alarms
	 - Backup battery charger
	 - I2C Configuration Interface
	This driver provides access to I/O interface only.
	Binding info: doc/device-tree-bindings/pmic/s2mps11.txt

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

	A detailed information can be found in header: '<power/sandbox_pmic.h>'

	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)

	Driver binding info: doc/device-tree-bindings/pmic/sandbox.txt

config PMIC_S5M8767
	bool "Enable Driver Model for the Samsung S5M8767 PMIC"
	depends on DM_PMIC
	---help---
	The S5M8767 PMIC provides a large array of LDOs and BUCKs for use
	as a SoC power controller. It also provides 32KHz clock outputs. This
	driver provides basic register access and sets up the attached
	regulators if regulator support is enabled.

config PMIC_RN5T567
	bool "Enable driver for Ricoh RN5T567 PMIC"
	depends on DM_PMIC
	---help---
	The RN5T567 is a PMIC with 4 step-down DC/DC converters, 5 LDO
	regulators Real-Time Clock and 4 GPIOs. This driver provides
	register access only.

config PMIC_TPS65090
	bool "Enable driver for Texas Instruments TPS65090 PMIC"
	depends on DM_PMIC
	---help---
	The TPS65090 is a PMIC containing several LDOs, DC to DC convertors,
	FETs and a battery charger. This driver provides register access
	only, and you can enable the regulator/charger drivers separately if
	required.

config PMIC_PALMAS
	bool "Enable driver for Texas Instruments PALMAS PMIC"
	depends on DM_PMIC
	---help---
	The PALMAS is a PMIC containing several LDOs, SMPS.
	This driver binds the pmic children.

config PMIC_LP873X
	bool "Enable driver for Texas Instruments LP873X PMIC"
	depends on DM_PMIC
	---help---
	The LP873X is a PMIC containing couple of LDOs and couple of SMPS.
	This driver binds the pmic children.

config PMIC_LP87565
	bool "Enable driver for Texas Instruments LP87565 PMIC"
	depends on DM_PMIC
	---help---
	The LP87565 is a PMIC containing a bunch of SMPS.
	This driver binds the pmic children.

config POWER_MC34VR500
	bool "Enable driver for Freescale MC34VR500 PMIC"
	---help---
	The MC34VR500 is used in conjunction with the FSL T1 and LS1 series
	SoC. It provides 4 buck DC-DC convertors and 5 LDOs, and it is accessed
	via an I2C interface.

config DM_PMIC_TPS65910
	bool "Enable driver for Texas Instruments TPS65910 PMIC"
	depends on DM_PMIC
	---help---
	The TPS65910 is a PMIC containing 3 buck DC-DC converters, one boost
	DC-DC converter, 8 LDOs and a RTC. This driver binds the SMPS and LDO
	pmic children.

config PMIC_STPMU1
	bool "Enable support for STMicroelectronics STPMU1 PMIC"
	depends on DM_PMIC && DM_I2C
	---help---
	The STPMU1 PMIC provides 4 BUCKs, 6 LDOs, 1 VREF and 2 power switches.
	It is accessed via an I2C interface. The device is used with STM32MP1
	SoCs. This driver implements register read/write operations.
