menuconfig POWER_SUPPLY
	bool "Power supply class support"
	help
	  Say Y here to enable power supply class support. This allows
	  power supply (batteries, AC, USB) monitoring by userspace
	  via sysfs and uevent (if available) and/or APM kernel interface
	  (if selected below).

if POWER_SUPPLY

config POWER_SUPPLY_DEBUG
	bool "Power supply debug"
	help
	  Say Y here to enable debugging messages for power supply class
	  and drivers.

config PDA_POWER
	tristate "Generic PDA/phone power driver"
	depends on !S390
	help
	  Say Y here to enable generic power driver for PDAs and phones with
	  one or two external power supplies (AC/USB) connected to main and
	  backup batteries, and optional builtin charger.

config APM_POWER
	tristate "APM emulation for class batteries"
	depends on APM_EMULATION
	help
	  Say Y here to enable support APM status emulation using
	  battery class devices.

config GENERIC_ADC_BATTERY
	tristate "Generic battery support using IIO"
	depends on IIO
	help
	  Say Y here to enable support for the generic battery driver
	  which uses IIO framework to read adc.

config MAX8925_POWER
	tristate "MAX8925 battery charger support"
	depends on MFD_MAX8925
	help
	  Say Y here to enable support for the battery charger in the Maxim
	  MAX8925 PMIC.

config WM831X_BACKUP
	tristate "WM831X backup battery charger support"
	depends on MFD_WM831X
	help
	  Say Y here to enable support for the backup battery charger
	  in the Wolfson Microelectronics WM831x PMICs.

config WM831X_POWER
	tristate "WM831X PMU support"
	depends on MFD_WM831X
	help
	  Say Y here to enable support for the power management unit
	  provided by Wolfson Microelectronics WM831x PMICs.

config WM8350_POWER
        tristate "WM8350 PMU support"
        depends on MFD_WM8350
        help
          Say Y here to enable support for the power management unit
	  provided by the Wolfson Microelectronics WM8350 PMIC.

config TEST_POWER
	tristate "Test power driver"
	help
	  This driver is used for testing. It's safe to say M here.

config BATTERY_88PM860X
	tristate "Marvell 88PM860x battery driver"
	depends on MFD_88PM860X
	help
	  Say Y here to enable battery monitor for Marvell 88PM860x chip.

config BATTERY_ACT8945A
	tristate "Active-semi ACT8945A charger driver"
	depends on MFD_ACT8945A || COMPILE_TEST
	help
	  Say Y here to enable support for power supply provided by
	  Active-semi ActivePath ACT8945A charger.

config BATTERY_CPCAP
	tristate "Motorola CPCAP PMIC battery driver"
	depends on MFD_CPCAP && IIO
	default MFD_CPCAP
	help
	  Say Y here to enable support for battery on Motorola
	  phones and tablets such as droid 4.

config BATTERY_DS2760
	tristate "DS2760 battery driver (HP iPAQ & others)"
	depends on W1 && W1_SLAVE_DS2760
	help
	  Say Y here to enable support for batteries with ds2760 chip.

config BATTERY_DS2780
	tristate "DS2780 battery driver"
	depends on HAS_IOMEM
	select W1
	select W1_SLAVE_DS2780
	help
	  Say Y here to enable support for batteries with ds2780 chip.

config BATTERY_DS2781
	tristate "DS2781 battery driver"
	depends on HAS_IOMEM
	select W1
	select W1_SLAVE_DS2781
	help
	  If you enable this you will have the DS2781 battery driver support.

	  The battery monitor chip is used in many batteries/devices
	  as the one who is responsible for charging/discharging/monitoring
	  Li+ batteries.

	  If you are unsure, say N.

config BATTERY_DS2782
	tristate "DS2782/DS2786 standalone gas-gauge"
	depends on I2C
	help
	  Say Y here to enable support for the DS2782/DS2786 standalone battery
	  gas-gauge.

