staging: typec: USB Type-C Port Manager (tcpm)
authorGuenter Roeck <groeck@chromium.org>
Thu, 27 Apr 2017 21:09:56 +0000 (14:09 -0700)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:36:18 +0000 (15:36 -0500)
commitf5146cbb94bb8b63f0b81a347f4e0cf4c6420940
tree59c6bc45d66ea0c49bdb193c7ac98e135c50d6c7
parent933f4f1450c67812167c3d412c24c5c7b929d3d2
staging: typec: USB Type-C Port Manager (tcpm)

This driver implements the USB Type-C Power Delivery state machine
for both source and sink ports. Alternate mode support is not
fully implemented.

The driver attaches to the USB Type-C class code implemented in
the following patches.

usb: typec: add driver for Intel Whiskey Cove PMIC USB Type-C PHY
usb: USB Type-C connector class

This driver only implements the state machine. Lower level drivers are
responsible for
- Reporting VBUS status and activating VBUS
- Setting CC lines and providing CC line status
- Setting line polarity
- Activating and deactivating VCONN
- Setting the current limit
- Activating and deactivating PD message transfers
- Sending and receiving PD messages

The driver provides both a functional API as well as callbacks for
lower level drivers.

Signed-off-by: Guenter Roeck <groeck@chromium.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit f0690a25a140b853b1842fa80faf828601bb47e8)
drivers/staging/Kconfig
drivers/staging/Makefile
drivers/staging/typec/Kconfig [new file with mode: 0644]
drivers/staging/typec/Makefile [new file with mode: 0644]
drivers/staging/typec/TODO [new file with mode: 0644]
drivers/staging/typec/pd.h [new file with mode: 0644]
drivers/staging/typec/pd_bdo.h [new file with mode: 0644]
drivers/staging/typec/pd_vdo.h [new file with mode: 0644]
drivers/staging/typec/tcpm.c [new file with mode: 0644]
drivers/staging/typec/tcpm.h [new file with mode: 0644]