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_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_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_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 BATTERY_BQ27x00
	tristate "BQ27x00 battery driver"
	help
	  Say Y here to enable support for batteries with BQ27x00 (I2C/HDQ) chips.

config BATTERY_BQ27X00_I2C
	bool "BQ27200/BQ27500 support"
	depends on BATTERY_BQ27x00
	depends on I2C
	default y
	help
	  Say Y here to enable support for batteries with BQ27x00 (I2C) chips.

config BATTERY_BQ27X00_PLATFORM
	bool "BQ27000 support"
	depends on BATTERY_BQ27x00
	default y
	help
	  Say Y here to enable support for batteries with BQ27000 (HDQ) chips.

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 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
	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_ANDROID
	tristate "Battery driver for Android"
	help
	  Say Y to enable generic support for battery charging according
	  to common Android policies.
	  This driver adds periodic battery level and health monitoring,
	  kernel log reporting and other debugging features, common board
	  battery file glue logic for battery/case temperature sensors,
	  etc.

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 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_INTEL_MID
	tristate "Battery driver for Intel MID platforms"
	depends on INTEL_SCU_IPC && SPI
	help
	  Say Y here to enable the battery driver on Intel MID
	  platforms.

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_ISP1704
	tristate "ISP1704 USB Charger Detection"
	depends on USB_OTG_UTILS
	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"
	depends on GENERIC_HARDIRQS
	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 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
	help
	  Say Y to enable support for the LP8788 linear charger.

config CHARGER_GPIO
	tristate "GPIO charger"
	depends on GPIOLIB
	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 && RTC_CLASS
	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_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_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 BATTERY_MSM
	tristate "MSM battery"
	depends on ARCH_MSM && MSM_ONCRPCROUTER
	help
	  Say Y to enable support for the battery in Qualcomm MSM.

config BATTERY_MSM_FAKE
	tristate "Fake MSM battery"
	depends on ARCH_MSM && BATTERY_MSM
	default n
	help
	  Say Y to bypass actual battery queries.

config BATTERY_MSM8X60
	tristate "MSM8X60 battery"
	select PMIC8XXX_BATTALARM
	help
	  Some MSM boards have dual charging paths to charge the battery.
	  Say Y to enable support for the battery charging in
	  such devices.

config PM8058_CHARGER
	tristate "pmic8058 charger"
	depends on BATTERY_MSM8X60
	depends on PMIC8058
	help
	  Say Y to enable support for battery charging from the pmic8058.
	  pmic8058 provides a linear charging circuit connected to the usb
	  cable on Qualcomm's msm8x60 surf board.

config ISL9519_CHARGER
	tristate "isl9519 charger"
	depends on (BATTERY_MSM8X60 || PM8921_CHARGER)
	depends on I2C
	default n
	help
	  The isl9519q charger chip from intersil is connected to an external
	  charger cable and is preferred way of charging the battery because
	  of its high current rating.
	  Choose Y if you are compiling for Qualcomm's msm8x60 surf/ffa board.

config SMB137B_CHARGER
	tristate "smb137b charger"
	default n
	depends on I2C
	help
	  The smb137b charger chip from summit is a switching mode based
	  charging solution.
	  Choose Y if you are compiling for Qualcomm's msm8x60 fluid board.
	  To compile this driver as a module, choose M here: the module will
	  be called smb137b.

config SMB137C_CHARGER
	tristate "Summit SMB137C Battery Charger"
	depends on I2C
	depends on OF
	help
	  The SMB137C charger chip from Summit is a switching mode based
	  charging solution.  This driver supports enabling and disabling
	  charging, setting the input current limit, and enabling USB OTG mode
	  in order to supply 5 V on the VBUS line.

config SMB349_CHARGER
	tristate "smb349 charger"
	depends on I2C
	help
	  Say Y to enable support for the SMB349 switching mode based charger
	  and sysfs. The driver supports controlling charger-enable and
	  current limiting capabilities. The driver also lets the
	  SMB349 be operated as a slave device via the power supply
	  framework.

