linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 00/12] USB Type-C device-connection, mux and switch support
@ 2018-03-02 10:20 Hans de Goede
  2018-03-02 10:20 ` [PATCH v6 01/12] drivers: base: Unified device connection lookup Hans de Goede
                   ` (11 more replies)
  0 siblings, 12 replies; 18+ messages in thread
From: Hans de Goede @ 2018-03-02 10:20 UTC (permalink / raw)
  To: Darren Hart, Andy Shevchenko, MyungJoo Ham, Chanwoo Choi,
	Mathias Nyman, Heikki Krogerus, Greg Kroah-Hartman,
	Guenter Roeck
  Cc: Hans de Goede, platform-driver-x86, linux-kernel, linux-usb

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

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2018-03-12  9:24 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-02 10:20 [PATCH v6 00/12] USB Type-C device-connection, mux and switch support Hans de Goede
2018-03-02 10:20 ` [PATCH v6 01/12] drivers: base: Unified device connection lookup Hans de Goede
2018-03-09 17:53   ` Greg Kroah-Hartman
2018-03-11 18:24     ` Hans de Goede
2018-03-12  8:13       ` Heikki Krogerus
2018-03-12  9:19         ` Hans de Goede
2018-03-12  9:24           ` Heikki Krogerus
2018-03-02 10:20 ` [PATCH v6 02/12] usb: typec: Start using ERR_PTR Hans de Goede
2018-03-02 10:20 ` [PATCH v6 03/12] usb: typec: API for controlling USB Type-C Multiplexers Hans de Goede
2018-03-02 10:20 ` [PATCH v6 04/12] usb: common: Small class for USB role switches Hans de Goede
2018-03-02 10:20 ` [PATCH v6 05/12] usb: typec: tcpm: Set USB role switch to device mode when configured as such Hans de Goede
2018-03-02 10:20 ` [PATCH v6 06/12] usb: typec: tcpm: Use new Type-C switch/mux and usb-role-switch functions Hans de Goede
2018-03-02 10:20 ` [PATCH v6 07/12] xhci: Add option to get next extended capability in list by passing id = 0 Hans de Goede
2018-03-02 10:20 ` [PATCH v6 08/12] xhci: Add Intel extended cap / otg phy mux handling Hans de Goede
2018-03-02 10:20 ` [PATCH v6 09/12] usb: roles: Add Intel xHCI USB role switch driver Hans de Goede
2018-03-02 10:20 ` [PATCH v6 10/12] usb: typec: driver for Pericom PI3USB30532 Type-C cross switch Hans de Goede
2018-03-02 10:20 ` [PATCH v6 11/12] platform/x86: intel_cht_int33fe: Add device connections for the Type-C port Hans de Goede
2018-03-02 10:20 ` [PATCH v6 12/12] extcon: axp288: Set USB role where necessary Hans de Goede

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).