menuconfig REGULATOR
	bool "Voltage and Current Regulator Support"
	help
	  Generic Voltage and Current Regulator support.

	  This framework is designed to provide a generic interface to voltage
	  and current regulators within the Linux kernel. It's intended to
	  provide voltage and current control to client or consumer drivers and
	  also provide status information to user space applications through a
	  sysfs interface.

	  The intention is to allow systems to dynamically control regulator
	  output in order to save power and prolong battery life. This applies
	  to both voltage regulators (where voltage output is controllable) and
	  current sinks (where current output is controllable).

	  This framework safely compiles out if not selected so that client
	  drivers can still be used in systems with no software controllable
	  regulators.

	  If unsure, say no.


if REGULATOR

config REGULATOR_DEBUG
	bool "Regulator debug support"
	help
	  Say yes here to enable debugging support.

config REGULATOR_DUMMY
	bool "Provide a dummy regulator if regulator lookups fail"
	help
	  If this option is enabled then when a regulator lookup fails
	  and the board has not specified that it has provided full
	  constraints the regulator core will provide an always
	  enabled dummy regulator, allowing consumer drivers to continue.

	  A warning will be generated when this substitution is done.

config REGULATOR_FIXED_VOLTAGE
	tristate "Fixed voltage regulator support"
	help
	  This driver provides support for fixed voltage regulators,
	  useful for systems which use a combination of software
	  managed regulators and simple non-configurable regulators.

config REGULATOR_VIRTUAL_CONSUMER
	tristate "Virtual regulator consumer support"
	help
	  This driver provides a virtual consumer for the voltage and
	  current regulator API which provides sysfs controls for
	  configuring the supplies requested.  This is mainly useful
	  for test purposes.

	  If unsure, say no.

config REGULATOR_USERSPACE_CONSUMER
	tristate "Userspace regulator consumer support"
	help
	  There are some classes of devices that are controlled entirely
	  from user space. Userspace consumer driver provides ability to
	  control power supplies for such devices.

	  If unsure, say no.

config REGULATOR_GPIO
	tristate "GPIO regulator support"
	depends on GENERIC_GPIO
	help
	  This driver provides support for regulators that can be
	  controlled via gpios.
	  It is capable of supporting current and voltage regulators
	  and the platform has to provide a mapping of GPIO-states
	  to target volts/amps.

config REGULATOR_AD5398
	tristate "Analog Devices AD5398/AD5821 regulators"
	depends on I2C
	help
	  This driver supports AD5398 and AD5821 current regulator chips.
	  If building into module, its name is ad5398.ko.

config REGULATOR_AAT2870
	tristate "AnalogicTech AAT2870 Regulators"
	depends on MFD_AAT2870_CORE
	help
	  If you have a AnalogicTech AAT2870 say Y to enable the
	  regulator driver.

config REGULATOR_ARIZONA
	tristate "Wolfson Arizona class devices"
	depends on MFD_ARIZONA
	help
	  Support for the regulators found on Wolfson Arizona class
	  devices.

config REGULATOR_DA903X
	tristate "Dialog Semiconductor DA9030/DA9034 regulators"
	depends on PMIC_DA903X
	help
	  Say y here to support the BUCKs and LDOs regulators found on
	  Dialog Semiconductor DA9030/DA9034 PMIC.

config REGULATOR_DA9052
	tristate "Dialog Semiconductor DA9052/DA9053 regulators"
	depends on PMIC_DA9052
	help
	  This driver supports the voltage regulators of DA9052-BC and
	  DA9053-AA/Bx PMIC.

config REGULATOR_DA9055
	tristate "Dialog Semiconductor DA9055 regulators"
	depends on MFD_DA9055
	help
	  Say y here to support the BUCKs and LDOs regulators found on
	  Dialog Semiconductor DA9055 PMIC.

	  This driver can also be built as a module. If so, the module
	  will be called da9055-regulator.

config REGULATOR_FAN53555
	tristate "Fairchild FAN53555 Regulator"
	depends on I2C
	select REGMAP_I2C
	help
	  This driver supports Fairchild FAN53555 Digitally Programmable
	  TinyBuck Regulator. The FAN53555 is a step-down switching voltage
	  regulator that delivers a digitally programmable output from an
	  input voltage supply of 2.5V to 5.5V. The output voltage is
	  programmed through an I2C interface.

