2025-09-28 –, Gray Hall
USB Type-C is not just a different connector type but also a different internal structure in the system. For example, a USB Type-A port on your laptop is usually a USB host, not a USB device. In the case of USB Type-C, the host/device role cannot be determined since the cable has no pre-defined direction. This role selection is resolved by a controller on your laptop, and it is independent of the USB host controller interface, such as xHCI.
This talk covers the technical aspects of USB-C systems and hardware structure, and then the author's development experience of device drivers for USB-C port control on FreeBSD and other *BSD operating systems. Most operating systems support Intel USB Type-C Connector System Software Interface (UCSI), which enables the OS to communicate with the embedded controller. More specifically, USB-PD charging direction control, DisplayPort alt mode, and other useful functionality can be supported with the software implementation on the OS side.
Hiroki Sato is an assistant professor at Institute of Science Tokyo. He is a member of the FreeBSD core team and has been a FreeBSD committer since 2001.