diff mbox series

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

Message ID 20221228100321.15949-4-linux.amoon@gmail.com (mailing list archive)
State Superseded
Headers show
Series Used onboard HUB to reset and add power to hub | expand

Commit Message

Anand Moon Dec. 28, 2022, 10:03 a.m. UTC
On Odroid c2 previously use gpio-hog to reset the usb hub,
switch to used on-board usb hub reset to enable the usb hub
and enable power to hub.

Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
 .../boot/dts/amlogic/meson-gxbb-odroidc2.dts  | 29 +++++++++----------
 1 file changed, 14 insertions(+), 15 deletions(-)

Comments

Martin Blumenstingl Dec. 28, 2022, 12:51 p.m. UTC | #1
Hi Anand,

thank you for working on this topic!

On Wed, Dec 28, 2022 at 11:05 AM Anand Moon <linux.amoon@gmail.com> 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).

In case hub@1 is not detected within &usb1 then you may need something
like [0] (not tested for your use-case).
If that helps: feel free to include that patch in your series.


Best regards,
Martin


[0] https://github.com/xdarklight/linux/commit/d8b96e5bc9c20ab2585194e0e59580c3b062c431
Anand Moon Dec. 28, 2022, 2:44 p.m. UTC | #2
Hi Martin,

On Wed, 28 Dec 2022 at 18:21, Martin Blumenstingl
<martin.blumenstingl@googlemail.com> 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@gmail.com> 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

> In case hub@1 is not detected within &usb1 then you may 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
Anand Moon Jan. 4, 2023, 8:13 a.m. UTC | #3
Hi Martin,

On Wed, 28 Dec 2022 at 20:14, Anand Moon <linux.amoon@gmail.com> wrote:
>
> Hi Martin,
>
> On Wed, 28 Dec 2022 at 18:21, Martin Blumenstingl
> <martin.blumenstingl@googlemail.com> 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@gmail.com> 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
Neil Armstrong Jan. 4, 2023, 8:56 a.m. UTC | #4
On 04/01/2023 09:13, Anand Moon wrote:
> Hi Martin,
> 
> On Wed, 28 Dec 2022 at 20:14, Anand Moon <linux.amoon@gmail.com> wrote:
>>
>> Hi Martin,
>>
>> On Wed, 28 Dec 2022 at 18:21, Martin Blumenstingl
>> <martin.blumenstingl@googlemail.com> 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@gmail.com> 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.

Fine, then add a comment before the usb node explaining that.

Thanks,
Neil

> 
> # 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
Anand Moon Jan. 4, 2023, 9:17 a.m. UTC | #5
Hi Niel,


On Wed, 4 Jan 2023 at 14:26, Neil Armstrong <neil.armstrong@linaro.org> wrote:
>
> On 04/01/2023 09:13, Anand Moon wrote:
> > Hi Martin,
> >
> > On Wed, 28 Dec 2022 at 20:14, Anand Moon <linux.amoon@gmail.com> wrote:
> >>
> >> Hi Martin,
> >>
> >> On Wed, 28 Dec 2022 at 18:21, Martin Blumenstingl
> >> <martin.blumenstingl@googlemail.com> 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@gmail.com> 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.
>
> Fine, then add a comment before the usb node explaining that.
>

Sure, thanks.

> Thanks,
> Neil
>
Thanks
-Anand
Alexander Stein Jan. 4, 2023, 9:36 a.m. UTC | #6
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@gmail.com> wrote:
> > Hi Martin,
> > 
> > On Wed, 28 Dec 2022 at 18:21, Martin Blumenstingl
> > 
> > <martin.blumenstingl@googlemail.com> 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@gmail.com>
> > > 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@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Anand Moon Jan. 7, 2023, 2:56 p.m. UTC | #7
Hi Alexander,

Thanks for your review comments.

On Wed, 4 Jan 2023 at 15:06, Alexander Stein
<alexander.stein@ew.tq-group.com> 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@gmail.com> wrote:
> > > Hi Martin,
> > >
> > > On Wed, 28 Dec 2022 at 18:21, Martin Blumenstingl
> > >
> > > <martin.blumenstingl@googlemail.com> 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@gmail.com>
> > > > 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
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index 201596247fd9..3d3e61cf65a8 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -208,6 +208,20 @@  codec-0 {
 			};
 		};
 	};
+
+	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>;
+		};
+	};
 };
 
 &aiu {
@@ -250,21 +264,6 @@  eth_phy0: ethernet-phy@0 {
 	};
 };
 
-&gpio_ao {
-	/*
-	 * WARNING: The USB Hub on the Odroid-C2 needs a reset signal
-	 * to be turned high in order to be detected by the USB Controller
-	 * This signal should be handled by a USB specific power sequence
-	 * in order to reset the Hub when USB bus is powered down.
-	 */
-	hog-0 {
-		gpio-hog;
-		gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>;
-		output-high;
-		line-name = "usb-hub-reset";
-	};
-};
-
 &hdmi_tx {
 	status = "okay";
 	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;