GNU Linux-libre 6.7.9-gnu
[releases.git] / drivers / usb / typec / ucsi / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 config 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
28 if TYPEC_UCSI
29
30 config 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
40 config 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
52 config 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
62 config 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
72 endif