[RFC PATCH v4 0/8] usb: typec: Support for Alternate Modes

From: Heikki Krogerus
Date: Fri Jun 08 2018 - 07:29:52 EST


Hi,

This is the fourth (and hopefully last RFC) of my proposal for more
complete alternate mode support. In this version the main difference
compared to the previous versions is the displayport alt mode driver.

For those who have no idea what is this about, the idea is to add a
bus type for the USB-C alternate modes. All alternate modes, for
example DisplayPort, require specific communication, so we will need
separate driver for every alternate mode. For more details please read
the cover letter of the previous version here:

https://lkml.org/lkml/2018/5/11/323

It took some time for me to get permission to publish the displayport
alt mode driver. Sorry for the delay. I was actually hoping that I
could include changes also to the drm subsystem already now, but it
ended up being more complicated than I first though, and I quite
simply don't have time for that, so let's just start with these.


Heikki Krogerus (8):
usb: pd: include kernel.h
usb: typec: helper for checking cable plug orientation
usb: typec: mux: Get the mux identifier from function parameter
usb: typec: Register a device for every mode
usb: typec: Bus type for alternate modes
usb: typec: Add driver for DisplayPort alternate mode
usb: typec: pi3usb30532: Start using generic state values
usb: typec: tcpm: Support for Alternate Modes

Documentation/ABI/obsolete/sysfs-class-typec | 48 ++
Documentation/ABI/testing/sysfs-bus-typec | 51 ++
Documentation/ABI/testing/sysfs-class-typec | 62 +-
.../testing/sysfs-driver-typec-displayport | 49 ++
Documentation/driver-api/usb/typec_bus.rst | 136 +++++
MAINTAINERS | 13 +-
drivers/usb/typec/Kconfig | 2 +
drivers/usb/typec/Makefile | 3 +-
drivers/usb/typec/altmodes/Kconfig | 14 +
drivers/usb/typec/altmodes/Makefile | 2 +
drivers/usb/typec/altmodes/displayport.c | 543 ++++++++++++++++++
drivers/usb/typec/bus.c | 401 +++++++++++++
drivers/usb/typec/bus.h | 38 ++
drivers/usb/typec/class.c | 485 ++++++++++------
drivers/usb/typec/mux.c | 6 +-
drivers/usb/typec/mux/pi3usb30532.c | 15 +-
drivers/usb/typec/tcpm.c | 184 ++++--
include/linux/mod_devicetable.h | 15 +
include/linux/usb/pd.h | 1 +
include/linux/usb/tcpm.h | 9 -
include/linux/usb/typec.h | 52 +-
include/linux/usb/typec_altmode.h | 160 ++++++
include/linux/usb/typec_dp.h | 70 +++
include/linux/usb/typec_mux.h | 2 +-
scripts/mod/devicetable-offsets.c | 4 +
scripts/mod/file2alias.c | 13 +
26 files changed, 2053 insertions(+), 325 deletions(-)
create mode 100644 Documentation/ABI/obsolete/sysfs-class-typec
create mode 100644 Documentation/ABI/testing/sysfs-bus-typec
create mode 100644 Documentation/ABI/testing/sysfs-driver-typec-displayport
create mode 100644 Documentation/driver-api/usb/typec_bus.rst
create mode 100644 drivers/usb/typec/altmodes/Kconfig
create mode 100644 drivers/usb/typec/altmodes/Makefile
create mode 100644 drivers/usb/typec/altmodes/displayport.c
create mode 100644 drivers/usb/typec/bus.c
create mode 100644 drivers/usb/typec/bus.h
create mode 100644 include/linux/usb/typec_altmode.h
create mode 100644 include/linux/usb/typec_dp.h

--
2.17.1