config SMB350_CHARGER
	tristate "smb350 charger"
	depends on I2C
	help
	  Say Y to enable battery charging by SMB350 switching mode based
	  external charger. The device supports stack-cell battery charging.
	  The driver configures the device volatile parameters
	  and the charger device works autonomously.
	  The driver supports charger-enable and charger-suspend/resume.
	  The driver reports the charger status via the power supply framework.
	  A charger status change triggers an IRQ via the device STAT pin.

config PM8058_FIX_USB
	tristate "pmic8058 software workaround for usb removal"
	depends on PMIC8058
	depends on !PM8058_CHARGER
	help
	  Say Y to enable the software workaround to USB Vbus line
	  staying high even when USB cable is removed. This option
	  is in lieu of a complete pm8058 charging driver.

config BATTERY_QCIBAT
	tristate "Quanta Computer Inc. Battery"
	depends on SENSORS_WPCE775X
	default n
	help
	  Say Y here if you want to use the Quanta battery driver for ST15
	  platform.

config BATTERY_BQ27520
	tristate "BQ27520 battery driver"
	depends on I2C
	default n
	help
	  Say Y here to enable support for batteries with BQ27520 (I2C) chips.

config BQ27520_TEST_ENABLE
	bool "Enable BQ27520 Fuel Gauge Chip Test"
	depends on BATTERY_BQ27520
	default n
	help
	  Say Y here to enable Test sysfs Interface for BQ27520 Drivers.

config BATTERY_BQ27541
	tristate "BQ27541 battery driver"
	depends on I2C
	default n
	help
	  Say Y here to enable support for batteries with BQ27541 (I2C) chips.

config BATTERY_BQ28400
	tristate "BQ28400 battery driver"
	depends on I2C
	default n
	help
	  Say Y here to enable support for batteries with BQ28400 (I2C) chips.
	  The bq28400 Texas Instruments Inc device monitors the battery
	  charging/discharging status via Rsens resistor, typically 10 mohm.
	  It monitors the battery temperature via Thermistor.
	  The device monitors the battery level (Relative-State-Of-Charge).
	  The device is SBS compliant, providing battery info over I2C.

config PM8921_CHARGER
	tristate "PM8921 Charger driver"
	depends on MFD_PM8921_CORE
	help
	  Say Y here to enable support for pm8921 chip charger subdevice

config QPNP_CHARGER
	tristate "QPNP Charger driver"
	depends on SPMI
	depends on OF_SPMI
	depends on THERMAL_QPNP_ADC_TM
	help
	  Say Y here to enable the switch mode battery charger
	  and boost device which supports USB detection and charging. The driver
	  also offers relevant information to userspace via the power supply
	  framework.

config PM8XXX_CCADC
	tristate "PM8XXX battery current adc driver"
	depends on MFD_PM8921_CORE
	help
	  Say Y here to enable support for pm8921 chip bms subdevice

config LTC4088_CHARGER
	tristate "LTC4088 Charger driver"
	depends on GPIOLIB
	help
	  Say Y here to enable support for ltc4088 chip charger. It controls the
	  operations through GPIO pins.

config PM8921_BMS
	select PM8XXX_CCADC
	tristate "PM8921 Battery Monitoring System driver"
	depends on MFD_PM8921_CORE
	help
	  Say Y here to enable support for pm8921 chip bms subdevice

config BATTERY_BCL
	tristate "Battery Current Limit driver"
	help
	  Say Y here to enable support for battery current limit
	  device. The BCL driver will poll BMS if
	  thermal daemon enables BCL.
	  It will notify thermal daemon if IBat crosses Imax threshold.

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 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 GENERIC_HARDIRQS
	help
	  Say Y to enable support for the battery and AC power in the
	  Goldfish emulator.

config CHARGER_PM2301
	bool "PM2301 Battery Charger Driver"
	depends on AB8500_BM
	help
	  Say Y to include support for PM2301 charger driver.
	  Depends on AB8500 battery management core.

config QPNP_BMS
	tristate "QPNP Battery Monitoring System driver"
	depends on SPMI
	depends on MSM_QPNP_INT
	help
	  Say Y here to enable support for QPNP chip bms device.
	  It registers a fuelgauge bms power supply to report
	  State of Charge.

source "drivers/power/reset/Kconfig"

endif # POWER_SUPPLY

source "drivers/power/avs/Kconfig"
