xref: /linux/drivers/usb/typec/ucsi/Kconfig (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
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