
config BATTERY_SAMSUNG
	tristate "samsung battery driver"
	help
	 Say Y to include support for samsung battery driver
	 This battery driver integrated all battery-related functions
	 To see battery-related functions,
	 refer to sec_charging_common.h

config BATTERY_SAMSUNG_V2
	tristate "samsung battery driver version 2"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support for samsung battery driver
	 This battery driver integrated all battery-related functions
	 To see battery-related functions,
	 refer to sec_charging_common.h

config CHARGING_VZWCONCEPT
	tristate "VZW concept about the charging"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support for the VZW concepts.

config BATTERY_SWELLING
	bool "prevent battery swelling"
	help
	  Say Y to include support for prevent battery swelling

config BATTERY_SWELLING_SELF_DISCHARGING
	bool "prevent battery swelling with self discharging"
	help
	  Say Y to include support for prevent battery swelling with self discharging

config CALC_TIME_TO_FULL
	tristate "calculate time to full"
	default n
	depends on BATTERY_SAMSUNG
	help
	  Say Y to use calc time to full function.

config SW_SELF_DISCHARGING
	bool "enable sw_self_discharging"
	default n
	help
	  Say Y to enable CONFIG_SW_SELF_DISCHARGING

config BATTERY_AGE_FORECAST
	tristate "battery age forecast"
	default n
	depends on BATTERY_SWELLING
	help
	Say Y to use calc time to full function.

config BATTERY_AGE_FORECAST_DETACHABLE
	tristate "battery age forecast for detachable"
	default n
	select BATTERY_AGE_FORECAST
	help
	 Say Y to use battery age forecast for detachable battery models.
	 In detachable battery models the battery cycles
	 are calculated based on the RIL time to give an estimate
	 on weeks that the battery has been used to determine aging.

config FUELGAUGE_ASOC_FROM_CYCLES
	bool "FUELGAUGE ASOC output based on mapping with battery cycles"
	default n
	depends on BATTERY_AGE_FORECAST
	help
	 Say Y to enable support for the mapping of ASOC with charging cycles.
	 Support for this feature implies that a mapping table has been shared
	 from HW team and big data side. This feature is providing
	 support for platform required battery health monitoring concepts.

config MULTI_CHARGING
	bool "support for multi charger ICs"
	help
	Say Y to include support for multi charger ICs

config STEP_CHARGING
	bool "support for step charging"
	help
	 Say Y to include support for step charging

config UPDATE_BATTERY_DATA
	bool "support for updating battery data"
	default n
	depends on BATTERY_SAMSUNG && OF
	help
	 Say Y to include support for step charging

config ENG_BATTERY_CONCEPT
	tristate "set test mode in eng build"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to set test mode in eng build

config AFC_CURR_CONTROL_BY_TEMP
	tristate "fast charging current control by temp"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to set afc current control by temp

config BATTERY_CISD
	bool "support for cisd"
	help
	 Say Y to include support for cisd
	 cisd means cell internal short detection

config FG_FULLCAP_FROM_BATTERY
	bool "support Fuelgauge FULLCAP measurment concept via battery driver"
	default n
	depends on BATTERY_CISD
	help
	 Say Y to enable support for Fuelgauge (FG) FULLCAP
	 measurement directly from the battery driver.
	 This is an approximation of the remaining battery
	 capacity. It is shouldn't be enabled if the FG
	 supports this internally.

# Fuel Gauge

config FUELGAUGE_DUMMY
	tristate "dummy fuel gauge driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for dummy fuel gauge driver.
	 This driver source code implemented
	 skeleton source code for fuel gauge functions.

config FUELGAUGE_MAX17042
	tristate "MAX17042 fuel gauge driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for MAXIM MAX17042 fuel gauge driver.
	 This fuel-gauge can be used in voltage-tracking mode
	 or coulomb-counting mode.