config REGULATOR_ANATOP
	tristate "Freescale i.MX on-chip ANATOP LDO regulators"
	depends on MFD_SYSCON
	help
	  Say y here to support Freescale i.MX on-chip ANATOP LDOs
	  regulators. It is recommended that this option be
	  enabled on i.MX6 platform.

config REGULATOR_MC13XXX_CORE
	tristate

config REGULATOR_MC13783
	tristate "Freescale MC13783 regulator driver"
	depends on MFD_MC13783
	select REGULATOR_MC13XXX_CORE
	help
	  Say y here to support the regulators found on the Freescale MC13783
	  PMIC.

config REGULATOR_MC13892
	tristate "Freescale MC13892 regulator driver"
	depends on MFD_MC13XXX
	select REGULATOR_MC13XXX_CORE
	help
	  Say y here to support the regulators found on the Freescale MC13892
	  PMIC.

config REGULATOR_ISL6271A
	tristate "Intersil ISL6271A Power regulator"
	depends on I2C
	help
	  This driver supports ISL6271A voltage regulator chip.

config REGULATOR_88PM8607
	bool "Marvell 88PM8607 Power regulators"
	depends on MFD_88PM860X=y
	help
	  This driver supports 88PM8607 voltage regulator chips.

config REGULATOR_MAX1586
	tristate "Maxim 1586/1587 voltage regulator"
	depends on I2C
	help
	  This driver controls a Maxim 1586 or 1587 voltage output
	  regulator via I2C bus. The provided regulator is suitable
	  for PXA27x chips to control VCC_CORE and VCC_USIM voltages.

config REGULATOR_MAX8649
	tristate "Maxim 8649 voltage regulator"
	depends on I2C
	select REGMAP_I2C
	help
	  This driver controls a Maxim 8649 voltage output regulator via
	  I2C bus.

config REGULATOR_MAX8660
	tristate "Maxim 8660/8661 voltage regulator"
	depends on I2C
	help
	  This driver controls a Maxim 8660/8661 voltage output
	  regulator via I2C bus.

config REGULATOR_MAX8907
	tristate "Maxim 8907 voltage regulator"
	depends on MFD_MAX8907
	help
	  This driver controls a Maxim 8907 voltage output regulator
	  via I2C bus. The provided regulator is suitable for Tegra
	  chip to control Step-Down DC-DC and LDOs.

config REGULATOR_MAX8925
	tristate "Maxim MAX8925 Power Management IC"
	depends on MFD_MAX8925
	help
	  Say y here to support the voltage regulaltor of Maxim MAX8925 PMIC.

config REGULATOR_MAX8952
	tristate "Maxim MAX8952 Power Management IC"
	depends on I2C
	help
	  This driver controls a Maxim 8952 voltage output regulator
	  via I2C bus. Maxim 8952 has one voltage output and supports 4 DVS
	  modes ranging from 0.77V to 1.40V by 0.01V steps.

config REGULATOR_MAX8973
	tristate "Maxim MAX8973 voltage regulator "
	depends on I2C
	select REGMAP_I2C
	help
	  The MAXIM MAX8973 high-efficiency. three phase, DC-DC step-down
	  switching regulator delievers up to 9A of output current. Each
	  phase operates at a 2MHz fixed frequency with a 120 deg shift
	  from the adjacent phase, allowing the use of small magnetic component.

config REGULATOR_MAX8997
	tristate "Maxim 8997/8966 regulator"
	depends on MFD_MAX8997
	help
	  This driver controls a Maxim 8997/8966 regulator
	  via I2C bus. The provided regulator is suitable for S5PC110,
	  S5PV210, and Exynos-4 chips to control VCC_CORE and
	  VCC_USIM voltages.

config REGULATOR_MAX8998
	tristate "Maxim 8998 voltage regulator"
	depends on MFD_MAX8998
	help
	  This driver controls a Maxim 8998 voltage output regulator
	  via I2C bus. The provided regulator is suitable for S3C6410
	  and S5PC1XX chips to control VCC_CORE and VCC_USIM voltages.

config REGULATOR_MAX77686
	tristate "Maxim 77686 regulator"
	depends on MFD_MAX77686
	help
	  This driver controls a Maxim 77686 regulator
	  via I2C bus. The provided regulator is suitable for
	  Exynos-4 chips to control VARM and VINT voltages.

config REGULATOR_PCAP
	tristate "Motorola PCAP2 regulator driver"
	depends on EZX_PCAP
	help
	 This driver provides support for the voltage regulators of the
	 PCAP2 PMIC.

