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'

if DM_PMIC

config SPL_DM_PMIC
	bool "Enable Driver Model for PMIC drivers (UCLASS_PMIC) in SPL"
	depends on SPL_DM
	default y
	---help---
	This config enables the driver-model PMIC support in SPL.
	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"
	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 SPL_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_AB8500
	bool "Enable driver for ST-Ericsson AB8500 PMIC via PRCMU"
	select REGMAP
	select SYSCON
	help
	  Enable support for the ST-Ericsson AB8500 (Analog Baseband) PMIC.
	  It connects with the ST-Ericsson DB8500 SoC via an I2C bus managed by
	  the power/reset/clock management unit (PRCMU) firmware.

config PMIC_ACT8846
	bool "Enable support for the active-semi 8846 PMIC"
	depends on 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_AXP
	bool "Enable Driver Model for X-Powers AXP PMICs"
	depends on DM_I2C
	select SYSRESET_CMD_POWEROFF if SYSRESET && CMD_POWEROFF
	imply CMD_POWEROFF if SYSRESET
	help
	  This config enables driver-model PMIC uclass features for
	  X-Powers AXP152, AXP2xx, and AXP8xx PMICs.

config SPL_PMIC_AXP
	bool "Enable Driver Model for X-Powers AXP PMICs in SPL"
	depends on SPL_DM_I2C && SPL_DM_PMIC
	help
	  This config enables driver-model PMIC uclass features in the SPL for
	  X-Powers AXP152, AXP2xx, and AXP8xx PMICs.

config DM_PMIC_DA9063
	bool "Enable Driver Model for the Dialog DA9063 PMIC"
	help
	  This config enables implementation of driver-model pmic uclass features
	  for PMIC DA9063. The driver implements read/write operations.

config SPL_DM_PMIC_DA9063
	bool "Enable Driver Model for the Dialog DA9063 PMIC in SPL"
	depends on SPL_DM_PMIC
	help
	  This config enables implementation of driver-model pmic uclass features
	  for PMIC DA9063. The driver implements read/write operations.

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_BD71837
 	bool "Enable Driver Model for PMIC BD71837"
 	help
	  This config enables implementation of driver-model pmic uclass features
	  for PMIC BD71837. The driver implements read/write operations.

config SPL_DM_PMIC_BD71837
	bool "Enable Driver Model for PMIC BD71837 in SPL stage"
	depends on SPL_DM_PMIC
	help
	  This config enables implementation of driver-model pmic uclass
	  features for PMIC BD71837. The driver implements read/write
	  operations.

config DM_PMIC_FAN53555
	bool "Enable support for OnSemi FAN53555"
	depends on DM_REGULATOR && DM_I2C
	select DM_REGULATOR_FAN53555
	help
	  This config enables implementation of driver-model PMIC
	  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 read/write operations for use with the FAN53555
	  regulator driver and binds the regulator driver to its node.

config SPL_DM_PMIC_FAN53555
	bool "Enable support for OnSemi FAN53555 in SPL"
	depends on SPL_DM_REGULATOR && SPL_DM_I2C
	select SPL_DM_REGULATOR_FAN53555
	help
	  This config enables implementation of driver-model PMIC
	  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 read/write operations for use with the FAN53555
	  regulator driver and binds the regulator driver to its node.

config DM_PMIC_MP5416
	bool "Enable Driver Model for PMIC MP5416"
	help
	  This config enables implementation of driver-model pmic uclass features
	  for PMIC MP5416. The driver implements read/write operations.

config SPL_DM_PMIC_MP5416
	bool "Enable Driver Model for PMIC MP5416 in SPL stage"
	depends on SPL_DM_PMIC
	help
	  This config enables implementation of driver-model pmic uclass
	  features for PMIC MP5416. The driver implements read/write
	  operations.

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

config SPL_DM_PMIC_PCA9450
	bool "Enable Driver Model for PMIC PCA9450 in SPL"
	depends on SPL_DM_PMIC
	depends on SPL_DM_I2C
	help
	  This config enables implementation of driver-model pmic uclass features
	  for PMIC PCA9450 in SPL. The driver implements read/write operations.

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

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

config DM_PMIC_MAX8907
	bool "Enable Driver Model for PMIC MAX8907"
	---help---
	This config enables implementation of driver-model pmic uclass features
	for PMIC MAX8907. The driver implements read/write operations.
	This is a Power Management IC with a decent set of peripherals from which
	3 DC-to-DC Step-Down (SD) Regulators, 20 Low-Dropout Linear (LDO) Regulators,
	Real-Time Clock (RTC) and more with I2C Compatible Interface.

config DM_PMIC_MAX77663
	bool "Enable Driver Model for PMIC MAX77663"
	---help---
	This config enables implementation of driver-model pmic uclass features
	for PMIC MAX77663. The driver implements read/write operations.
	This is a Power Management IC with a decent set of peripherals from which
	4 DC-to-DC Step-Down (SD) Regulators, 9 Low-Dropout Linear (LDO) Regulators,
	8 GPIOs, Real-Time Clock (RTC) and more with I2C Compatible Interface.

config DM_PMIC_MAX77686
	bool "Enable Driver Model for PMIC MAX77686"
	---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"
	---help---
	This config enables implementation of driver-model pmic uclass features
	for PMIC MAX8998. The driver implements read/write operations.

