drivers/usb/typec/ucsi/Kconfig
Source file repositories/reference/linux-study-clean/drivers/usb/typec/ucsi/Kconfig
File Facts
- System
- Linux kernel
- Corpus path
drivers/usb/typec/ucsi/Kconfig- Extension
[no extension]- Size
- 3668 bytes
- Lines
- 108
- Domain
- Driver Families
- Bucket
- drivers/usb
- Inferred role
- Driver Families: build/configuration rule
- Status
- atlas-only
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
# 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.
Annotation
- Atlas domain: Driver Families / drivers/usb.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.