# SPDX-License-Identifier: GPL-2.0

config TYPEC_TCPM
	tristate "USB Type-C Port Controller Manager"
	depends on USB
	select USB_ROLE_SWITCH
	select POWER_SUPPLY
	help
	  The Type-C Port Controller Manager provides a USB PD and USB Type-C
	  state machine for use with Type-C Port Controllers.

if TYPEC_TCPM

config TYPEC_TCPCI
	tristate "Type-C Port Controller Interface driver"
	depends on I2C
	select REGMAP_I2C
	help
	  Type-C Port Controller driver for TCPCI-compliant controller.

if TYPEC_TCPCI

config TYPEC_RT1711H
	tristate "Richtek RT1711H Type-C chip driver"
	help
	  Richtek RT1711H Type-C chip driver that works with
	  Type-C Port Controller Manager to provide USB PD and USB
	  Type-C functionalities.

config TYPEC_MT6360
	tristate "Mediatek MT6360 Type-C driver"
	depends on MFD_MT6360
	help
	  Mediatek MT6360 is a multi-functional IC that includes
	  USB Type-C. It works with Type-C Port Controller Manager
	  to provide USB PD and USB Type-C functionalities.

config TYPEC_TCPCI_MAXIM
	tristate "Maxim TCPCI based Type-C chip driver"
	help
	  MAXIM TCPCI based Type-C/PD chip driver. Works with
	  with Type-C Port Controller Manager.

endif # TYPEC_TCPCI

config TYPEC_FUSB302
	tristate "Fairchild FUSB302 Type-C chip driver"
	depends on I2C
	depends on EXTCON || !EXTCON
	help
	  The Fairchild FUSB302 Type-C chip driver that works with
	  Type-C Port Controller Manager to provide USB PD and USB
	  Type-C functionalities.

config TYPEC_WCOVE
	tristate "Intel WhiskeyCove PMIC USB Type-C PHY driver"
	depends on ACPI
	depends on MFD_INTEL_PMC_BXT
	depends on INTEL_SOC_PMIC
	depends on BXT_WC_PMIC_OPREGION
	help
	  This driver adds support for USB Type-C on Intel Broxton platforms
	  that have Intel Whiskey Cove PMIC. The driver works with USB Type-C
	  Port Controller Manager to provide USB PD and Type-C functionalities.

	  To compile this driver as module, choose M here: the module will be
	  called typec_wcove.ko

endif # TYPEC_TCPM
