Hiroki Sato
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.
Session
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.