config FUELGAUGE_MAX17042_VOLTAGE_TRACKING
	tristate "use MAX17042 fuel gauge only as voltage tracking"
	default n
	depends on FUELGAUGE_MAX17042
	help
	 Say Y to use MAX17042 fuel gauge
	 only as voltage tracking.
	 This mode is for target that consumes low current
	 like smart-phone.

config FUELGAUGE_MAX17042_COULOMB_COUNTING
	tristate "use MAX17042 fuel gauge as coulomb counting (including voltage tracking)"
	default n
	depends on FUELGAUGE_MAX17042
	help
	 Say Y to use MAX17042 fuel gauge
	 as coulomb counting (including voltage tracking).
	 This mode is for target that consumes high current
	 like tablet.

config FUELGAUGE_MAX17048
	tristate "MAX17048 fuel gauge driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for MAXIM MAX17048 fuel gauge driver.
	 This fuel-gauge can be used
	 only in voltage-tracking mode.

config FUELGAUGE_MAX17050
	tristate "MAX17050 fuel gauge driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for MAXIM MAX17047 or MAX17050 fuel gauge driver.
	 This fuel-gauge can be used in voltage-tracking mode
	 or coulomb-counting mode.

config FUELGAUGE_MAX17050_VOLTAGE_TRACKING
	tristate "use MAX17050 fuel gauge only as voltage tracking"
	default n
	depends on FUELGAUGE_MAX17050
	help
	 Say Y to use MAX17050 fuel gauge
	 only as voltage tracking.
	 This mode is for target that consumes low current
	 like smart-phone.

config FUELGAUGE_MAX17050_COULOMB_COUNTING
	tristate "use MAX17050 fuel gauge as coulomb counting (including voltage tracking)"
	default n
	depends on FUELGAUGE_MAX17050
	help
	 Say Y to use MAX17050 fuel gauge
	 as coulomb counting (including voltage tracking).
	 This mode is for target that consumes high current
	 like tablet.

config FUELGAUGE_MAX77823
	tristate "MAX77823 fuel gauge driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for MAXIM MAX17047 or MAX17050 fuel gauge driver.
	 This fuel-gauge can be used in voltage-tracking mode
	 or coulomb-counting mode.

config FUELGAUGE_MAX77843
	tristate "MAX77843 fuel gauge driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for MAXIM MAX17047 or MAX17050 fuel gauge driver.
	 This fuel-gauge can be used in voltage-tracking mode
	 or coulomb-counting mode.

config FUELGAUGE_MAX77833
	tristate "MAX77833 fuel gauge driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for MAXIM MAX77833 fuel gauge driver.
	 This fuel-gauge can be used in coulomb-counting mode.

config FUELGAUGE_MAX77854
	tristate "MAX77854 fuel gauge driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for MAXIM MAX77854 fuel gauge driver.
	 This fuel-gauge can be used in coulomb-counting mode.

config FUELGAUGE_MAX77865
	tristate "MAX77865 fuel gauge driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for MAXIM MAX77865 fuel gauge driver.
	 This fuel-gauge can be used in coulomb-counting mode.

config FUELGAUGE_MAX77823_VOLTAGE_TRACKING
	tristate "use MAX77823 fuel gauge only as voltage tracking"
	default n
	depends on FUELGAUGE_MAX77823
	help
	 Say Y to use MAX17050 fuel gauge
	 only as voltage tracking.
	 This mode is for target that consumes low current
	 like smart-phone.

config FUELGAUGE_MAX77823_COULOMB_COUNTING
	tristate "use MAX77823 fuel gauge as coulomb counting (including voltage tracking)"
	default n
	depends on FUELGAUGE_MAX77823
	help
	 Say Y to use MAX77823 fuel gauge
	 as coulomb counting (including voltage tracking).
	 This mode is for target that consumes high current
	 like tablet.

config FUELGAUGE_S2MU205
	tristate "S2MU205 fuel gauge driver"
	default n
	depends on (MFD_S2MU205) && I2C
	help
	 Say Y to include support
	 for S.LSI S2MU205 fuel gauge driver.
	 Ths fuel-gauge supports current tracking and
	 voltage tracking to model the battery SOC.

