[PATCH v7 2/2] arm64: dts: amlogic: Used onboard usb hub reset on odroid n2

Anand Moon linux.amoon at gmail.com
Mon Jun 24 02:46:10 PDT 2024


Hi Neil,

On Mon, 24 Jun 2024 at 13:45, Neil Armstrong <neil.armstrong at linaro.org> wrote:
>
> Hi,
>
> On 13/06/2024 14:30, Anand Moon wrote:
> > On Odroid n2/n2+ 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 at gmail.com>
> > ---
> > v7:none
> > V6:none
> > V5:none
> > V4:none
> > V3:none
> > V2:none
> > V1:none
> > ---
> >   .../dts/amlogic/meson-g12b-odroid-n2.dtsi     | 36 ++++++++++++-------
> >   1 file changed, 24 insertions(+), 12 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
> > index d80dd9a3da31..86eb81112232 100644
> > --- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
> > +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
> > @@ -31,6 +31,30 @@ hub_5v: regulator-hub-5v {
> >               enable-active-high;
> >       };
> >
> > +     /* USB hub supports both USB 2.0 and USB 3.0 root hub */
> > +     usb-hub {
> > +             dr_mode = "host";
> > +             #address-cells = <1>;
> > +             #size-cells = <0>;
> > +
> > +             /* 2.0 hub on port 1 */
> > +             hub_2_0: hub at 1 {
> > +                     compatible = "usb5e3,610";
> > +                     reg = <1>;
> > +                     peer-hub = <&hub_3_0>;
> > +                     vdd-supply = <&usb_pwr_en>;
> > +             };
> > +
> > +             /* 3.0 hub on port 4 */
> > +             hub_3_0: hub at 2 {
> > +                     compatible = "usb5e3,620";
> > +                     reg = <2>;
> > +                     peer-hub = <&hub_2_0>;
> > +                     reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
> > +                     vdd-supply = <&vcc_5v>;
> > +             };
> > +     };
>
> Why is this nodes under / and not the dwc3 node ????

it's similar to usb-hub-hog, mostly usb-hub is just used to reset the
USB hub controller
and set the power source of the USB hub.

>
> With this current DT, there's no way for the usb controller
> to find those usb devices subnodes in /usb-hub, and it's clearly
> not described like this in the bindings.

USB hub is independent of the dwc2 and dwc3 initialization (phy, usb).

With this patch applied on my odroid-n2plus ,
I could see usb-hub entry in the /proc/device-tree nodes.

alarm at odroid-n2plus:~$ tree  /proc/device-tree/usb-hub/
/proc/device-tree/usb-hub/
├── #address-cells
├── dr_mode
├── hub at 1
│   ├── compatible
│   ├── name
│   ├── peer-hub
│   ├── phandle
│   ├── reg
│   └── vdd-supply
├── hub at 2
│   ├── compatible
│   ├── name
│   ├── peer-hub
│   ├── phandle
│   ├── reg
│   ├── reset-gpios
│   └── vdd-supply
├── name
└── #size-cells

3 directories, 17 files
alarm at odroid-n2plus:~$

alarm at odroid-n2plus:~$ lsusb -tv
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/2p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
        ID 05e3:0610 Genesys Logic, Inc. Hub
        |__ Port 003: Dev 003, If 0, Class=Mass Storage,
Driver=usb-storage, 480M
            ID 058f:6387 Alcor Micro Corp. Flash Drive
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci-hcd/1p, 5000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/4p, 5000M
        ID 05e3:0620 Genesys Logic, Inc. GL3523 Hub
        |__ Port 004: Dev 003, If 0, Class=Mass Storage,
Driver=usb-storage, 5000M
            ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s
bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge,
ASM1153E SATA 6Gb/s bridge

>
> Neil
>

Thanks
-Anand



More information about the linux-arm-kernel mailing list