# SPDX-License-Identifier: GPL-2.0 menuconfig [31mCONFIG_TYPEC[0m tristate "USB Type-C Support" help [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m Specification defines a cable and connector for [31mCONFIG_USB[0m where only one type of plug is supported on both ends, i.e. there will not be Type-[31mCONFIG_A[0m plug on one end of the cable and Type-[31mCONFIG_B[0m plug on the other. Determination of the host-to-device relationship happens through a specific Configuration Channel (CC) which goes through the [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m cable. The Configuration Channel may also be used to detect optional Accessory Modes - Analog Audio and Debug - and if [31mCONFIG_USB[0m Power Delivery is supported, the Alternate Modes, where the connector is used for something else then [31mCONFIG_USB[0m communication. [31mCONFIG_USB[0m Power Delivery Specification defines a protocol that can be used to negotiate the voltage and current levels with the connected partners. [31mCONFIG_USB[0m Power Delivery allows higher voltages then the normal 5V, up to 20V, and current up to 5A over the cable. The [31mCONFIG_USB[0m Power Delivery protocol is also used to negotiate the optional Alternate Modes when they are supported. [31mCONFIG_USB[0m Power Delivery does not depend on [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m connector, however it is mostly used together with [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m connectors. [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m and [31mCONFIG_USB[0m Power Delivery Specifications define a set of state machines that need to be implemented in either software or firmware. Simple [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m PHYs, for example [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m Port Controller Interface Specification compliant "Port Controllers" need the state machines to be handled in the OS, but stand-alone [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m and Power Delivery controllers handle the state machines inside their firmware. The [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m and Power Delivery controllers usually function autonomously, and do not necessarily require drivers. Enable this configurations option if you have [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m connectors on your system and 1) you know your [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m hardware requires OS control (a driver) to function, or 2) if you need to be able to read the status of the [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m 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 [31mCONFIG_USB[0m Type-[31mCONFIG_C[0m 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 [31mCONFIG_TYPEC[0m source "drivers/usb/typec/tcpm/Kconfig" source "drivers/usb/typec/ucsi/Kconfig" config [31mCONFIG_TYPEC_TPS6598X[0m tristate "TI TPS6598x USB Power Delivery controller driver" depends on [31mCONFIG_I2C[0m select [31mCONFIG_REGMAP_I2C[0m help Say Y or [31mCONFIG_M[0m here if your system has TI TPS65982 or TPS65983 [31mCONFIG_USB[0m 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" source "drivers/usb/typec/altmodes/Kconfig" endif # [31mCONFIG_TYPEC[0m |