usb: Add driver for UCSI
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Thu, 21 Apr 2016 12:43:40 +0000 (15:43 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Apr 2016 22:29:18 +0000 (15:29 -0700)
commit0c1849a8c7af652c92ad0265a7ca5934fd773c69
treee2ba508126392d1276670bef20593eed8735f5f6
parentdc5878abf49c06b9c1d3d161760957a98ab970bf
usb: Add driver for UCSI

USB Type-C Connector System Software Interface (UCSI) is
specification that defines the registers and data structures
that can be used to control USB Type-C ports on a system.
UCSI is used on several Intel Broxton SoC based platforms.
Things that UCSI can be used to control include at least USB
Data Role swapping, Power Role swapping and controlling of
Alternate Modes on top of providing general details about
the port and the partners that are attached to it.

The initial purpose of the UCSI driver is to make sure USB
is in host mode on desktop and server systems that are USB
dual role capable, and provide UCSI interface.

The goal is to integrate the driver later to an USB Type-C
framework for Linux kernel, and at the same time add support
for more extensive USB Type-C port control that UCSI offers,
for example data role swapping, power role swapping,
Alternate Mode control etc.

The UCSI specification is public can be obtained from here:
http://www.intel.com/content/www/us/en/io/universal-serial-bus/usb-type-c-ucsi-spec.html

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/Kconfig
drivers/usb/misc/Makefile
drivers/usb/misc/ucsi.c [new file with mode: 0644]
drivers/usb/misc/ucsi.h [new file with mode: 0644]