config FUELGAUGE_S2MU106
	tristate "S2MU106 fuel gauge driver"
	default n
	depends on (MFD_S2MU106) && I2C
	help
	 Say Y to include support
	 for S.LSI S2MU106 fuel gauge driver.
	 Ths fuel-gauge supports current tracking and
	 voltage tracking to model the battery SOC.

config FUELGAUGE_S2MU004
	tristate "S2MU004 fuel gauge driver"
	default n
	depends on (MFD_S2MU004) && I2C
	help
	 Say Y to include support
	 for S.LSI S2MU004 fuel gauge driver.
	 Ths fuel-gauge supports current tracking and
	 voltage tracking to model the battery SOC.

config FUELGAUGE_S2MU005
	tristate "S2MU005 fuel gauge driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for S.LSI S2MU005 fuel gauge driver.
	 Ths fuel-gauge supports current tracking and
	 voltage tracking to model the battery SOC.

config S2MU005_VOLT_MODE_TUNING
	tristate "S2MU005 volt mode tuning"
	default n
	depends on FUELGAUGE_S2MU005
	help
	 Say Y to include support 0x13
	 register volt tunning, so the value should be
	 existed in device tree to prevent wrong
	 fuelgauge parameter reading.

# Charger

config CHARGER_DUMMY
	tristate "dummy charger driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for dummy charger driver.
	 This driver source code implemented
	 skeleton source code for charger functions.

config CHARGER_MAX8903
	tristate "MAX8903 charger driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for MAXIM MAX8903 charger driver.
	 This driver source code implemented
	 all functions for MAX8903 charger.

config CHARGER_SMB328
	tristate "SMB328 charger driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for Summit SMB328 charger driver.
	 This driver source code implemented
	 all functions for SMB328 charger.

config CHARGER_SMB347
	tristate "SMB347 charger driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for Summit SMB347 charger driver.
	 This driver source code implemented
	 all functions for SMB347 charger.

config CHARGER_BQ24157
	tristate "BQ24157 charger driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for TI BQ24157 charger driver.
	 This driver source code implemented
	 all functions for BQ24157 charger.

config CHARGER_BQ24190
	tristate "BQ24190 charger driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for TI BQ24190 charger driver.
	 This driver source code implemented
	 all functions for BQ24190 charger.

config CHARGER_BQ24191
	tristate "BQ24191 charger driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for TI BQ24191 charger driver.
	 This driver source code implemented
	 all functions for BQ24191 charger.

config CHARGER_BQ24260
	tristate "BQ24260 charger driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for TI BQ24260 charger driver.
	 This driver source code implemented
	 all functions for BQ24260 charger.

config CHARGER_BQ25898S
	tristate "BQ25898S charger driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	 Say Y to include support
	 for TI BQ25898S charger driver.
	 This driver source code implemented
	 all functions for BQ25898S charger.

config CHARGER_MAX77693
	tristate "MAX77693 battery charger support"
	depends on MFD_MAX77693 && I2C
	help
	  Say Y here to enable support for the MAX77693 charger
	  MAX77693 incluse muic, pmic, haptic, led,
	  flash driver.
	  You have to define MFD_MAX77693

config CHARGER_MAX77823
	tristate "MAX77823 battery charger support"
	depends on BATTERY_SAMSUNG
	help
	  Say Y here to enable support for the MAX77823 charger

config CHARGER_MAX77843
	tristate "MAX77843 battery charger support"
	depends on BATTERY_SAMSUNG
	help
	  Say Y here to enable support for the MAX77843 charger

config CHARGER_MAX77833
	tristate "MAX77833 battery charger support"
	depends on BATTERY_SAMSUNG
	help
	  Say Y here to enable support for the MAX77833 charger

