lkml.org 
[lkml]   [2018]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v7 00/12] USB Type-C device-connection, mux and switch support
    From
    Date
    Hi,

    On 12-03-18 15:34, Heikki Krogerus wrote:
    > Hi,
    >
    > This is version 7 of Hans' and my series introducing support for USB muxes and
    > generic device-connections. The api naming for device-connections is now made
    > according to proposal from Greg, connection.h is dropped and the prototypes are
    > now in device.h. kbuild test robot <fengguang.wu@intel.com> also found stylistic
    > problems from patches 9/12 and 10/12 which were fixed. The patch 4/12 ("usb:
    > typec: Separate the definitions for data and power roles") was added to the
    > series.

    Thanks.

    I've given this new series a quick test run and it works for me :)

    Regards,

    Hans




    >
    > Check the v6 from here:
    > https://lkml.org/lkml/2018/3/2/340
    >
    >
    > Here is the cover-letter of v6:
    >
    > Hi All,
    >
    > Here is version 6 of Heikki's and my USB Type-C device-connection, mux and
    > switch support series. Versions 2 - 5 bring various small code and style
    > fixes based on review (no major changes). Version 6 is rebased on top of
    > the latest usb-next and brings one small but important code fix in
    > the devcon code.
    >
    > Here is the original cover-letter of v1:
    >
    > Some devices with an USB Type-C connector have a bunch of muxes
    > behind that connector which need to be controlled by the kernel (rather
    > then having them controlled by firmware as on most devices).
    >
    > Quite a while back I submitted a patch-series to tie together these muxes
    > and the Type-C Port Manager (tcpm) code, using the then new drivers/mux
    > framework. But the way I used the mux framework went against what it was
    > designed for, so in the end that series got nowhere.
    >
    > Heikki Krogerus from Intel, who maintains the USB TYPEC subsystem, has
    > recently been working on solving the same problem for some boards he is
    > doing hardware-enablement for.
    >
    > Heikki has come up with a number of infrastructure patches for this.
    > The first one is a new device-connection framework. This solves the
    > problem of describing non bus device-links on x86 in what in my experience
    > with this problematic area is a really nice simple, clean and *generic*
    > way. This could for example in the near future also replace the custom
    > lookup code in the pwm subsys and the custom pwm_add_table() /
    > pwm_remove_table() functions.
    >
    > The other 3 patches add a framework for the different type of Type-C /
    > USB "muxes".
    >
    > Heikki and I have gone through a number of iterations of these patches
    > together and we believe these are now ready for merging. Since merging
    > infrastructure patches without users is not done and Heikki's own use-case
    > for these is not yet ready for merging, the rest of this series consists
    > of patches by me to make the Type-C connector found on some Cherry Trail
    > devices (finally) be able to actually work as an USB port and not just
    > a charge port.
    >
    > The last patch uses the new usb-role-switch framework to also do proper
    > devcie / host switching on CHT devices with a USB micro AB connector.
    > This is also a big feature for CHT users, because before this they had
    > to do a reboot to get an OTG-host cable recognized (on some devices).
    >
    > Part of this series is an usb-role-switch driver for the role-switch
    > found inside the xhci controller on e.g. CHT devices, this is currently
    > implemented as the generic xhci controller instantiating a platform
    > child-device for this, since this really is a separate chunk of HW
    > which happens to sit in the XHCI mmio space. This approach may not be
    > universally liked, given that in this new series the role-switch driver
    > is much smaller and does not have any external deps anymore we could
    > just integrate it into the xhci code if that is preferred.
    >
    > About merging this series (once everything is reviewed, etc.), there are
    > quite some interdependencies in it esp. a lot of the patches depend on
    > the first patch. Luckily patches 1-10 all apply to subsystems which are
    > maintained by Greg (most to the USB subsys). Which just leaves patches
    > 11 and 12 once 1-10 are merged. Greg, can you create an immutable branch
    > for the platform/x86 and extcon maintainers to merge once this is done?
    >
    > Regards,
    >
    > Hans
    >
    >
    > Hans de Goede (7):
    > usb: typec: tcpm: Set USB role switch to device mode when configured
    > as such
    > usb: typec: tcpm: Use new Type-C switch/mux and usb-role-switch
    > functions
    > xhci: Add Intel extended cap / otg phy mux handling
    > usb: roles: Add Intel xHCI USB role switch driver
    > usb: typec: driver for Pericom PI3USB30532 Type-C cross switch
    > platform/x86: intel_cht_int33fe: Add device connections for the Type-C
    > port
    > extcon: axp288: Set USB role where necessary
    >
    > Heikki Krogerus (4):
    > drivers: base: Unified device connection lookup
    > usb: typec: API for controlling USB Type-C Multiplexers
    > usb: common: Small class for USB role switches
    > usb: typec: Separate the definitions for data and power roles
    >
    > Mathias Nyman (1):
    > xhci: Add option to get next extended capability in list by passing id
    > = 0
    >
    > Documentation/ABI/testing/sysfs-class-usb_role | 21 ++
    > Documentation/driver-api/device_connection.rst | 43 ++++
    > Documentation/driver-api/usb/typec.rst | 73 +++++-
    > MAINTAINERS | 12 +
    > drivers/base/Makefile | 3 +-
    > drivers/base/devcon.c | 141 ++++++++++++
    > drivers/extcon/Kconfig | 3 +-
    > drivers/extcon/extcon-axp288.c | 176 +++++++++++++-
    > drivers/platform/x86/intel_cht_int33fe.c | 24 ++
    > drivers/usb/Kconfig | 5 +
    > drivers/usb/Makefile | 2 +
    > drivers/usb/common/Makefile | 1 +
    > drivers/usb/common/roles.c | 305 +++++++++++++++++++++++++
    > drivers/usb/host/Makefile | 2 +-
    > drivers/usb/host/xhci-ext-caps.c | 90 ++++++++
    > drivers/usb/host/xhci-ext-caps.h | 7 +-
    > drivers/usb/host/xhci-pci.c | 5 +
    > drivers/usb/host/xhci.h | 2 +
    > drivers/usb/roles/Kconfig | 14 ++
    > drivers/usb/roles/Makefile | 1 +
    > drivers/usb/roles/intel-xhci-usb-role-switch.c | 192 ++++++++++++++++
    > drivers/usb/typec/Kconfig | 3 +
    > drivers/usb/typec/Makefile | 2 +
    > drivers/usb/typec/{typec.c => class.c} | 124 ++++++++--
    > drivers/usb/typec/fusb302/fusb302.c | 2 +-
    > drivers/usb/typec/mux.c | 191 ++++++++++++++++
    > drivers/usb/typec/mux/Kconfig | 10 +
    > drivers/usb/typec/mux/Makefile | 3 +
    > drivers/usb/typec/mux/pi3usb30532.c | 178 +++++++++++++++
    > drivers/usb/typec/tcpm.c | 63 +++--
    > drivers/usb/typec/tps6598x.c | 26 ++-
    > drivers/usb/typec/typec_wcove.c | 1 +
    > drivers/usb/typec/ucsi/ucsi.c | 13 +-
    > include/linux/device.h | 22 ++
    > include/linux/usb/role.h | 53 +++++
    > include/linux/usb/tcpm.h | 15 +-
    > include/linux/usb/typec.h | 28 ++-
    > include/linux/usb/typec_mux.h | 55 +++++
    > 38 files changed, 1817 insertions(+), 94 deletions(-)
    > create mode 100644 Documentation/ABI/testing/sysfs-class-usb_role
    > create mode 100644 Documentation/driver-api/device_connection.rst
    > create mode 100644 drivers/base/devcon.c
    > create mode 100644 drivers/usb/common/roles.c
    > create mode 100644 drivers/usb/host/xhci-ext-caps.c
    > create mode 100644 drivers/usb/roles/Kconfig
    > create mode 100644 drivers/usb/roles/Makefile
    > create mode 100644 drivers/usb/roles/intel-xhci-usb-role-switch.c
    > rename drivers/usb/typec/{typec.c => class.c} (93%)
    > create mode 100644 drivers/usb/typec/mux.c
    > create mode 100644 drivers/usb/typec/mux/Kconfig
    > create mode 100644 drivers/usb/typec/mux/Makefile
    > create mode 100644 drivers/usb/typec/mux/pi3usb30532.c
    > create mode 100644 include/linux/usb/role.h
    > create mode 100644 include/linux/usb/typec_mux.h
    >

    \
     
     \ /
      Last update: 2018-03-12 17:54    [W:5.042 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site