1# SPDX-License-Identifier: GPL-2.0 2 3config TYPEC_UCSI 4 tristate "USB Type-C Connector System Software Interface driver" 5 depends on !CPU_BIG_ENDIAN 6 depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH 7 select USB_COMMON if DEBUG_FS 8 help 9 USB Type-C Connector System Software Interface (UCSI) is a 10 specification for an interface that allows the operating system to 11 control the USB Type-C ports. On UCSI system the USB Type-C ports 12 function autonomously by default, but in order to get the status of 13 the ports and support basic operations like role swapping, the driver 14 is required. UCSI is available on most of the new Intel based systems 15 that are equipped with Embedded Controller and USB Type-C ports. 16 17 UCSI specification does not define the interface method, so depending 18 on the platform, ACPI, PCI, I2C, etc. may be used. Therefore this 19 driver only provides the core part, and separate drivers are needed 20 for every supported interface method. 21 22 The UCSI specification can be downloaded from: 23 https://www.intel.com/content/www/us/en/io/universal-serial-bus/usb-type-c-ucsi-spec.html 24 25 To compile the driver as a module, choose M here: the module will be 26 called typec_ucsi. 27 28if TYPEC_UCSI 29 30config UCSI_CCG 31 tristate "UCSI Interface Driver for Cypress CCGx" 32 depends on I2C 33 help 34 This driver enables UCSI support on platforms that expose a 35 Cypress CCGx Type-C controller over I2C interface. 36 37 To compile the driver as a module, choose M here: the module will be 38 called ucsi_ccg. 39 40config UCSI_ACPI 41 tristate "UCSI ACPI Interface Driver" 42 depends on ACPI 43 help 44 This driver enables UCSI support on platforms that expose UCSI 45 interface as ACPI device. On new Intel Atom based platforms starting 46 from Broxton SoCs and Core platforms stating from Skylake, UCSI is an 47 ACPI enumerated device. 48 49 To compile the driver as a module, choose M here: the module will be 50 called ucsi_acpi 51 52config UCSI_STM32G0 53 tristate "UCSI Interface Driver for STM32G0" 54 depends on I2C 55 help 56 This driver enables UCSI support on platforms that expose a STM32G0 57 Type-C controller over I2C interface. 58 59 To compile the driver as a module, choose M here: the module will be 60 called ucsi_stm32g0. 61 62config UCSI_PMIC_GLINK 63 tristate "UCSI Qualcomm PMIC GLINK Interface Driver" 64 depends on QCOM_PMIC_GLINK 65 help 66 This driver enables UCSI support on platforms that expose UCSI 67 interface as PMIC GLINK device. 68 69 To compile the driver as a module, choose M here: the module will be 70 called ucsi_glink. 71 72config UCSI_LENOVO_YOGA_C630 73 tristate "UCSI Interface Driver for Lenovo Yoga C630" 74 depends on EC_LENOVO_YOGA_C630 75 help 76 This driver enables UCSI support on the Lenovo Yoga C630 laptop. 77 78 To compile the driver as a module, choose M here: the module will be 79 called ucsi_yoga_c630. 80 81endif 82