| menuconfig TYPEC | |
| tristate "USB Type-C Support" | |
| help | |
| USB Type-C Specification defines a cable and connector for USB where | |
| only one type of plug is supported on both ends, i.e. there will not | |
| be Type-A plug on one end of the cable and Type-B plug on the other. | |
| Determination of the host-to-device relationship happens through a | |
| specific Configuration Channel (CC) which goes through the USB Type-C | |
| cable. The Configuration Channel may also be used to detect optional | |
| Accessory Modes - Analog Audio and Debug - and if USB Power Delivery | |
| is supported, the Alternate Modes, where the connector is used for | |
| something else then USB communication. | |
| USB Power Delivery Specification defines a protocol that can be used | |
| to negotiate the voltage and current levels with the connected | |
| partners. USB Power Delivery allows higher voltages then the normal | |
| 5V, up to 20V, and current up to 5A over the cable. The USB Power | |
| Delivery protocol is also used to negotiate the optional Alternate | |
| Modes when they are supported. USB Power Delivery does not depend on | |
| USB Type-C connector, however it is mostly used together with USB | |
| Type-C connectors. | |
| USB Type-C and USB Power Delivery Specifications define a set of state | |
| machines that need to be implemented in either software or firmware. | |
| Simple USB Type-C PHYs, for example USB Type-C Port Controller | |
| Interface Specification compliant "Port Controllers" need the state | |
| machines to be handled in the OS, but stand-alone USB Type-C and Power | |
| Delivery controllers handle the state machines inside their firmware. | |
| The USB Type-C and Power Delivery controllers usually function | |
| autonomously, and do not necessarily require drivers. | |
| Enable this configurations option if you have USB Type-C connectors on | |
| your system and 1) you know your USB Type-C hardware requires OS | |
| control (a driver) to function, or 2) if you need to be able to read | |
| the status of the USB Type-C ports in your system, or 3) if you need | |
| to be able to swap the power role (decide are you supplying or | |
| consuming power over the cable) or data role (host or device) when | |
| both roles are supported. | |
| For more information, see the kernel documentation for USB Type-C | |
| Connector Class API (Documentation/driver-api/usb/typec.rst) | |
| <https://www.kernel.org/doc/html/latest/driver-api/usb/typec.html> | |
| and ABI (Documentation/ABI/testing/sysfs-class-typec). | |
| if TYPEC | |
| 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 | |
| source "drivers/usb/typec/fusb302/Kconfig" | |
| config TYPEC_WCOVE | |
| tristate "Intel WhiskeyCove PMIC USB Type-C PHY driver" | |
| depends on ACPI | |
| depends on INTEL_SOC_PMIC | |
| depends on INTEL_PMC_IPC | |
| depends on BXT_WC_PMIC_OPREGION | |
| help | |
| This driver adds support for USB Type-C detection on Intel Broxton | |
| platforms that have Intel Whiskey Cove PMIC. The driver can detect the | |
| role and cable orientation. | |
| To compile this driver as module, choose M here: the module will be | |
| called typec_wcove | |
| endif # TYPEC_TCPM | |
| source "drivers/usb/typec/ucsi/Kconfig" | |
| config TYPEC_TPS6598X | |
| tristate "TI TPS6598x USB Power Delivery controller driver" | |
| depends on I2C | |
| help | |
| Say Y or M here if your system has TI TPS65982 or TPS65983 USB Power | |
| Delivery controller. | |
| If you choose to build this driver as a dynamically linked module, the | |
| module will be called tps6598x.ko. | |
| source "drivers/usb/typec/mux/Kconfig" | |
| endif # TYPEC |