Message ID | 20240613123020.43500-2-linux.amoon@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
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@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@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 ???? 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. Neil > + > sound { > compatible = "amlogic,axg-sound-card"; > model = "ODROID-N2"; > @@ -234,18 +258,6 @@ &gpio { > "PIN_3", /* GPIOX_17 */ > "PIN_5", /* GPIOX_18 */ > "PIN_36"; /* GPIOX_19 */ > - /* > - * WARNING: The USB Hub on the Odroid-N2 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. > - */ > - usb-hub-hog { > - gpio-hog; > - gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; > - output-high; > - line-name = "usb-hub-reset"; > - }; > }; > > &i2c3 {
Hi Neil, On Mon, 24 Jun 2024 at 13:45, Neil Armstrong <neil.armstrong@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@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@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
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>; + }; + }; + sound { compatible = "amlogic,axg-sound-card"; model = "ODROID-N2"; @@ -234,18 +258,6 @@ &gpio { "PIN_3", /* GPIOX_17 */ "PIN_5", /* GPIOX_18 */ "PIN_36"; /* GPIOX_19 */ - /* - * WARNING: The USB Hub on the Odroid-N2 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. - */ - usb-hub-hog { - gpio-hog; - gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; - output-high; - line-name = "usb-hub-reset"; - }; }; &i2c3 {
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@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(-)