[lkml]   [2021]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH v16 6/7] usb: host: xhci-plat: Create platform device for onboard hubs in probe()
Hi Mathias,

On Wed, Oct 20, 2021 at 04:05:37PM +0300, Mathias Nyman wrote:
> Hi
> On 13.8.2021 22.52, Matthias Kaehlcke wrote:
> > Call onboard_hub_create/destroy_pdevs() from _probe()/_remove()
> > to create/destroy platform devices for onboard USB hubs that may
> > be connected to the root hub of the controller. These functions
> > are a NOP unless CONFIG_USB_ONBOARD_HUB=y/m.
> >
> > Also add a field to struct xhci_hcd to keep track of the onboard hub
> > platform devices that are owned by the xHCI.
> >
> > Signed-off-by: Matthias Kaehlcke <>
> > ---
> Haven't really looked at this series until now.
> Is there any reason why the xhci platform driver was selected as
> the best place to create/remove these onboard hub devices?

IIRC Alan suggested to use the xhci platform driver for creating/removing
the onboard hub devices when we were trying to get rid of a separate DT
node on the 'platform bus', which was suitable the board for my use case.

> This ties the onboard hubs to xhci, and won't work in case we have onboard
> hubs connected to a ehci controllers.

Right, the driver itself isn't limited to xhci. The initial idea was that
support for other types of USB controllers could be added as needed (I only
have a config with xhci for testing).

> If separate devices for controlling onboard hub power is the right solution then
> how about creating the onboard hub device in usb_add_hcd() (hcd.c), and
> store it in struct usb_hcd.
> A bit like how the roothub device is created, or PHYs are tuned.

Sure, that sounds feasible, even better if it's handled in a single place
and different types of controllers don't have to add support separately.

 \ /
  Last update: 2021-10-20 22:28    [W:0.086 / U:2.524 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site