config CHARGER_MAX77854
	tristate "MAX77854 battery charger support"
	depends on BATTERY_SAMSUNG
	help
	  Say Y here to enable support for the MAX77854 charger

config CHARGER_MAX77865
	tristate "MAX77865 battery charger support"
	depends on BATTERY_SAMSUNG
	help
	  Say Y here to enable support for the MAX77865 charger

config CHARGER_MAX77804
	tristate "MAX77804 battery charger support"
	depends on (MFD_MAX77804 || MFD_MAX77804K) && I2C
	help
	  Say Y here to enable support for the MAX77804 charger
	  MAX77804 incluse muic, pmic, haptic, led,
	  flash driver.
	  You have to define MFD_MAX77804

config CHARGER_MAX77888
	tristate "MAX77888 battery charger support"
	depends on (MFD_MAX77888) && I2C
	help
	  Say Y here to enable support for the MAX77888 charger
	  MAX77888 incluse muic, pmic, haptic, led,
	  flash driver.
	  You have to define MFD_MAX77888

config CHARGER_S2MU003
        tristate "S2MU003 charger support"
        depends on (MFD_S2MU003) && I2C
        help
          Say Y here to enable support for the S2MU003 charger
          S2MU003 incluse pmic, led driver.
          You have to define MFD_S2MU003

config CHARGER_S2MU106
	tristate "S2MU106 charger support"
	depends on (MFD_S2MU106) && I2C
	help
	 Say Y here to enable support for the S2MU106 charger.
	 S2MU106 charger is an AFC compatible charging IC.
	 S2MU106 charger is dependent on MFD_S2MU106
	 so it needs to be defined.

config CHARGER_S2MU205
	tristate "S2MU205 charger support"
	depends on (MFD_S2MU205) && I2C
	help
	 Say Y here to enable support for the S2MU205 charger.
	 S2MU205 charger is an AFC compatible charging IC.
	 S2MU205 charger is dependent on MFD_S2MU205
	 so it needs to be defined.

config PM_S2MU106
	tristate "S2MU106 power meter support"
	depends on (MFD_S2MU106) && I2C
	help
	 Say Y here to enable support for the S2MU106 power meter.
	 S2MU106 power meter is dependent on MFD_S2MU106
	 so it needs to be defined.

config CHARGER_S2MU004
	tristate "S2MU004 charger support"
	depends on (MFD_S2MU004) && I2C
	help
	 Say Y here to enable support for the S2MU004 charger.
	 S2MU004 charger is an AFC compatible charging IC.
	 S2MU004 charger is dependent on MFD_S2MU004
	 so it needs to be defined.

config CHARGER_S2MU004_IVR_IRQ
	bool "Enable IVR IRQ support for S2MU004 CHARGER IC"
	default n
	depends on CHARGER_S2MU004
	help
	 Say Y here to enable IVR IRQ for S2MU004 charger.
	 IVR IRQ is used to detect input current reduction
	 that the IC is automatically performing so that the new
	 currents are also set and propagated in SW.
	 This is necessary to support Slow Charging concept.

config CHARGER_S2MU005
	tristate "S2MU005 charger support"
	depends on (MFD_S2MU005) && I2C
	help
	 Say Y here to enable support for the S2MU005 charger
	 S2MU005 includes pmic, led driver.
	 S2MU004 charger is dependent on MFD_S2MU004
	 so it needs to be defined.

config S2MU005_INNER_BATTERY
	tristate "S2MU005 inner battery type"
	depends on CHARGER_S2MU005
	help
	 Say Y here to enable support for the conditional execution
	 of code related to in-battery models using S2MU005 IFPMIC.
	 Some features of S2MU005 might not be necessary to be run for in-battery models.
	 Dependent on CHARGER_S2MU005

