Hi Neil, On Mon, 24 Jun 2024 at 13:45, Neil Armstrong <neil.armstrong@xxxxxxxxxx> 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@xxxxxxxxx> > > --- > > 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@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@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@odroid-n2plus:~$ tree /proc/device-tree/usb-hub/ /proc/device-tree/usb-hub/ ├── #address-cells ├── dr_mode ├── hub@1 │ ├── compatible │ ├── name │ ├── peer-hub │ ├── phandle │ ├── reg │ └── vdd-supply ├── hub@2 │ ├── compatible │ ├── name │ ├── peer-hub │ ├── phandle │ ├── reg │ ├── reset-gpios │ └── vdd-supply ├── name └── #size-cells 3 directories, 17 files alarm@odroid-n2plus:~$ alarm@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