config BATTERY_LEGO_EV3
	tristate "LEGO MINDSTORMS EV3 battery"
	depends on OF && IIO && GPIOLIB
	help
	  Say Y here to enable support for the LEGO MINDSTORMS EV3 battery.

config BATTERY_PMU
	tristate "Apple PMU battery"
	depends on PPC32 && ADB_PMU
	help
	  Say Y here to expose battery information on Apple machines
	  through the generic battery class.

config BATTERY_OLPC
	tristate "One Laptop Per Child battery"
	depends on X86_32 && OLPC
	help
	  Say Y to enable support for the battery on the OLPC laptop.

config BATTERY_TOSA
	tristate "Sharp SL-6000 (tosa) battery"
	depends on MACH_TOSA && MFD_TC6393XB && TOUCHSCREEN_WM97XX
	help
	  Say Y to enable support for the battery on the Sharp Zaurus
	  SL-6000 (tosa) models.

config BATTERY_COLLIE
	tristate "Sharp SL-5500 (collie) battery"
	depends on SA1100_COLLIE && MCP_UCB1200
	help
	  Say Y to enable support for the battery on the Sharp Zaurus
	  SL-5500 (collie) models.

config BATTERY_IPAQ_MICRO
	tristate "iPAQ Atmel Micro ASIC battery driver"
	depends on MFD_IPAQ_MICRO
	help
	  Choose this option if you want to monitor battery status on
	  Compaq/HP iPAQ h3100 and h3600.

config BATTERY_WM97XX
	bool "WM97xx generic battery driver"
	depends on TOUCHSCREEN_WM97XX=y
	help
	  Say Y to enable support for battery measured by WM97xx aux port.

config BATTERY_SBS
        tristate "SBS Compliant gas gauge"
        depends on I2C
        help
	  Say Y to include support for SBS battery driver for SBS-compliant
	  gas gauges.

config CHARGER_SBS
        tristate "SBS Compliant charger"
        depends on I2C
        help
	  Say Y to include support for SBS compilant battery chargers.

config BATTERY_BQ27XXX
	tristate "BQ27xxx battery driver"
	help
	  Say Y here to enable support for batteries with BQ27xxx chips.

config BATTERY_BQ27XXX_I2C
	tristate "BQ27xxx I2C support"
	depends on BATTERY_BQ27XXX
	depends on I2C
	default y
	help
	  Say Y here to enable support for batteries with BQ27xxx chips
	  connected over an I2C bus.

config BATTERY_BQ27XXX_DT_UPDATES_NVM
	bool "BQ27xxx support for update of NVM/flash data memory"
	depends on BATTERY_BQ27XXX_I2C
	help
	  Say Y here to enable devicetree monitored-battery config to update
	  NVM/flash data memory. Only enable this option for devices with a
	  fuel gauge mounted on the circuit board, and a battery that cannot
	  easily be replaced with one of a different type. Not for
	  general-purpose kernels, as this can cause misconfiguration of a
	  smart battery with embedded NVM/flash.

config BATTERY_DA9030
	tristate "DA9030 battery driver"
	depends on PMIC_DA903X
	help
	  Say Y here to enable support for batteries charger integrated into
	  DA9030 PMIC.

config BATTERY_DA9052
	tristate "Dialog DA9052 Battery"
	depends on PMIC_DA9052
	help
	  Say Y here to enable support for batteries charger integrated into
	  DA9052 PMIC.

config CHARGER_DA9150
	tristate "Dialog Semiconductor DA9150 Charger support"
	depends on MFD_DA9150
	depends on DA9150_GPADC
	depends on IIO
	help
	  Say Y here to enable support for charger unit of the DA9150
	  Integrated Charger & Fuel-Gauge IC.

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

config BATTERY_DA9150
	tristate "Dialog Semiconductor DA9150 Fuel Gauge support"
	depends on MFD_DA9150
	help
	  Say Y here to enable support for the Fuel-Gauge unit of the DA9150
	  Integrated Charger & Fuel-Gauge IC

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