config S2MU005_DISABLE_BUCK_MODE
	bool "DISABLE buck on mode in S2MU005 charger"
	default n
	depends on CHARGER_S2MU005
	help
	 Say Y to disable use of buck on mode in S2MU005 IFPMIC.
	 When BUCK ON only mode is used it can have side-effects such as LCD flicker because of VSYS overshoot.
	 If model has to be compliant with BC1.2 spec we need to use this feature.
	 Enable feature based on model requirements.

config CHARGER_DA9155
	tristate "DA9155 charger driver"
	default n
	help
	Say Y here to support for the da9155 charger
	The DA9155 is a slave charger that extends
	the current capability of an existing charging solution.

config WIRELESS_CHARGER_HIGH_VOLTAGE
	tristate "high voltage wireless charger"
	depends on BATTERY_SAMSUNG && I2C
	help
	  Say Y here to enable support for the wireless charger charger
	  driver.

config CS100_JPNCONCEPT
	tristate "cs100 command support"
	depends on BATTERY_SAMSUNG && I2C
	help
	 Say Y here to support for CS100 command to stop when full-charged
	 on wireless charging for JPN models

config WIRELESS_CHARGER_BQ51221
        tristate "bq51221 battery charger support"
        depends on BATTERY_SAMSUNG && I2C
        help
          Say Y here to enable support for the bq51221 charger
          bq51221 wireless charger driver.

config WIRELESS_CHARGER_P9220
	tristate "p9220 battery charger support"
	depends on BATTERY_SAMSUNG && I2C
	help
	  Say Y here to enable support for the p9220 charger
	  p9220 wireless charger driver.

config WIRELESS_CHARGER_S2MIW03
	tristate "s2miw03 wireless battery charger support"
	depends on BATTERY_SAMSUNG && I2C
	help
	  Say Y here to enable support for the S2MIW03 charger
	  S2MIW03 wireless charger driver.

config WIRELESS_CHARGER_MFC
	tristate "MFC IC charger support"
	depends on BATTERY_SAMSUNG && I2C
	help
	  Say Y here to enable support for the MFC IC
	  MFC wireless charger driver.

config WIRELESS_FIRMWARE_UPDATE
	tristate "p9220 battery charger support"
	depends on BATTERY_SAMSUNG
	help
	  Say Y here to enable support for the wireless charger firmware update
	  wireless charger IC firmware update.

config AFC_CHARGER_MODE
	bool "afc charging support in sec battery driver"
	default n
	depends on BATTERY_SAMSUNG
	help
	  Say Y to include support for sec afc charging support

config SAMSUNG_LPM_MODE
	bool "Off charging mode support in sec battery driver"
	default n
	help
	  Say Y to include support for sec off charging support
	  This value defined at bootloader.
	  Before enable this feature,
	  implemet power off charging in the bootloader.

config EN_OOPS
	bool "enable oops filter"
	default n
	help
	  Say Y to enable oops filter

config STORE_MODE
       bool "enable store mode"
       default n
       help
	 Say Y to enable CONFIG_STORE_MODE

config QH_ALGORITHM
       bool "enable QH algorithm"
       default n
       help
	 Say Y to enable CONFIG_QH_ALGORITHM

config BATTERY_NOTIFIER
	bool "battery notifier"
	default n
	help
	  Say Y to enable battery notifier

config ENABLE_100MA_CHARGING_BEFORE_USB_CONFIGURED
	bool "enable 100mA before usb configured"
	default n
	help
	  Say Y to enable 100mA before usb configured

config ABNORMAL_BAT_THM_WA
	bool "enable SW Workaround for abnormal jump in battery thermistor ADC"
	default n
	help
	  Say Y to enable SW Workaround for abnormal jump in battery thermistor ADC

config S2MU004_MODE_CHANGE_BY_TOPOFF
	bool "enable s2mu004 mode change by topoff"
	default n
	help
	  Say Y to enable s2mu004 mode change by topoff
	  
config A10_FACTORY_MAX_SOC
	bool "enable maximum store mode SOC in factory binary"
	default n
	help
	  Say Y to enable  maximum store mode SOC in factory binary