menuconfig POWER_SUPPLY
	tristate "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 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_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 "2781 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
	depends on BROKEN
	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/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.

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_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 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_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
	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 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 SMB358_CHARGER
	tristate "SMB358 Battery Charger"
	depends on I2C
	help
	  Say Y to include support for SMB358 Battery Charger.
	  SMB358 is a single path switching mode charger capable of charging
	  the battery with 2Amps of current.
	  The driver supports charger enable/disable.
	  The driver reports the charger status via the power supply framework.
	  A charger status change triggers an IRQ via the device STAT pin.

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
	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 AB5500 battery management.

config AB8500_BATTERY_THERM_ON_BATCTRL
	bool "Thermistor connected on BATCTRL ADC"
	depends on AB8500_BM
	help
	  Say Y to enable battery temperature measurements using
	  thermistor connected on BATCTRL ADC.

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.
endif # POWER_SUPPLY
