* [PATCH v7 1/2] dt-bindings: usb: Add the binding example for the Genesys Logic GL3523 hub @ 2024-06-13 12:30 Anand Moon 2024-06-13 12:30 ` [PATCH v7 2/2] arm64: dts: amlogic: Used onboard usb hub reset on odroid n2 Anand Moon 0 siblings, 1 reply; 4+ messages in thread From: Anand Moon @ 2024-06-13 12:30 UTC (permalink / raw) To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Icenowy Zheng Cc: Anand Moon, Conor Dooley, linux-usb, devicetree, linux-kernel Add the binding example for the USB3.1 Genesys Logic GL3523 integrates with USB 3.1 Gen 1 Super Speed and USB 2.0 High-Speed hub. For onboard hub controllers that support USB 3.x and USB 2.0 hubs with shared resets and power supplies, this property is used to identify the hubs with which these are shared. GL3523 has built-in 5V to 3.3V and 5V to 1.2V regulators, which serves power to the USB HUB, it uses 5V power regulator. Update the peer-hub description. Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Anand Moon <linux.amoon@gmail.com> --- Now with fresh install image and updated dtschema all the dt_binding_check pass make DT_CHECKER_FLAGS=-m -j$(nproc) dt_binding_check V7: dropped the reset-gpios: true: Rob 'No need for this if schema. The default is they are allowed.' [7] https://lore.kernel.org/lkml/194aa24c-2763-47e2-8ccc-1637d299c1ba@linaro.org/T/ V6: fix the description of the regulators Updated the commit message for regulator updates. add reviewed by Conor Dooley [1] https://lore.kernel.org/all/20231130053130.21966-2-linux.amoon@gmail.com/ v5: upgrade peer-hub description : Conor Dooley [0] https://www.genesyslogic.com.tw/en/product_view.php?show=67 [Block Diagram] v4: Fix the description of peer-hub and update the commit message. Schematics of the Odroid N2+ https://dn.odroid.com/S922X/ODROID-N2/Schematic/odroid-n2_rev0.6_20210121.pdf V3: fix the dt_binding_check error, added new example for Genesys GL3523 v2: added Genesys GL3523 binding v1: none --- .../bindings/usb/genesys,gl850g.yaml | 60 +++++++++++++++++-- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml b/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml index 37cf5249e526..fc833363cfb4 100644 --- a/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml +++ b/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml @@ -9,9 +9,6 @@ title: Genesys Logic USB hub controller maintainers: - Icenowy Zheng <uwu@icenowy.me> -allOf: - - $ref: usb-device.yaml# - properties: compatible: enum: @@ -27,17 +24,44 @@ properties: vdd-supply: description: - the regulator that provides 3.3V core power to the hub. + The regulator that provides 3.3V or 5.0V core power to the hub. peer-hub: $ref: /schemas/types.yaml#/definitions/phandle description: - phandle to the peer hub on the controller. + For onboard hub controllers that support USB 3.x and USB 2.0 hubs + with shared resets and power supplies, this property is used to identify + the hubs with which these are shared. required: - compatible - reg +allOf: + - $ref: usb-device.yaml# + - if: + properties: + compatible: + contains: + enum: + - usb5e3,608 + then: + properties: + peer-hub: false + vdd-supply: false + + - if: + properties: + compatible: + contains: + enum: + - usb5e3,610 + - usb5e3,620 + then: + properties: + peer-hub: true + vdd-supply: true + additionalProperties: false examples: @@ -54,3 +78,29 @@ examples: reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>; }; }; + + - | + #include <dt-bindings/gpio/gpio.h> + usb { + 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>; + reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + }; + + /* 3.1 hub on port 4 */ + hub_3_0: hub@2 { + compatible = "usb5e3,620"; + reg = <2>; + peer-hub = <&hub_2_0>; + reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>; + vdd-supply = <&vcc_5v>; + }; + }; -- 2.44.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v7 2/2] arm64: dts: amlogic: Used onboard usb hub reset on odroid n2 2024-06-13 12:30 [PATCH v7 1/2] dt-bindings: usb: Add the binding example for the Genesys Logic GL3523 hub Anand Moon @ 2024-06-13 12:30 ` Anand Moon 2024-06-24 8:15 ` Neil Armstrong 0 siblings, 1 reply; 4+ messages in thread From: Anand Moon @ 2024-06-13 12:30 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl Cc: Anand Moon, devicetree, linux-arm-kernel, linux-amlogic, linux-kernel 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>; + }; + }; + 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 { -- 2.44.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v7 2/2] arm64: dts: amlogic: Used onboard usb hub reset on odroid n2 2024-06-13 12:30 ` [PATCH v7 2/2] arm64: dts: amlogic: Used onboard usb hub reset on odroid n2 Anand Moon @ 2024-06-24 8:15 ` Neil Armstrong 2024-06-24 9:46 ` Anand Moon 0 siblings, 1 reply; 4+ messages in thread From: Neil Armstrong @ 2024-06-24 8:15 UTC (permalink / raw) To: Anand Moon, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Kevin Hilman, Jerome Brunet, Martin Blumenstingl Cc: devicetree, linux-arm-kernel, linux-amlogic, linux-kernel 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 { ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v7 2/2] arm64: dts: amlogic: Used onboard usb hub reset on odroid n2 2024-06-24 8:15 ` Neil Armstrong @ 2024-06-24 9:46 ` Anand Moon 0 siblings, 0 replies; 4+ messages in thread From: Anand Moon @ 2024-06-24 9:46 UTC (permalink / raw) To: neil.armstrong Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Kevin Hilman, Jerome Brunet, Martin Blumenstingl, devicetree, linux-arm-kernel, linux-amlogic, linux-kernel 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 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-06-24 9:46 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-06-13 12:30 [PATCH v7 1/2] dt-bindings: usb: Add the binding example for the Genesys Logic GL3523 hub Anand Moon 2024-06-13 12:30 ` [PATCH v7 2/2] arm64: dts: amlogic: Used onboard usb hub reset on odroid n2 Anand Moon 2024-06-24 8:15 ` Neil Armstrong 2024-06-24 9:46 ` Anand Moon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox