Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 
0003 menuconfig TYPEC
0004         tristate "USB Type-C Support"
0005         help
0006           USB Type-C Specification defines a cable and connector for USB where
0007           only one type of plug is supported on both ends, i.e. there will not
0008           be Type-A plug on one end of the cable and Type-B plug on the other.
0009           Determination of the host-to-device relationship happens through a
0010           specific Configuration Channel (CC) which goes through the USB Type-C
0011           cable. The Configuration Channel may also be used to detect optional
0012           Accessory Modes - Analog Audio and Debug - and if USB Power Delivery
0013           is supported, the Alternate Modes, where the connector is used for
0014           something else then USB communication.
0015 
0016           USB Power Delivery Specification defines a protocol that can be used
0017           to negotiate the voltage and current levels with the connected
0018           partners. USB Power Delivery allows higher voltages then the normal
0019           5V, up to 20V, and current up to 5A over the cable. The USB Power
0020           Delivery protocol is also used to negotiate the optional Alternate
0021           Modes when they are supported. USB Power Delivery does not depend on
0022           USB Type-C connector, however it is mostly used together with USB
0023           Type-C connectors.
0024 
0025           USB Type-C and USB Power Delivery Specifications define a set of state
0026           machines that need to be implemented in either software or firmware.
0027           Simple USB Type-C PHYs, for example USB Type-C Port Controller
0028           Interface Specification compliant "Port Controllers" need the state
0029           machines to be handled in the OS, but stand-alone USB Type-C and Power
0030           Delivery controllers handle the state machines inside their firmware.
0031           The USB Type-C and Power Delivery controllers usually function
0032           autonomously, and do not necessarily require drivers.
0033 
0034           Enable this configurations option if you have USB Type-C connectors on
0035           your system and 1) you know your USB Type-C hardware requires OS
0036           control (a driver) to function, or 2) if you need to be able to read
0037           the status of the USB Type-C ports in your system, or 3) if you need
0038           to be able to swap the power role (decide are you supplying or
0039           consuming power over the cable) or data role (host or device) when
0040           both roles are supported.
0041 
0042           For more information, see the kernel documentation for USB Type-C
0043           Connector Class API (Documentation/driver-api/usb/typec.rst)
0044           <https://www.kernel.org/doc/html/latest/driver-api/usb/typec.html>
0045           and ABI (Documentation/ABI/testing/sysfs-class-typec).
0046 
0047 if TYPEC
0048 
0049 source "drivers/usb/typec/tcpm/Kconfig"
0050 
0051 source "drivers/usb/typec/ucsi/Kconfig"
0052 
0053 source "drivers/usb/typec/tipd/Kconfig"
0054 
0055 config TYPEC_ANX7411
0056         tristate "Analogix ANX7411 Type-C DRP Port controller driver"
0057         depends on I2C
0058         depends on USB_ROLE_SWITCH
0059         depends on POWER_SUPPLY
0060         help
0061           Say Y or M here if your system has Analogix ANX7411 Type-C DRP Port
0062           controller driver.
0063 
0064           If you choose to build this driver as a dynamically linked module, the
0065           module will be called anx7411.ko.
0066 
0067 config TYPEC_RT1719
0068         tristate "Richtek RT1719 Sink Only Type-C controller driver"
0069         depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH
0070         depends on I2C
0071         depends on POWER_SUPPLY
0072         select REGMAP_I2C
0073         help
0074           Say Y or M here if your system has Richtek RT1719 sink only
0075           Type-C port controller driver.
0076 
0077           If you choose to build this driver as a dynamically linked module, the
0078           module will be called rt1719.ko
0079 
0080 config TYPEC_HD3SS3220
0081         tristate "TI HD3SS3220 Type-C DRP Port controller driver"
0082         depends on I2C
0083         depends on USB_ROLE_SWITCH
0084         help
0085           Say Y or M here if your system has TI HD3SS3220 Type-C DRP Port
0086           controller driver.
0087 
0088           If you choose to build this driver as a dynamically linked module, the
0089           module will be called hd3ss3220.ko.
0090 
0091 config TYPEC_STUSB160X
0092         tristate "STMicroelectronics STUSB160x Type-C controller driver"
0093         depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH
0094         depends on I2C
0095         select REGMAP_I2C
0096         help
0097           Say Y or M here if your system has STMicroelectronics STUSB160x
0098           Type-C port controller.
0099 
0100           If you choose to build this driver as a dynamically linked module, the
0101           module will be called stusb160x.ko.
0102 
0103 config TYPEC_QCOM_PMIC
0104         tristate "Qualcomm PMIC USB Type-C driver"
0105         depends on ARCH_QCOM || COMPILE_TEST
0106         depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH
0107         help
0108           Driver for supporting role switch over the Qualcomm PMIC.  This will
0109           handle the USB Type-C role and orientation detection reported by the
0110           QCOM PMIC if the PMIC has the capability to handle USB Type-C
0111           detection.
0112 
0113           It will also enable the VBUS output to connected devices when a
0114           DFP connection is made.
0115 
0116 config TYPEC_WUSB3801
0117         tristate "Willsemi WUSB3801 Type-C port controller driver"
0118         depends on I2C
0119         select REGMAP_I2C
0120         help
0121           Say Y or M here if your system has a WUSB3801 Type-C port controller.
0122 
0123           If you choose to build this driver as a dynamically linked module, the
0124           module will be called wusb3801.ko.
0125 
0126 source "drivers/usb/typec/mux/Kconfig"
0127 
0128 source "drivers/usb/typec/altmodes/Kconfig"
0129 
0130 endif # TYPEC