From: Hans de Goede <hdegoede@redhat.com>
To: Heikki Krogerus <heikki.krogerus@linux.intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Darren Hart <dvhart@infradead.org>,
Andy Shevchenko <andy@infradead.org>,
MyungJoo Ham <myungjoo.ham@samsung.com>,
Chanwoo Choi <cw00.choi@samsung.com>,
Mathias Nyman <mathias.nyman@intel.com>,
Guenter Roeck <linux@roeck-us.net>, Jun Li <jun.li@nxp.com>,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [PATCH v7 00/12] USB Type-C device-connection, mux and switch support
Date: Mon, 12 Mar 2018 17:53:19 +0100 [thread overview]
Message-ID: <02ac8e27-9e42-63a1-2305-d333f65b16f6@redhat.com> (raw)
In-Reply-To: <20180312143431.82396-1-heikki.krogerus@linux.intel.com>
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
>
prev parent reply other threads:[~2018-03-12 16:53 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-12 14:34 [PATCH v7 00/12] USB Type-C device-connection, mux and switch support Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 01/12] drivers: base: Unified device connection lookup Heikki Krogerus
2018-03-14 11:16 ` Greg Kroah-Hartman
2018-03-14 12:13 ` Heikki Krogerus
2018-03-14 12:25 ` Greg Kroah-Hartman
2018-03-12 14:34 ` [PATCH v7 02/12] usb: typec: API for controlling USB Type-C Multiplexers Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 03/12] usb: common: Small class for USB role switches Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 04/12] usb: typec: Separate the definitions for data and power roles Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 05/12] usb: typec: tcpm: Set USB role switch to device mode when configured as such Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 06/12] usb: typec: tcpm: Use new Type-C switch/mux and usb-role-switch functions Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 07/12] xhci: Add option to get next extended capability in list by passing id = 0 Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 08/12] xhci: Add Intel extended cap / otg phy mux handling Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 09/12] usb: roles: Add Intel xHCI USB role switch driver Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 10/12] usb: typec: driver for Pericom PI3USB30532 Type-C cross switch Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 11/12] platform/x86: intel_cht_int33fe: Add device connections for the Type-C port Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 12/12] extcon: axp288: Set USB role where necessary Heikki Krogerus
2018-03-12 16:53 ` Hans de Goede [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=02ac8e27-9e42-63a1-2305-d333f65b16f6@redhat.com \
--to=hdegoede@redhat.com \
--cc=andy@infradead.org \
--cc=cw00.choi@samsung.com \
--cc=dvhart@infradead.org \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=jun.li@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mathias.nyman@intel.com \
--cc=myungjoo.ham@samsung.com \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).