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