menuconfig GOOGLE_BMS
	bool "Google, LLC. Charging and Fuel Gauge support"
	help
	  Say Y here to enable Google, LLC. support for Battery and Charging.

if GOOGLE_BMS

config GOOGLE_BATTERY_CHARGING
	tristate "Google Battery and Charging Control"
	select GOOGLE_CHARGER
	select GOOGLE_BATTERY
	help
	  Say Y here to enable new Google Gen Features.
	  This option selects Google Battery and Multi Step Charging enabling
	  new features such as battery controlled charge tables and charge path
	  resistance compensation. New gen features require configuration in
	  device tree.

config GOOGLE_CHARGER
	tristate "Google Multi Step Charging"
	help
	  Say Y here to choose the Google Multi Step Charging control.
	  The driver implements a multi CC-CV steps charging using battery
	  temperature and voltage to set the charger constant charging
	  current and float voltage.

config GOOGLE_BATTERY
	tristate "Google Battery"
	help
	  Say Y here to choose the Google Battery.
	  The driver handles charge tables, recharge threshold, state of charge,
	  battery statistics such as bin count and other features common to all
	  google battery powered devices.

config GOOGLE_DUAL_BATT_GAUGE
        tristate "Google Dual Battery Gauge"
        help
          Say Y here to choose the Google Dual Battery Gauge.
          The driver handles 2 battery gauges and called by google battery.

config GOOGLE_CPM
	tristate "Google Charging Policy Manager"
	help
	  Say Y here to enable the Charging Policy Manager.
	  The driver manages multiple chargers (eg primary, secondary).

config GOOGLE_DOCK
        tristate "Google Dock"
        help
          Say Y here to choose the Google Dock.
          The driver handles dock driver and called by google charger.

config USB_OVERHEAT_MITIGATION
	tristate "Google USB Overheat Mitigation"
	help
	  Say Y here to enable Google USB overheat mitigation

config PMIC_VOTER_COMPAT
	tristate "QC Pmic Voter compatibility shim"
	help
	  Say Y here to enable voter compatibility shim layer.
	  This option enables a call interface between the legacy voter
	  interface and the Google Voting interface.

config GOOGLE_BEE
	tristate "Google Battery EEPROM"
	help
	  Say Y here to enable the support for google battery EEPROM
	  The EEPROM contains the battery type, lifetime data and other
	  infomation.

endif	# GOOGLE_BMS

config CHARGER_P9221
	tristate "IDT P9221 wireless power receiver driver"
	depends on I2C
	help
	  This driver provides support for the IDT P9221 wireless
	  power receiver.

config CHARGER_MAX77729
	tristate "Maxim MAX77729 battery charger driver"
	depends on I2C && OF
	help
	  Say Y to enable support for the Maxim MAX77729 battery charger.

config CHARGER_MAX77759
	tristate "Maxim MAX77759 battery charger driver"
	depends on I2C && OF
	help
	  Say Y to enable support for the Maxim MAX77759 battery charger.

config PMIC_MAX77729
	tristate "Maxim MAX77729 PMIC driver"
	depends on I2C && OF
	help
	  Say Y to enable support for the Maxim MAX77729 PMIC.

config UIC_MAX77729
	tristate "Maxim MAX77729 TCPCI driver"
	depends on I2C && OF
	help
	  Say Y to enable support for the Maxim MAX77729 TCPCI.

config PCA9468
	tristate "NXP PCA9468 Direct charger"
	depends on I2C && OF
	help
	  Say Y to enable support for the PCA9648 direct charger.

config MAX20339
	tristate "Maxim MAX20339 input protection chip"
	depends on I2C && OF
	help
	  Say Y to enable support for Max20339 OVP and LS circuits.

config MAXQ_MAX77759
	tristate "Maxim MAX77759 MAXQ"
	depends on I2C && PMIC_MAX77729
	help
	  Say Y to enable support for MAX77759 MAXQ support.
