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

From: Badhri Jagan Sridharan
Date: Mon Sep 28 2020 - 22:40:15 EST


Hi,

Addressed three comments from v8:
1. Fixed the make dt_binding_check that Rob Herring pointed out in
"dt-bindings: usb: Maxim type-c controller device tree binding
document"
https://lkml.org/lkml/2020/9/22/720

2. Moved to string based enums for new-source-frs-typec-current to
address comments from Rob herring for:
"dt-bindings: connector: Add property to set initial current cap
for FRS". As a result, introduced another patch:
"usb: typec: tcpm: Parse frs type-c current from device tree"
to refactor tcpm code to read new-source-frs-typec-current from
device tree. Previously this is was a uint32.
https://lkml.org/lkml/2020/9/22/729

3. To address Heikki's comment on Auto discharge disconnect threshold
https://lkml.org/lkml/2020/9/21/1857
a. Removed the call to tcpm_set_auto_vbus_discharge_threshold
from source attach path.
b. Moved logic of setting TCPC_VBUS_SINK_DISCONNECT_THRESH_MAX to
tcpci.c as the tcpci_maxim was actually setting the default
values. Removed the get_auto_vbus_discharge_threshold callback
from tcpci_data for now. Can be added later if needed.

4. Added additional patches to address an isssue where vbus was being
left post disconnect after Fast Role Swap operation is executed.
a. usb: typec: tcpm: frs sourcing vbus callback
b. usb: typec: tcpci: frs sourcing vbus callback
c. usb: typec: tcpci_max77759: Fix vbus stuck on upon diconnecting sink

Thanks,
Badhri.

Badhri Jagan Sridharan (15):
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: frs sourcing vbus callback
usb: typec: tcpci: frs sourcing vbus callback
usb: typec: tcpci_max77759: Fix vbus stuck on upon diconnecting sink
usb: typec: tcpm: Parse frs type-c current from device tree
usb: typec: tcpm: Implement enabling Auto Discharge disconnect support
usb: typec: tcpci: Implement Auto discharge disconnect callbacks
usb: typec: tcpci_maxim: Enable auto discharge disconnect

.../bindings/connector/usb-connector.yaml | 26 +
.../devicetree/bindings/usb/maxim,tcpci.yaml | 68 +++
drivers/usb/typec/tcpm/Kconfig | 6 +
drivers/usb/typec/tcpm/Makefile | 15 +-
drivers/usb/typec/tcpm/tcpci.c | 102 +++-
drivers/usb/typec/tcpm/tcpci.h | 30 +-
drivers/usb/typec/tcpm/tcpci_maxim.c | 504 ++++++++++++++++++
drivers/usb/typec/tcpm/tcpm.c | 299 ++++++++++-
include/dt-bindings/usb/pd.h | 10 +
include/linux/usb/pd.h | 19 +-
include/linux/usb/tcpm.h | 27 +-
include/linux/usb/typec.h | 12 +
12 files changed, 1093 insertions(+), 25 deletions(-)
create mode 100644 Documentation/devicetree/bindings/usb/maxim,tcpci.yaml
create mode 100644 drivers/usb/typec/tcpm/tcpci_maxim.c

--
2.28.0.709.gb0816b6eb0-goog