config CHARGER_AXP20X
	tristate "X-Powers AXP20X and AXP22X AC power supply driver"
	depends on MFD_AXP20X
	depends on AXP20X_ADC
	depends on IIO
	help
	  Say Y here to enable support for X-Powers AXP20X and AXP22X PMICs' AC
	  power supply.

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

config BATTERY_AXP20X
	tristate "X-Powers AXP20X battery driver"
	depends on MFD_AXP20X
	depends on AXP20X_ADC
	depends on IIO
	help
	  Say Y here to enable support for X-Powers AXP20X PMICs' battery power
	  supply.

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

config AXP20X_POWER
	tristate "AXP20x power supply driver"
	depends on MFD_AXP20X
	depends on IIO
	help
	  This driver provides support for the power supply features of
	  AXP20x PMIC.

config AXP288_CHARGER
	tristate "X-Powers AXP288 Charger"
	depends on MFD_AXP20X && EXTCON_AXP288
	help
	  Say yes here to have support X-Power AXP288 power management IC (PMIC)
	  integrated charger.

config AXP288_FUEL_GAUGE
	tristate "X-Powers AXP288 Fuel Gauge"
	depends on MFD_AXP20X && IIO
	help
	  Say yes here to have support for X-Power power management IC (PMIC)
	  Fuel Gauge. The device provides battery statistics and status
	  monitoring as well as alerts for battery over/under voltage and
	  over/under temperature.

config BATTERY_MAX17040
	tristate "Maxim MAX17040 Fuel Gauge"
	depends on I2C
	help
	  MAX17040 is fuel-gauge systems for lithium-ion (Li+) batteries
	  in handheld and portable equipment. The MAX17040 is configured
	  to operate with a single lithium cell

config BATTERY_MAX17042
	tristate "Maxim MAX17042/17047/17050/8997/8966 Fuel Gauge"
	depends on I2C
	select REGMAP_I2C
	help
	  MAX17042 is fuel-gauge systems for lithium-ion (Li+) batteries
	  in handheld and portable equipment. The MAX17042 is configured
	  to operate with a single lithium cell. MAX8997 and MAX8966 are
	  multi-function devices that include fuel gauages that are compatible
	  with MAX17042. This driver also supports max17047/50 chips which are
	  improved version of max17042.

config BATTERY_Z2
	tristate "Z2 battery driver"
	depends on I2C && MACH_ZIPIT2
	help
	  Say Y to include support for the battery on the Zipit Z2.

config BATTERY_S3C_ADC
	tristate "Battery driver for Samsung ADC based monitoring"
	depends on S3C_ADC
	help
	  Say Y here to enable support for iPAQ h1930/h1940/rx1950 battery

config BATTERY_TWL4030_MADC
	tristate "TWL4030 MADC battery driver"
	depends on TWL4030_MADC
	help
	  Say Y here to enable this dumb driver for batteries managed
	  through the TWL4030 MADC.

config CHARGER_88PM860X
	tristate "Marvell 88PM860x Charger driver"
	depends on MFD_88PM860X && BATTERY_88PM860X
	help
	  Say Y here to enable charger for Marvell 88PM860x chip.

config CHARGER_PCF50633
	tristate "NXP PCF50633 MBC"
	depends on MFD_PCF50633
	help
	 Say Y to include support for NXP PCF50633 Main Battery Charger.

config BATTERY_JZ4740
	tristate "Ingenic JZ4740 battery"
	depends on MACH_JZ4740
	depends on MFD_JZ4740_ADC
	help
	  Say Y to enable support for the battery on Ingenic JZ4740 based
	  boards.

	  This driver can be build as a module. If so, the module will be
	  called jz4740-battery.

config BATTERY_RX51
	tristate "Nokia RX-51 (N900) battery driver"
	depends on TWL4030_MADC
	help
	  Say Y here to enable support for battery information on Nokia
	  RX-51, also known as N900 tablet.

