#
# MUIC devices
#

comment "MUIC configs"

config USE_MUIC
	bool "Using MUIC device driver"
	depends on I2C
	default n
	help
	  If you say yes here you will get support for
	  the MUIC device driver.

config USE_SAFEOUT
	bool "Using SAFEOUT device driver"
	depends on I2C
	default n
	help
	  If you say yes here you will get support for
	  the SAFEOUT device driver.

config MUIC_NOTIFIER
	bool "MUIC notifier support"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for
	  the MUIC attached device status change notification.

config MUIC_MANAGER
	bool "MUIC Manager supports CCIC chip interface"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support manager for the CCIC chip.

config MUIC_CORE
	bool "Supports MUIC Core"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for the MUIC Core functionalities

config MUIC_HV
	bool "MUIC_HV"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for the AFC.

config MUIC_HV_12V
	bool "MUIC_HV_12V"
	depends on MUIC_HV
	default n
	help
	  If you say yes here you will get support for the AFC.

config HV_MUIC_VOLTAGE_CTRL
	bool "Using AFC Voltage control functionality"
	depends on MUIC_HV
	default n
	help
	  If you say yes here you will get support for
	  the AFC voltage control functionality.

config MUIC_SUPPORT_CCIC
	bool "MUIC supports CCIC chip interface"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for the CCIC chip.

config MUIC_SUPPORT_POWERMETER
	bool "MUIC supports PM chip interface"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for the Power Meter.

config MUIC_SYSFS
	bool "Using muic sysfs Features"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for the muic sysfs.

config MUIC_SUPPORT_VBUS_BOOST
	bool "Using muic Features for vbus boost"
	depends on USE_MUIC && BATTERY_SAMSUNG_V2
	default n
	help
	  If you say yes here you will get support for the muic vbus boosting.

config MUIC_SKIP_INCOMPLETE_INSERT
	bool "Not Using muic Features for incomplete insert"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for the muic incomplete insert.

config MUIC_S2MU106
	bool "Using S2MU106 MUIC"
	depends on USE_MUIC && MFD_S2MU106
	default n
	help
	  If you say yes here you will get support for the S2MU106 MUIC chip.

config HV_MUIC_S2MU106_AFC
	bool "Using S2MU106 MUIC AFC"
	depends on MUIC_HV && MUIC_S2MU106
	default n
	help
	  If you say yes here you will get support for the AFC.

config MUIC_S2MU106_RID
	bool "Using S2MU106 MUIC RID"
	depends on MUIC_S2MU106
	default n
	help
	  If you say yes here you will get support for the S2MU106 MUIC RID functions.

config S2MU106_TYPEC_WATER
	bool "Using S2MU106 Type-C Water Detection"
	depends on MUIC_S2MU106_RID
	default n
	help
	  If you say yes here you will get support for
	  the S2MU106 Type-C Water functions.

config CP_UART_SWITCH
	bool "Using CP UART PATH"
	depends on USE_MUIC
	default n
	help
		If you say yes here you will get support for
		for the cp uart path feature.

config NEW_FACTORY_JIGONB
	bool "Using JIGONB control"
	depends on USE_MUIC
	default n
	help
		If you say yes here you will get support for
		for the jigonb control.

config NEW_FACTORY_UART
	bool "Using factory uart control"
	depends on USE_MUIC
	default n
	help
		If you say yes here you will get support for
		for the factory uart control.

config MUIC_INCOMPATIBLE_VZW
	bool "Using Verizon incomatible type"
	depends on USE_MUIC
	default n
	help
		If you say yes here you will get support for
		for the Verizon incomatible type cable.

config MUIC_SM5713
	bool "SM5713 MUIC"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for the SM5713 MUIC chip.

config MUIC_BCD_RESCAN
	bool "SM MUIC supports BC 1.2 retry"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for the BC 1.2 retry in SM MUIC chip.

config MUIC_SM5713_BC1_2_CERTI
	bool "MUIC_SM5713_BC1_2_CERTI"
	depends on MUIC_SM5713 && MUIC_SUPPORT_CCIC
	default n
	help
	  If you say yes here you will get support for BC12 certification of SM5713 one chip.

config HICCUP_CHARGER
	bool "Using HICCUP charger"
	depends on USE_MUIC && !SEC_FACTORY
	default n
	help
	  If you say yes here you will get support for
	  for the hiccup charger feature.

config MUIC_HV_SUPPORT_POGO_DOCK
	bool "MUIC_HV_SUPPORT_POGO_DOCK"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for the AFC pogo dock.

config MUIC_TEST_FUNC
	bool "MUIC supports several function's in TEST"
	depends on SEC_DEBUG && !SAMSUNG_PRODUCT_SHIP
	default n
	help
	  If you say yes here you will get support for the TEST function's.

config MUIC_SUPPORT_PRSWAP
	bool "MUIC supports power role swap"
	depends on USE_MUIC
	default n
	help
	  If you say yes here you will get support for the power role swap.

