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

From: Anand Moon
Date: Wed Jan 04 2023 - 03:13:46 EST


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.

> > 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/d8b96e5bc9c20ab2585194e0e59580c3b062c431
>
> Thanks
> -Anand

Thanks
-Anand