config CHARGER_CPCAP
	tristate "CPCAP PMIC Charger Driver"
	depends on MFD_CPCAP && IIO
	default MFD_CPCAP
	help
	  Say Y to enable support for CPCAP PMIC charger driver for Motorola
	  mobile devices such as Droid 4.

config CHARGER_ISP1704
	tristate "ISP1704 USB Charger Detection"
	depends on USB_PHY
	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
	help
	  Say Y to enable support for USB Charger Detection with
	  ISP1707/ISP1704 USB transceivers.

config CHARGER_MAX8903
	tristate "MAX8903 Battery DC-DC Charger for USB and Adapter Power"
	help
	  Say Y to enable support for the MAX8903 DC-DC charger and sysfs.
	  The driver supports controlling charger-enable and current-limit
	  pins based on the status of charger connections with interrupt
	  handlers.

config CHARGER_TWL4030
	tristate "OMAP TWL4030 BCI charger driver"
	depends on IIO && TWL4030_CORE
	help
	  Say Y here to enable support for TWL4030 Battery Charge Interface.

config CHARGER_LP8727
	tristate "TI/National Semiconductor LP8727 charger driver"
	depends on I2C
	help
	  Say Y here to enable support for LP8727 Charger Driver.

config CHARGER_LP8788
	tristate "TI LP8788 charger driver"
	depends on MFD_LP8788
	depends on LP8788_ADC
	depends on IIO
	help
	  Say Y to enable support for the LP8788 linear charger.

config CHARGER_GPIO
	tristate "GPIO charger"
	depends on GPIOLIB || COMPILE_TEST
	help
	  Say Y to include support for chargers which report their online status
	  through a GPIO pin.

	  This driver can be build as a module. If so, the module will be
	  called gpio-charger.

config CHARGER_MANAGER
	bool "Battery charger manager for multiple chargers"
	depends on REGULATOR
	select EXTCON
	help
          Say Y to enable charger-manager support, which allows multiple
          chargers attached to a battery and multiple batteries attached to a
          system. The charger-manager also can monitor charging status in
          runtime and in suspend-to-RAM by waking up the system periodically
          with help of suspend_again support.

config CHARGER_LTC3651
	tristate "LTC3651 charger"
	depends on GPIOLIB
	help
	  Say Y to include support for the LTC3651 battery charger which reports
	  its status via GPIO lines.

config CHARGER_MAX14577
	tristate "Maxim MAX14577/77836 battery charger driver"
	depends on MFD_MAX14577
	help
	  Say Y to enable support for the battery charger control sysfs and
	  platform data of MAX14577/77836 MUICs.

config CHARGER_DETECTOR_MAX14656
	tristate "Maxim MAX14656 USB charger detector"
	depends on I2C
	depends on OF
	help
	  Say Y to enable support for the Maxim MAX14656 USB charger detector.
	  The device is compliant with the USB Battery Charging Specification
	  Revision 1.2 and can be found e.g. in Kindle 4/5th generation
	  readers and certain LG devices.

config CHARGER_MAX77693
	tristate "Maxim MAX77693 battery charger driver"
	depends on MFD_MAX77693
	help
	  Say Y to enable support for the Maxim MAX77693 battery charger.

config CHARGER_MAX8997
	tristate "Maxim MAX8997/MAX8966 PMIC battery charger driver"
	depends on MFD_MAX8997 && REGULATOR_MAX8997
	help
	  Say Y to enable support for the battery charger control sysfs and
	  platform data of MAX8997/LP3974 PMICs.

config CHARGER_MAX8998
	tristate "Maxim MAX8998/LP3974 PMIC battery charger driver"
	depends on MFD_MAX8998 && REGULATOR_MAX8998
	help
	  Say Y to enable support for the battery charger control sysfs and
	  platform data of MAX8998/LP3974 PMICs.

