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 <mka@xxxxxxxxxxxx> > --- 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? This ties the onboard hubs to xhci, and won't work in case we have onboard hubs connected to a ehci controllers. 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. Thanks Mathias