USB Type-C Connector System Software Interface driver

modulename: typec_ucsi.ko

configname: CONFIG_TYPEC_UCSI

Linux Kernel Configuration
└─>Device Drivers
└─>USB support
└─>USB Power Delivery and Type-C drivers
└─>USB Type-C Connector System Software Interface driver
In linux kernel since version 3.10 (release Date: 2013-06-30)  
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:
http://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.

source code: