Re: [PATCH RFC 00/12] arm64: mediatek: Add M.2 E-key slot on Chromebooks
From: Chen-Yu Tsai
Date: Thu May 28 2026 - 04:47:49 EST
On Thu, May 28, 2026 at 10:36 AM Bartosz Golaszewski <brgl@xxxxxxxxxx> wrote:
>
> On Wed, 27 May 2026 19:41:30 +0200, Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx> said:
> > On Wed, May 27, 2026 at 06:21:00PM +0200, Chen-Yu Tsai wrote:
>
> ...
>
> >>
> >> However this seems to completely decouple the power sequencing from the
> >> USB core. Take the USB A connector for example, it was recently added to
> >> the onboard USB devices driver. However the connector has a device node
> >> that is not a child node of any USB host controller or hub; it is connected
> >> through OF graph. At the same time, since it typically sits at the top
> >> level of the device tree, a platform device is directly created and the
> >> driver subsequently binds to that device. This is totally different from
> >> how the hub and other directly connected onboard USB devices work. In
> >> the onboard device case, the device node is a child node of the USB hub
> >> or controller, and the corresponding platform device only gets created
> >> when the USB hub driver probes, thereby sort of tying it into the USB
> >> device topology.
> >
> > Hm, did we mess this up? If so, we can always change it if you think
> > this should be done differently.
> >
> > Hubs should be dealing with the power issues for their ports, so maybe
> > rethinking this might be wise. I'm just loath to add hardware-specific
> > hacks to the hub common code for obvious reasons. Anything we can do to
> > pull it out to a separate driver is best so it doesn't affect the 99% of
> > the users that don't have that crazy hardware :)
> >
>
> IIUC what we discussed with Chen-Yu yesterday, the only thing that needs to be
> done in the USB hub driver is attaching the port firmware nodes (if present) to
> the port devices we instantiate. The rest can be handled elsewhere.
>
> Chen-Yu: correct me if I'm wrong.
The above, plus adding pwrseq_get(), pwrseq_power_on(), pwrseq_power_off()
calls to the appropriate places in the hub driver.
ChenYu