[PATHCv10 0/2] USB Type-C Connector class

From: Heikki Krogerus
Date: Mon Sep 19 2016 - 07:17:14 EST

The USB Type-C class is meant to provide unified interface to the
userspace to present the USB Type-C ports in a system.

Changes since v9:
- Minor typec_wcove.c cleanup as proposed by Guenter Roeck. No
function affect.

Changes since v8:
- checking sysfs_streq() result correctly in sysfs_strmatch
- fixed accessory check in supported_accessory_mode
- using "none" as the only string that can clear the preferred role

Changes since v7:
- Removed "type" attribute from partners
- Added supports_usb_power_delivery attribute for partner and cable

Changes since v6:
- current_vconn_role attr renamed to vconn_source (no API changes)
- Small documentation improvements proposed by Vincent Palatin

Changes since v5:
- Only updating the roles based on driver notifications
- Added MODULE_ALIAS for the WhiskeyCove module
- Including the patch that creates the actual platform device for the
WhiskeyCove Type-C PHY in this series.

Changes since v4:
- Remove the port lock completely

Changes since v3:
- Documentation cleanup as proposed by Roger Quadros
- Setting partner altmodes member to NULL on removal and fixing a
warning, as proposed by Guenter Roeck
- Added the following attributes for partners and cables:
* supports_usb_power_delivery
* id_header_vdo
- "id_header_vdo" is visible only when the partner or cable supports
USB Power Delivery communication.
- Partner attribute "accessory" is hidden when the partner type is not

Changes since v2:
- Notification on role and alternate mode changes
- cleanups

Changes since v1:
- Completely rewrote alternate mode support
- Patners, cables and cable plugs presented as devices.

Heikki Krogerus (2):
usb: USB Type-C connector class
usb: typec: add driver for Intel Whiskey Cove PMIC USB Type-C PHY

Documentation/ABI/testing/sysfs-class-typec | 218 ++++++
Documentation/usb/typec.txt | 103 +++
drivers/usb/Kconfig | 2 +
drivers/usb/Makefile | 2 +
drivers/usb/typec/Kconfig | 21 +
drivers/usb/typec/Makefile | 2 +
drivers/usb/typec/typec.c | 1075 +++++++++++++++++++++++++++
drivers/usb/typec/typec_wcove.c | 372 +++++++++
include/linux/usb/typec.h | 252 +++++++
10 files changed, 2056 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-class-typec
create mode 100644 Documentation/usb/typec.txt
create mode 100644 drivers/usb/typec/Kconfig
create mode 100644 drivers/usb/typec/Makefile
create mode 100644 drivers/usb/typec/typec.c
create mode 100644 drivers/usb/typec/typec_wcove.c
create mode 100644 include/linux/usb/typec.h