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 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html