* [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