config REGULATOR_LP3971
	tristate "National Semiconductors LP3971 PMIC regulator driver"
	depends on I2C
	help
	 Say Y here to support the voltage regulators and convertors
	 on National Semiconductors LP3971 PMIC

config REGULATOR_LP3972
	tristate "National Semiconductors LP3972 PMIC regulator driver"
	depends on I2C
	help
	 Say Y here to support the voltage regulators and convertors
	 on National Semiconductors LP3972 PMIC

config REGULATOR_LP872X
	bool "TI/National Semiconductor LP8720/LP8725 voltage regulators"
	depends on I2C=y
	select REGMAP_I2C
	help
	  This driver supports LP8720/LP8725 PMIC

config REGULATOR_LP8788
	bool "TI LP8788 Power Regulators"
	depends on MFD_LP8788
	help
	  This driver supports LP8788 voltage regulator chip.

config REGULATOR_PCF50633
	tristate "NXP PCF50633 regulator driver"
	depends on MFD_PCF50633
	help
	 Say Y here to support the voltage regulators and convertors
	 on PCF50633

config REGULATOR_RC5T583
	tristate "RICOH RC5T583 Power regulators"
	depends on MFD_RC5T583
	help
	  Select this option to enable the power regulator of RICOH
	  PMIC RC5T583.
	  This driver supports the control of different power rails of device
	  through regulator interface. The device supports multiple DCDC/LDO
	  outputs which can be controlled by i2c communication.

config REGULATOR_S2MPS11
	tristate "Samsung S2MPS11 voltage regulator"
	depends on MFD_SEC_CORE
	help
	 This driver supports a Samsung S2MPS11 voltage output regulator
	 via I2C bus. S2MPS11 is comprised of high efficient Buck converters
	 including Dual-Phase Buck converter, Buck-Boost converter, various LDOs.

config REGULATOR_S5M8767
	tristate "Samsung S5M8767A voltage regulator"
	depends on MFD_SEC_CORE
	help
	 This driver supports a Samsung S5M8767A voltage output regulator
	 via I2C bus. S5M8767A have 9 Bucks and 28 LDOs output and
	 supports DVS mode with 8bits of output voltage control.

config REGULATOR_AB3100
	tristate "ST-Ericsson AB3100 Regulator functions"
	depends on AB3100_CORE
	default y if AB3100_CORE
	help
	 These regulators correspond to functionality in the
	 AB3100 analog baseband dealing with power regulators
	 for the system.

config REGULATOR_AB8500
	bool "ST-Ericsson AB8500 Power Regulators"
	depends on AB8500_CORE
	help
	  This driver supports the regulators found on the ST-Ericsson mixed
	  signal AB8500 PMIC

config REGULATOR_DBX500_PRCMU
	bool

config REGULATOR_DB8500_PRCMU
	bool "ST-Ericsson DB8500 Voltage Domain Regulators"
	depends on MFD_DB8500_PRCMU
	select REGULATOR_DBX500_PRCMU
	help
	  This driver supports the voltage domain regulators controlled by the
	  DB8500 PRCMU

config REGULATOR_PALMAS
	tristate "TI Palmas PMIC Regulators"
	depends on MFD_PALMAS
	help
	  If you wish to control the regulators on the Palmas series of
	  chips say Y here. This will enable support for all the software
	  controllable SMPS/LDO regulators.

	  The regulators available on Palmas series chips vary depending
	  on the muxing. This is handled automatically in the driver by
	  reading the mux info from OTP.

config REGULATOR_TPS51632
	tristate "TI TPS51632 Power Regulator"
	depends on I2C
	select REGMAP_I2C
	help
	  This driver supports TPS51632 voltage regulator chip.
	  The TPS51632 is 3-2-1 Phase D-Cap+ Step Down Driverless Controller
	  with Serial VID control and DVFS.
	  The voltage output can be configure through I2C interface or PWM
	  interface.

config REGULATOR_TPS6105X
	tristate "TI TPS6105X Power regulators"
	depends on TPS6105X
	default y if TPS6105X
	help
	  This driver supports TPS61050/TPS61052 voltage regulator chips.
	  It is a single boost converter primarily for white LEDs and
	  audio amplifiers.