config CHARGER_QCOM_SMBB
	tristate "Qualcomm Switch-Mode Battery Charger and Boost"
	depends on MFD_SPMI_PMIC || COMPILE_TEST
	depends on OF
	depends on EXTCON
	depends on REGULATOR
	help
	  Say Y to include support for the Switch-Mode Battery Charger and
	  Boost (SMBB) hardware found in Qualcomm PM8941 PMICs.  The charger
	  is an integrated, single-cell lithium-ion battery charger.  DT
	  configuration is required for loading, see the devicetree
	  documentation for more detail.  The base name for this driver is
	  'pm8941_charger'.

config CHARGER_BQ2415X
	tristate "TI BQ2415x battery charger driver"
	depends on I2C
	help
	  Say Y to enable support for the TI BQ2415x battery charger
	  PMICs.

	  You'll need this driver to charge batteries on e.g. Nokia
	  RX-51/N900.

config CHARGER_BQ24190
	tristate "TI BQ24190 battery charger driver"
	depends on I2C
	depends on EXTCON
	depends on GPIOLIB || COMPILE_TEST
	help
	  Say Y to enable support for the TI BQ24190 battery charger.

config CHARGER_BQ24257
	tristate "TI BQ24250/24251/24257 battery charger driver"
	depends on I2C
	depends on GPIOLIB || COMPILE_TEST
	depends on REGMAP_I2C
	help
	  Say Y to enable support for the TI BQ24250, BQ24251, and BQ24257 battery
	  chargers.

config CHARGER_BQ24735
	tristate "TI BQ24735 battery charger support"
	depends on I2C
	depends on GPIOLIB || COMPILE_TEST
	help
	  Say Y to enable support for the TI BQ24735 battery charger.

config CHARGER_BQ25890
	tristate "TI BQ25890 battery charger driver"
	depends on I2C
	depends on GPIOLIB || COMPILE_TEST
	select REGMAP_I2C
	help
	  Say Y to enable support for the TI BQ25890 battery charger.

config CHARGER_SMB347
	tristate "Summit Microelectronics SMB347 Battery Charger"
	depends on I2C
	select REGMAP_I2C
	help
	  Say Y to include support for Summit Microelectronics SMB347
	  Battery Charger.

config CHARGER_TPS65090
	tristate "TPS65090 battery charger driver"
	depends on MFD_TPS65090
	help
	 Say Y here to enable support for battery charging with TPS65090
	 PMIC chips.

config CHARGER_TPS65217
	tristate "TPS65217 battery charger driver"
	depends on MFD_TPS65217
	help
	 Say Y here to enable support for battery charging with TPS65217
	 PMIC chips.

config BATTERY_GAUGE_LTC2941
	tristate "LTC2941/LTC2943 Battery Gauge Driver"
	depends on I2C
	help
	  Say Y here to include support for LTC2941 and LTC2943 Battery
	  Gauge IC. The driver reports the charge count continuously, and
	  measures the voltage and temperature every 10 seconds.

config AB8500_BM
	bool "AB8500 Battery Management Driver"
	depends on AB8500_CORE && AB8500_GPADC
	help
	  Say Y to include support for AB8500 battery management.

config BATTERY_GOLDFISH
	tristate "Goldfish battery driver"
	depends on GOLDFISH || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Say Y to enable support for the battery and AC power in the
	  Goldfish emulator.

config BATTERY_RT5033
	tristate "RT5033 fuel gauge support"
	depends on MFD_RT5033
	help
	  This adds support for battery fuel gauge in Richtek RT5033 PMIC.
	  The fuelgauge calculates and determines the battery state of charge
	  according to battery open circuit voltage.

config CHARGER_RT9455
	tristate "Richtek RT9455 battery charger driver"
	depends on I2C
	depends on GPIOLIB || COMPILE_TEST
	select REGMAP_I2C
	help
	  Say Y to enable support for Richtek RT9455 battery charger.

endif # POWER_SUPPLY
