UCSI, TCPM, PD, AltModes: Demystifying USB-C and Its Support in Linux
summary
Overview of how Linux actually implements USB‑C: kernel exposes a tcpm state machine for PD and alt‑modes, device trees / ACPI describe muxes, retimers and CC orientation, and Qualcomm boards put Type‑C logic in the PMIC with a tcpm glue driver. UCSI is a firmware interface that historically lacks vendor VDMs, so Linux provides a host alt‑mode shim; display‑port out‑of‑band messages and some Qualcomm UC SI variants still need upstream patches (parts land in 6.11/6.12).
AI-written summary · about
chapters (16)
- 0:00USB-C complexity
- 1:04USB standards history
- 6:07USB-C connectors evolution
- 9:00USB-C pins and channels
- 11:30USB-C alternative modes
- 14:53Linux USB-C kernel support
- 17:25TCPM in Linux
- 19:11Type-C Port Controller Interface (TCPCI)
- 20:14UCSI firmware management
- 22:44Alt mode drivers
- 25:12USB-C hardware bring-up
- 26:13Device Tree for USB-C
- 28:00Qualcomm USB-C implementation
- 30:54DisplayPort over USB-C
- 33:25DRM connector challenges
- 35:33Summary and Q&A
related talks
43mUCSI, TCPM, PD, AltModes: Demystifying USB-C and Its Support in Linux
40mA Tour of USB Device Controller (UDC) in Linux
43mLinux Power! (from the Perspective of a PMIC Vendor)
49mSD/eMMC: New Speed Modes and Their Support in Linux
40mUSB on Embedded Linux Systems Deep Dive
35mIntroducing UACCE Bus of DPDK
29mCXL HDM-DB support for Linux
14mPCI Pwrctrl woes