config REGULATOR_TPS62360
	tristate "TI TPS6236x Power Regulator"
	depends on I2C
	select REGMAP_I2C
	help
	  This driver supports TPS6236x voltage regulator chip. This
	  regulator is meant for processor core supply. This chip is
	  high-frequency synchronous step down dc-dc converter optimized
	  for battery-powered portable applications.

config REGULATOR_TPS65023
	tristate "TI TPS65023 Power regulators"
	depends on I2C
	select REGMAP_I2C
	help
	  This driver supports TPS65023 voltage regulator chips. TPS65023 provides
	  three step-down converters and two general-purpose LDO voltage regulators.
	  It supports TI's software based Class-2 SmartReflex implementation.

config REGULATOR_TPS6507X
	tristate "TI TPS6507X Power regulators"
	depends on I2C
	help
	  This driver supports TPS6507X voltage regulator chips. TPS6507X provides
	  three step-down converters and two general-purpose LDO voltage regulators.
	  It supports TI's software based Class-2 SmartReflex implementation.

config REGULATOR_TPS65090
	tristate "TI TPS65090 Power regulator"
	depends on MFD_TPS65090
	help
	  This driver provides support for the voltage regulators on the
	  TI TPS65090 PMIC.

config REGULATOR_TPS65217
	tristate "TI TPS65217 Power regulators"
	depends on MFD_TPS65217
	help
	  This driver supports TPS65217 voltage regulator chips. TPS65217
	  provides three step-down converters and four general-purpose LDO
	  voltage regulators. It supports software based voltage control
	  for different voltage domains

config REGULATOR_TPS6524X
	tristate "TI TPS6524X Power regulators"
	depends on SPI
	help
	  This driver supports TPS6524X voltage regulator chips. TPS6524X
	  provides three step-down converters and two general-purpose LDO
	  voltage regulators.  This device is interfaced using a customized
	  serial interface currently supported on the sequencer serial
	  port controller.

config REGULATOR_TPS6586X
	tristate "TI TPS6586X Power regulators"
	depends on MFD_TPS6586X
	help
	  This driver supports TPS6586X voltage regulator chips.

config REGULATOR_TPS65910
	tristate "TI TPS65910/TPS65911 Power Regulators"
	depends on MFD_TPS65910
	help
	  This driver supports TPS65910/TPS65911 voltage regulator chips.

config REGULATOR_TPS65912
	tristate "TI TPS65912 Power regulator"
	depends on (MFD_TPS65912_I2C || MFD_TPS65912_SPI)
	help
	    This driver supports TPS65912 voltage regulator chip.

config REGULATOR_TPS80031
	tristate "TI TPS80031/TPS80032 power regualtor driver"
	depends on MFD_TPS80031
	help
	  TPS80031/ TPS80032 Fully Integrated Power Management with Power
	  Path and Battery Charger. It has 5 configurable step-down
	  converters, 11 general purpose LDOs, VBUS generator and digital
	  output to control regulators.

config REGULATOR_TWL4030
	bool "TI TWL4030/TWL5030/TWL6030/TPS659x0 PMIC"
	depends on TWL4030_CORE
	help
	  This driver supports the voltage regulators provided by
	  this family of companion chips.

config REGULATOR_VEXPRESS
	tristate "Versatile Express regulators"
	depends on VEXPRESS_CONFIG
	help
	  This driver provides support for voltage regulators available
	  on the ARM Ltd's Versatile Express platform.

config REGULATOR_WM831X
	tristate "Wolfson Microelectronics WM831x PMIC regulators"
	depends on MFD_WM831X
	help
	  Support the voltage and current regulators of the WM831x series
	  of PMIC devices.

config REGULATOR_WM8350
	tristate "Wolfson Microelectronics WM8350 AudioPlus PMIC"
	depends on MFD_WM8350
	help
	  This driver provides support for the voltage and current regulators
	  of the WM8350 AudioPlus PMIC.

config REGULATOR_WM8400
	tristate "Wolfson Microelectronics WM8400 AudioPlus PMIC"
	depends on MFD_WM8400
	help
	  This driver provides support for the voltage regulators of the
	  WM8400 AudioPlus PMIC.

config REGULATOR_WM8994
	tristate "Wolfson Microelectronics WM8994 CODEC"
	depends on MFD_WM8994
	help
	  This driver provides support for the voltage regulators on the
	  WM8994 CODEC.

config REGULATOR_AS3711
	tristate "AS3711 PMIC"
	depends on MFD_AS3711
	help
	  This driver provides support for the voltage regulators on the
	  AS3711 PMIC

endif