config DM_PMIC_MC34708
	bool "Enable Driver Model for PMIC MC34708"
	help
	 This config enables implementation of driver-model pmic uclass features
	 for PMIC MC34708. The driver implements read/write operations.

config PMIC_MAX8997
	bool "Enable Driver Model for PMIC MAX8997"
	---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
	- Fuel Gauge and one backup battery charger
	- MUIC
	- Others

config PMIC_QCOM
	bool "Enable Driver Model for Qualcomm generic PMIC"
	---help---
	The Qcom PMIC is 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/qcom,spmi-pmic.txt

config PMIC_RK8XX
	bool "Enable support for Rockchip PMIC RK8XX"
	select SYSRESET_CMD_POWEROFF if SYSRESET && CMD_POWEROFF
	---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 SPL_PMIC_RK8XX
	bool "Enable support for Rockchip PMIC RK8XX in SPL"
	depends on SPL_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"
	---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"
	---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 DM_PMIC_CPCAP
	bool "Enable Driver Model for Motorola CPCAP"
	help
	The CPCAP is a Motorola/ST-Ericsson creation, a multifunctional IC
	whose main purpose is power control. It was used in a wide variety of
	Motorola products, both Tegra and OMAP based. The most notable devices
	using this PMIC are the Motorola Droid 4, Atrix 4G, and Droid X2.
	Unlike most PMICs, this one is not I2C based; it uses the SPI bus. The
	core driver provides both read and write access to the device registers.

config PMIC_S5M8767
	bool "Enable Driver Model for the Samsung S5M8767 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"
	---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 SPL_PMIC_RN5T567
	bool "Enable driver for Ricoh RN5T567 PMIC in SPL"
	depends on SPL_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"
	---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"
	---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"
	---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"
	---help---
	The LP87565 is a PMIC containing a bunch of SMPS.
	This driver binds the pmic children.

config DM_PMIC_TPS65910
	bool "Enable driver for Texas Instruments TPS65910 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 DM_PMIC_TPS80031
	bool "Enable driver for Texas Instruments TPS80031/TPS80032 PMIC"
	---help---
	This config enables implementation of driver-model pmic uclass features
	for TPS80031/TPS80032 PMICs. The driver implements read/write operations.
	This is a Power Management IC with a decent set of peripherals from which
	5 Buck Converters refered as Switched-mode power supply (SMPS), 11 General-
	Purpose Low-Dropout Voltage Regulators (LDO), USB OTG Module, Real-Time
	Clock (RTC) with Timer and Alarm Wake-Up, Two Digital PWM Outputs and more
	with I2C Compatible Interface. PMIC occupies 4 I2C addresses.

config PMIC_STPMIC1
	bool "Enable support for STMicroelectronics STPMIC1 PMIC"
	depends on DM_I2C
	select SYSRESET_CMD_POWEROFF if CMD_POWEROFF && !ARM_PSCI_FW
	---help---
	The STPMIC1 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.

config SPL_PMIC_PALMAS
	bool "Enable driver for Texas Instruments PALMAS PMIC"
	depends on SPL_DM_PMIC
	help
	The PALMAS is a PMIC containing several LDOs, SMPS.
	This driver binds the pmic children in SPL.

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

config SPL_PMIC_LP87565
	bool "Enable driver for Texas Instruments LP87565 PMIC"
	depends on SPL_DM_PMIC
	help
	The LP87565 is a PMIC containing a bunch of SMPS.
	This driver binds the pmic children in SPL.

config PMIC_TPS65941
	bool "Enable driver for Texas Instruments TPS65941 PMIC"
	depends on DM_PMIC
	help
	The TPS65941 is a PMIC containing a bunch of SMPS & LDOs.
	This driver binds the pmic children.

config PMIC_TPS65219
	bool "Enable driver for Texas Instruments TPS65219 PMIC"
	depends on DM_PMIC
	help
	The TPS65219 is a PMIC containing a bunch of SMPS & LDOs.
	This driver binds the pmic children.

config PMIC_RAA215300
	bool "Renesas RAA215300 PMIC driver"
	depends on DM_PMIC
	help
	  The Renesas RAA215300 PMIC driver includes RTC support, system reset
	  support and several voltage regulators. For now, this driver simply
	  allows register access and will bind the sysreset driver
	  (CONFIG_SYSRESET_RAA215300) if it is enabled.
endif

config PMIC_TPS65217
	bool "Enable driver for Texas Instruments TPS65217 PMIC"
	---help---
	The TPS65217 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 POWER_TPS65218
	bool "Enable legacy driver for TPS65218 PMIC"

config POWER_TPS62362
	bool "Enable legacy driver for TPS62362 PMIC"

config SPL_POWER_TPS62362
	bool "Enable legacy driver for TPS62362 PMIC in SPL"
	default y if POWER_TPS62362
	depends on SPL

config SPL_POWER_TPS65910
	bool "Enable legacy driver for TPS65910 PMIC in SPL"
	depends on SPL

if POWER_LEGACY || SPL_POWER_LEGACY

config POWER_HI6553
	bool "Enable legacy driver for HI6553 PMIC"

config POWER_LTC3676
	bool "Enable legacy driver for LTC3676 PMIC"

config POWER_PCA9450
	bool "Enable legacy driver for PCA9450 PMIC"

config POWER_PFUZE100
	bool "Enable legacy driver for PFUZE100 PMIC"

config POWER_PFUZE3000
	bool "Enable legacy driver for PFUZE3000 PMIC"

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.

endif
