[PATCH 00/14] TCPM support for FRS and AutoDischarge Disconnect

From: Badhri Jagan Sridharan
Date: Tue Aug 25 2020 - 00:22:23 EST


Hi all,

With this patchset, I am hoping to add Sink Fast Role swap support to TCPM.
Sink Fast Role swap is described by the USB Power Delivery Specification
Revision 3.0. The patchset also adds support to Auto Discharge Disconnect
described in the USB Type-C Port Controller Interface Specification.
I am also sending the chip level driver for the TCPCI based type-c controller
that supports Fast role swap.

I tested the fast role swap implementation with the following
accessories:
1. https://ezq.com/usb-c-multimedia-hub-adapter-8-ports.html
2. https://www.iogear.com/product/GUH3C22P/

Note: I will rebase the patchset on top of https://lkml.org/lkml/2020/8/19/52
once it's picked up in usb-next.

Badhri Jagan Sridharan (14):
usb: typec: tcpci: Add register definitions to tcpci
usb: typec: tcpci: Add support when hidden tx registers are
inaccessible
usb: typec: tcpci: update ROLE_CONTROL for DRP
usb: typec: tcpci: Add a getter method to retrieve tcpm_port reference
usb: typec: tcpci: Add set_vbus tcpci callback
dt-bindings: usb: Maxim type-c controller device tree binding document
usb: typec: tcpci_maxim: Chip level TCPC driver
dt-bindings: connector: Add property to set initial current cap for
FRS
usb: typec: tcpm: Add support for Sink Fast Role SWAP(FRS)
usb: typec: tcpci: Implement callbacks for FRS
usb: typec: tcpci_maxim: Add support for Sink FRS
usb: typec: tcpm: Implement enabling Auto Discharge disconnect support
usb: typec: tcpci: Implement Auto discharge disconnect callbacks
usb: typec: tcpci_maxim: Implemnent set_auto_vbus_discharge_threshold

.../bindings/connector/usb-connector.txt | 128 ++++
.../devicetree/bindings/usb/maxim,tcpci.txt | 44 ++
drivers/usb/typec/tcpm/Kconfig | 6 +
drivers/usb/typec/tcpm/Makefile | 13 +-
drivers/usb/typec/tcpm/tcpci.c | 149 ++++-
drivers/usb/typec/tcpm/tcpci.h | 43 ++
drivers/usb/typec/tcpm/tcpci_maxim.c | 564 ++++++++++++++++++
drivers/usb/typec/tcpm/tcpm.c | 271 ++++++++-
include/dt-bindings/usb/pd.h | 10 +
include/linux/usb/pd.h | 20 +-
include/linux/usb/tcpm.h | 24 +-
include/linux/usb/typec.h | 13 +
12 files changed, 1249 insertions(+), 36 deletions(-)
create mode 100644 Documentation/devicetree/bindings/connector/usb-connector.txt
create mode 100644 Documentation/devicetree/bindings/usb/maxim,tcpci.txt
create mode 100644 drivers/usb/typec/tcpm/tcpci_maxim.c

--
2.28.0.297.g1956fa8f8d-goog