| # SPDX-License-Identifier: GPL-2.0 |
| |
| config TYPEC_UCSI |
| tristate "USB Type-C Connector System Software Interface driver" |
| depends on !CPU_BIG_ENDIAN |
| depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH |
| select USB_COMMON if DEBUG_FS |
| help |
| USB Type-C Connector System Software Interface (UCSI) is a |
| specification for an interface that allows the operating system to |
| control the USB Type-C ports. On UCSI system the USB Type-C ports |
| function autonomously by default, but in order to get the status of |
| the ports and support basic operations like role swapping, the driver |
| is required. UCSI is available on most of the new Intel based systems |
| that are equipped with Embedded Controller and USB Type-C ports. |
| |
| UCSI specification does not define the interface method, so depending |
| on the platform, ACPI, PCI, I2C, etc. may be used. Therefore this |
| driver only provides the core part, and separate drivers are needed |
| for every supported interface method. |
| |
| The UCSI specification can be downloaded from: |
| https://www.intel.com/content/www/us/en/io/universal-serial-bus/usb-type-c-ucsi-spec.html |
| |
| To compile the driver as a module, choose M here: the module will be |
| called typec_ucsi. |
| |
| if TYPEC_UCSI |
| |
| config UCSI_CCG |
| tristate "UCSI Interface Driver for Cypress CCGx" |
| depends on I2C |
| help |
| This driver enables UCSI support on platforms that expose a |
| Cypress CCGx Type-C controller over I2C interface. |
| |
| To compile the driver as a module, choose M here: the module will be |
| called ucsi_ccg. |
| |
| config UCSI_ACPI |
| tristate "UCSI ACPI Interface Driver" |
| depends on ACPI |
| help |
| This driver enables UCSI support on platforms that expose UCSI |
| interface as ACPI device. On new Intel Atom based platforms starting |
| from Broxton SoCs and Core platforms stating from Skylake, UCSI is an |
| ACPI enumerated device. |
| |
| To compile the driver as a module, choose M here: the module will be |
| called ucsi_acpi |
| |
| config UCSI_STM32G0 |
| tristate "UCSI Interface Driver for STM32G0" |
| depends on I2C |
| help |
| This driver enables UCSI support on platforms that expose a STM32G0 |
| Type-C controller over I2C interface. |
| |
| To compile the driver as a module, choose M here: the module will be |
| called ucsi_stm32g0. |
| |
| config UCSI_PMIC_GLINK |
| tristate "UCSI Qualcomm PMIC GLINK Interface Driver" |
| depends on QCOM_PMIC_GLINK |
| help |
| This driver enables UCSI support on platforms that expose UCSI |
| interface as PMIC GLINK device. |
| |
| To compile the driver as a module, choose M here: the module will be |
| called ucsi_glink. |
| |
| config UCSI_LENOVO_YOGA_C630 |
| tristate "UCSI Interface Driver for Lenovo Yoga C630" |
| depends on EC_LENOVO_YOGA_C630 |
| help |
| This driver enables UCSI support on the Lenovo Yoga C630 laptop. |
| |
| To compile the driver as a module, choose M here: the module will be |
| called ucsi_yoga_c630. |
| |
| endif |