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_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 BATTERY_BQ27x00
	tristate "BQ27x00 battery driver"
	depends on I2C || I2C=n
	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
	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_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 HTC_BATT
        bool "htc feature for debug and testing"
        help
          Say Y to enable htc battery debug flag series.

config CHARGER_ISP1704
	tristate "ISP1704 USB Charger Detection"
	depends on USB_PHY
	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 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
	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_MAX14577
	tristate "Maxim MAX14577/77836 battery charger driver"
	depends on MFD_MAX14577
	depends on SYSFS
	help
	  Say Y to enable support for the battery charger control sysfs and
	  platform data of MAX14577/77836 MUICs.

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 CHARGER_BQ24190
	tristate "TI BQ24190 battery charger driver"
	depends on I2C && GPIOLIB
	help
	  Say Y to enable support for the TI BQ24190 battery charger.

config CHARGER_BQ24735
	tristate "TI BQ24735 battery charger support"
	depends on I2C && GPIOLIB
	help
	  Say Y to enable support for the TI BQ24735 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 SMB349_USB_CHARGER
	tristate "smb349 usb charger (with VBUS detection)"
	depends on I2C
	help
	 Say Y to enable support for the SMB349 switching mode based charger.
	 The driver supports charging control (enable/disable) and
	 charge-current limiting. It also provides USB VBUS detection and
	 notification support. The driver controls SMB349 via I2C and
	 supports device-tree interface.

config SMB349_DUAL_CHARGER
	tristate "smb349 dual charger"
	depends on I2C
	help
	 Say Y to enable support for the SMB349 dual charger single path
	 switching mode charger. The driver supports charging in conjuction
	 with an external charger on the same path by providing hand-off
	 control and charge-current limiting. The driver controls SMB349
	 via I2C in STAT IRQ driven mode and supports device-tree interface.

config SMB1351_USB_CHARGER
	tristate "smb1351 usb charger (with VBUS detection)"
	depends on I2C
	help
	 Say Y to enable support for the SMB1351 switching mode based charger.
	 The driver supports charging control (enable/disable) and
	 charge-current limiting. It also provides USB VBUS detection and
	 notification support. The driver controls SMB1351 via I2C and
	 supports device-tree interface.

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 SMB135X_CHARGER
	tristate "SMB135X Battery Charger"
	depends on I2C
	help
	  Say Y to include support for SMB135X Battery Charger.
	  SMB135X is a dual path switching mode charger capable of charging
	  the battery with 3Amps 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 SMB1360_CHARGER_FG
	tristate "SMB1360 Charger and Fuel Guage"
	depends on I2C
	help
	  Say Y to include support for SMB1360 Charger and Fuel Guage.
	  SMB1360 is a single path switching mode charger capable of charging
	  the battery with 1.5Amps of current. It supports a fuel gauge which
	  uses voltage and coloumb counting for state of charge reporting.
	  The driver reports the status via the power supply framework.
	  A status change triggers an IRQ via the device STAT pin.

config SMB138X_CHARGER
	tristate "SMB138X Battery Charger"
	depends on MFD_I2C_PMIC
	help
	  Say Y to include support for SMB138X Battery Charger.
	  SMB1380 is a dual phase 6A battery charger, and SMB1381 is a single
	  phase 5A battery charger.
	  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 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 SMB23X_CHARGER
	tristate "SMB23X Battery Charger"
	depends on I2C
	help
	  Say Y to include support for SMB23X Battery Charger.
	  SMB23X is a single path linear charger capable of charging
	  the battery with 1Amps 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 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 QPNP_CHARGER
	tristate "QPNP Charger driver"
	depends on SPMI || MSM_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 QPNP_SMBCHARGER
	tristate "QPNP SMB Charger driver"
	depends on SPMI || MSM_SPMI
	depends on OF_SPMI
	help
	  Say Y here to enable the dual path switch mode battery charger which
	  supports USB detection and battery charging up to 3A.
	  The driver also offers relevant information to userspace via the
	  power supply framework.

config FUELGAUGE_STC3117
	tristate "STC3117 fuel gauge driver"
	default n
	depends on I2C
	help
	  Say Y to include support
	  for STC3117 fuel gauge driver for batteries.
	  This driver source code implemented
	  all functions for STC3117 fuel gauge.

config QPNP_FG
	tristate "QPNP fuel gauge driver"
	depends on SPMI || MSM_SPMI
	depends on OF_SPMI
	help
	  Say Y here to enable the Fuel Gauge driver. This adds support for
	  battery fuel gauging and state of charge of battery connected to the
	  fuel gauge. The state of charge is reported through a BMS power
	  supply property and also sends uevents when the capacity is updated.

config BATTERY_BCL
	tristate "Battery Current Limit driver"
	depends on THERMAL_MONITOR
	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_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 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 QPNP_VM_BMS
	tristate "QPNP Voltage-Mode Battery Monitoring System driver"
	depends on SPMI || MSM_SPMI
	depends on MSM_QPNP_INT
	help
	  Say Y here to enable support for QPNP chip vm-bms device.
	  The voltage-mode (vm) BMS driver uses periodic VBATT
	  readings from the battery to calculate the State of
	  Charge.

config QPNP_BMS
	tristate "QPNP Battery Monitoring System driver"
	depends on SPMI || MSM_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.

config QPNP_LINEAR_CHARGER
	tristate "QPNP Linear Charger driver"
	depends on SPMI || MSM_SPMI
	depends on OF_SPMI
	depends on MSM_QPNP_INT
	depends on THERMAL_QPNP_ADC_TM
	help
	  Say Y here to enable the Linear battery charger which supports USB
	  detection and charging. The driver also offers relevant information
	  to userspace via the power supply framework.

config QPNP_TYPEC
	tristate "QPNP Type-C driver"
	depends on SPMI || MSM_SPMI
	depends on OF_SPMI
	depends on MSM_QPNP_INT
	help
	  Say Y here to enable QPNP Type-C driver.
	  The QPNP Type-C module supports the USB type-C protocol. It supports type-C
	  cable detection and other type-C parameters such as current-capability and
	  CC-orientation. The module does not support USB power-delivery. The driver
	  adds support to report these type-C parameters via the power-supply
	  framework.

config MSM_BCL_CTL
	bool "BCL Framework driver"
	help
	  Say Y here to enable this BCL Framework driver. This driver provides
	  interface, which can be used by the BCL h/w drivers to implement the
	  basic functionalities. This framework abstracts the underlying
	  hardware for the top level modules.

config MSM_BCL_PERIPHERAL_CTL
	bool "BCL driver to control the PMIC BCL peripheral"
	depends on SPMI || MSM_SPMI
	depends on MSM_BCL_CTL
	help
	  Say Y here to enable this BCL PMIC peripheral driver. This driver
	  provides routines to configure and monitor the BCL
	  PMIC peripheral.

source "drivers/power/reset/Kconfig"

endif # POWER_SUPPLY

source "drivers/power/avs/Kconfig"
source "drivers/power/qcom/Kconfig"
