Re: [PATCH v1 03/11] arm64: dts: amlogic: Used onboard usb hub reset on odroid c2

From: Alexander Stein
Date: Wed Jan 04 2023 - 04:43:00 EST


Am Mittwoch, 4. Januar 2023, 09:13:21 CET schrieb Anand Moon:
> Hi Martin,
>
> On Wed, 28 Dec 2022 at 20:14, Anand Moon <linux.amoon@xxxxxxxxx> wrote:
> > Hi Martin,
> >
> > On Wed, 28 Dec 2022 at 18:21, Martin Blumenstingl
> >
> > <martin.blumenstingl@xxxxxxxxxxxxxx> wrote:
> > > Hi Anand,
> >
> > Thanks for your review comments.
> >
> > > thank you for working on this topic!
> > >
> > > On Wed, Dec 28, 2022 at 11:05 AM Anand Moon <linux.amoon@xxxxxxxxx>
> > > wrote:
> > > [...]
> > >
> > > > + usb {
> > > > + dr_mode = "host";
> > > > + #address-cells = <1>;
> > > > + #size-cells = <0>;
> > > > +
> > > > + hub@1 {
> > > > + /* Genesys Logic GL852G-OHG usb hub */
> > > > + compatible = "genesys,usb5e3,610";
> > > > + reg = <1>;
> > > > + vdd-supply = <&usb_otg_pwr>;
> > > > + reset-gpio = <&gpio_ao GPIOAO_4
> > > > GPIO_ACTIVE_LOW>;
> > > > + };
> > > > + };
> > >
> > > My understanding is that the hub@1 node should be part of the
> > > corresponding USB controller node, not a new node.
> > > In this case hub@1 should go into the existing &usb1 node. That way we
> > > describe the way the hardware is set up (meaning: hub@1 is connected
> > > to &usb1).
> >
> > Ok, I will move this code under &usb0 and &usb1 nodes.
> >
> > onboard_usb_hub module just assists in usb hub reset.
> > so these changes are meant to replace the gpio-hog.
> >
> > $ dmesg | grep onboard
> > [ 5.405558] usbcore: registered new device driver onboard-usb-hub
> > [ 6.383428] onboard-usb-hub 1-1: reset high-speed USB device number
> > 2 using dwc2
> >
> > Here is the boot log of the odroid c2 [0] https://pastebin.com/PFy5waPb
>
> Moving the usb hub into usb subnode usb0 or usb1 does not work
> on Odroid n2 and c4, we have a combo phys of usb 2.0 and usb 3.0
> so the onboard usb hub reset does not get initialized until both the PHY
> and USB nodes are brought up by the drivers.
>
> # On Odroid n2 has a combo hub
> alarm@odroid-n2:~$ lsusb -tv
> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
> ID 1d6b:0003 Linux Foundation 3.0 root hub
>
> |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
>
> ID 05e3:0620 Genesys Logic, Inc. GL3523 Hub
>
> |__ Port 1: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage,
> |5000M
>
> ID 174c:5106 ASMedia Technology Inc. ASM1051 SATA 3Gb/s bridge
> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/2p, 480M
> ID 1d6b:0002 Linux Foundation 2.0 root hub
>
> |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
>
> ID 05e3:0610 Genesys Logic, Inc. Hub
>
> |__ Port 2: Dev 4, If 0, Class=Vendor Specific Class,
>
> Driver=ax88179_178a, 480M
> ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
>
> # Odroid C4 also has a combo hub
>
> alarm@odroid-c4:~$ lsusb -tv
> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
> ID 1d6b:0003 Linux Foundation 3.0 root hub
>
> |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
>
> ID 2109:0817 VIA Labs, Inc.
> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/2p, 480M
> ID 1d6b:0002 Linux Foundation 2.0 root hub
>
> |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
>
> ID 2109:2817 VIA Labs, Inc.
>
> So I will continue to work with this usb hub node to do a proper reset
> of the USB hub.

If your USB hub does both USB2.0 and USB3.0 you need to add both devices in DT
and reference them using 'peer-hub'property. See ca69b6c78d5d ("arm64: dts:
tqma8mpql: add support for 2nd USB (host) interface") for a reference.

Best regards,
Alexander

> > > In case hub@1 is not detected within &usb1 then you maym need something
> > > like [0] (not tested for your use-case).
> > > If that helps: feel free to include that patch in your series.
> >
> > Thanks, will check if this is needed in this case. As of now it just
> > reinitializes the hub.
> >
> > > Best regards,
> > > Martin
> > >
> > >
> > > [0]
> > > https://github.com/xdarklight/linux/commit/d8b96e5bc9c20ab2585194e0e595
> > > 80c3b062c431>
> > Thanks
> > -Anand
>
> Thanks
> -Anand
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel