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

From: Anand Moon
Date: Sat Jan 07 2023 - 09:56:33 EST


Hi Alexander,

Thanks for your review comments.

On Wed, 4 Jan 2023 at 15:06, Alexander Stein
<alexander.stein@xxxxxxxxxxxxxxx> wrote:
>
> 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.
>

Yes, I have updated the DTS example for using peer-hub for both devices.

> Best regards,
> Alexander
>
Thanks



-Anand