mbox series

[v1,00/10] usb: typec: add SOP' support to the tcpm and alt mode drivers

Message ID 20231207090738.15721-12-rdbabiera@google.com
Headers show
Series usb: typec: add SOP' support to the tcpm and alt mode drivers | expand

Message

RD Babiera Dec. 7, 2023, 9:07 a.m. UTC
Extend the TCPM's functionality to include support for SOP' messages.
This feature is opt-in: TCPCI chip drivers opt into sending and receiving
SOP' messages. TCPCI drivers will also be expected to take the SOP frame
type in order to process SOP' messages within the TCPM. The Maxim TCPCI
driver implements this in Patch 2.

Discover Identity, Discover SVIDs, Discover Modes, and Alt Mode SVDM
support are included within the patchset. Because the port is expected to
be the Vconn source in order to communicate with the cable, TCPCI chip
drivers opt into performing a Vconn swap after Discover Identity on SOP
before performing Discover Identity on SOP'.

Alt Mode drivers can direct SVDMs towards the port partner or cable plug.
DisplayPort Alt Mode adds support for Enter Mode, Configure, and Exit Mode
commands over SOP' in Patch 10.

RD Babiera (10):
  usb: typec: bus: provide transmit type for alternate mode drivers
  usb: typec: tcpci: enable reception of SOP' messages
  usb: typec: tcpm: process receive and transmission of sop' messages
  usb: typec: tcpm: add control message support for SOP'
  usb: typec: tcpci: add attempt_vconn_swap_discovery callback
  usb: typec: tcpm: add discover identity support for SOP'
  usb: typec: tcpm: add state machine support for
    SRC_VDM_IDENTITY_REQUEST
  usb: typec: tcpm: add mode data message support for SOP'
  usb: typec: altmodes: add typec_altmode_get_cable_svdm_version
  usb: typec: altmodes/displayport: add SOP' support

 drivers/platform/chrome/cros_typec_vdm.c  |   12 +-
 drivers/usb/typec/altmodes/displayport.c  |  175 +++-
 drivers/usb/typec/bus.c                   |   17 +-
 drivers/usb/typec/class.c                 |   42 +-
 drivers/usb/typec/class.h                 |    1 +
 drivers/usb/typec/tcpm/tcpci.c            |   26 +-
 drivers/usb/typec/tcpm/tcpci_maxim.h      |    1 +
 drivers/usb/typec/tcpm/tcpci_maxim_core.c |   37 +-
 drivers/usb/typec/tcpm/tcpm.c             | 1014 ++++++++++++++++++---
 drivers/usb/typec/ucsi/displayport.c      |   18 +-
 include/linux/usb/pd.h                    |    1 +
 include/linux/usb/pd_vdo.h                |    8 +-
 include/linux/usb/tcpci.h                 |   13 +
 include/linux/usb/tcpm.h                  |   16 +-
 include/linux/usb/typec.h                 |    3 +
 include/linux/usb/typec_altmode.h         |   36 +-
 16 files changed, 1214 insertions(+), 206 deletions(-)


base-commit: 5e4c8814a431d21bfaf20b464134f40f2f81e152