* [PATCH v2 0/4] Add USB2.0 support for RZ/G3E
@ 2026-08-25 13:15 Tommaso Merciai
2026-08-25 13:15 ` [PATCH v2 1/4] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes Tommaso Merciai
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Tommaso Merciai @ 2026-08-25 13:15 UTC (permalink / raw)
To: tomm.merciai, prabhakar.mahadev-lad.rj
Cc: linux-renesas-soc, biju.das.jz, Tommaso Merciai,
Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, devicetree, linux-kernel
Dear All,
This patch series adds USB2.0 support for the Renesas R9A09G047 SoC and
enables it on the RZ/G3E SMARK II board.
Kind regards,
Tommaso
v1->v2:
- Included PATCH v7 7/9 and PATCH v7 6/9 from
v7: https://lore.kernel.org/all/20260812141940.246223-1-biju.das.jz@bp.renesas.com/
- Drop placeholder patch
- PATCH 4/4: Disabled RZ/G3L common nodes from r9a08g046l48-smarc.dts.
Update commit body, and improved usb20_pins, usb21_pins comments.
Biju Das (2):
arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes
arm64: dts: renesas: r9a08g046: Add USB2.0 function device nodes
Tommaso Merciai (2):
arm64: dts: renesas: r9a09g047: Add USB2.0 support
arm64: dts: renesas: r9a09g047e57-smarc: Enable USB2.0 support
arch/arm64/boot/dts/renesas/r9a08g046.dtsi | 142 ++++++++++++++++++
.../boot/dts/renesas/r9a08g046l48-smarc.dts | 20 +++
arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 124 +++++++++++++++
.../boot/dts/renesas/r9a09g047e57-smarc.dts | 45 ++++++
.../boot/dts/renesas/renesas-smarc2.dtsi | 25 +++
5 files changed, 356 insertions(+)
--
2.54.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 1/4] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes
2026-08-25 13:15 [PATCH v2 0/4] Add USB2.0 support for RZ/G3E Tommaso Merciai
@ 2026-08-25 13:15 ` Tommaso Merciai
2026-08-25 13:15 ` [PATCH v2 2/4] arm64: dts: renesas: r9a08g046: Add USB2.0 function " Tommaso Merciai
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Tommaso Merciai @ 2026-08-25 13:15 UTC (permalink / raw)
To: tomm.merciai, prabhakar.mahadev-lad.rj
Cc: linux-renesas-soc, biju.das.jz, Geert Uytterhoeven, Magnus Damm,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-kernel, Tommaso Merciai
From: Biju Das <biju.das.jz@bp.renesas.com>
Add USB2.0 device nodes to the RZ/G3L (r9a08g046) SoC DTSI, covering
the USB PHY controller, OHCI/EHCI host controllers, and USB2 PHYs for
both ports.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
---
v1->v2:
- Cherry picked from "Add RZ/G3L USB2.0 host support" v7.
v7: https://lore.kernel.org/all/20260812141940.246223-7-biju.das.jz@bp.renesas.com/
arch/arm64/boot/dts/renesas/r9a08g046.dtsi | 104 +++++++++++++++++++++
1 file changed, 104 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
index c63a857f0e5b..2d8c8fd8a01c 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
@@ -1001,6 +1001,110 @@ queue3 {
};
};
+ phyrst: usbphy-ctrl@11e00000 {
+ compatible = "renesas,r9a08g046-usbphy-ctrl";
+ reg = <0 0x11e00000 0 0x10000>;
+ clocks = <&cpg CPG_MOD R9A08G046_USB_PCLK>;
+ resets = <&cpg R9A08G046_USB_PRESETN>;
+ power-domains = <&cpg>;
+ #reset-cells = <1>;
+ status = "disabled";
+
+ regulators {
+ usb0_vbus_otg: vbus0 {
+ regulator-name = "usb0_vbus";
+ };
+
+ usb1_vbus_otg: vbus1 {
+ regulator-name = "usb1_vbus";
+ };
+ };
+ };
+
+ ohci0: usb@11e10000 {
+ compatible = "generic-ohci";
+ reg = <0 0x11e10000 0 0x100>;
+ interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD R9A08G046_USB_PCLK>,
+ <&cpg CPG_MOD R9A08G046_USB_U2H0_HCLK>;
+ resets = <&phyrst 0>,
+ <&cpg R9A08G046_USB_U2H0_HRESETN>;
+ phys = <&usb2_phy0 1>;
+ phy-names = "usb";
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ ohci1: usb@11e90000 {
+ compatible = "generic-ohci";
+ reg = <0 0x11e90000 0 0x100>;
+ interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD R9A08G046_USB_PCLK>,
+ <&cpg CPG_MOD R9A08G046_USB_U2H1_HCLK>;
+ resets = <&phyrst 1>,
+ <&cpg R9A08G046_USB_U2H1_HRESETN>;
+ phys = <&usb2_phy1 1>;
+ phy-names = "usb";
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ ehci0: usb@11e10100 {
+ compatible = "generic-ehci";
+ reg = <0 0x11e10100 0 0x100>;
+ interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD R9A08G046_USB_PCLK>,
+ <&cpg CPG_MOD R9A08G046_USB_U2H0_HCLK>;
+ resets = <&phyrst 0>,
+ <&cpg R9A08G046_USB_U2H0_HRESETN>;
+ phys = <&usb2_phy0 2>;
+ phy-names = "usb";
+ companion = <&ohci0>;
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ ehci1: usb@11e90100 {
+ compatible = "generic-ehci";
+ reg = <0 0x11e90100 0 0x100>;
+ interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD R9A08G046_USB_PCLK>,
+ <&cpg CPG_MOD R9A08G046_USB_U2H1_HCLK>;
+ resets = <&phyrst 1>,
+ <&cpg R9A08G046_USB_U2H1_HRESETN>;
+ phys = <&usb2_phy1 2>;
+ phy-names = "usb";
+ companion = <&ohci1>;
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ usb2_phy0: usb-phy@11e10200 {
+ compatible = "renesas,usb2-phy-r9a08g046";
+ reg = <0 0x11e10200 0 0x700>;
+ interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD R9A08G046_USB_PCLK>,
+ <&cpg CPG_MOD R9A08G046_USB_U2H0_HCLK>;
+ resets = <&phyrst 0>,
+ <&cpg R9A08G046_USB_U2H0_HRESETN>;
+ #phy-cells = <1>;
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ usb2_phy1: usb-phy@11e90200 {
+ compatible = "renesas,usb2-phy-r9a08g046";
+ reg = <0 0x11e90200 0 0x700>;
+ interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD R9A08G046_USB_PCLK>,
+ <&cpg CPG_MOD R9A08G046_USB_U2H1_HCLK>;
+ resets = <&phyrst 1>,
+ <&cpg R9A08G046_USB_U2H1_HRESETN>;
+ #phy-cells = <1>;
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
pcie: pcie@11e40000 {
reg = <0 0x11e40000 0 0x10000>;
ranges = <0x02000000 0 0x30000000 0 0x30000000 0 0x08000000>;
--
2.54.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 2/4] arm64: dts: renesas: r9a08g046: Add USB2.0 function device nodes
2026-08-25 13:15 [PATCH v2 0/4] Add USB2.0 support for RZ/G3E Tommaso Merciai
2026-08-25 13:15 ` [PATCH v2 1/4] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes Tommaso Merciai
@ 2026-08-25 13:15 ` Tommaso Merciai
2026-08-25 13:24 ` sashiko-bot
2026-08-25 13:15 ` [PATCH v2 3/4] arm64: dts: renesas: r9a09g047: Add USB2.0 support Tommaso Merciai
2026-08-25 13:15 ` [PATCH v2 4/4] arm64: dts: renesas: r9a09g047e57-smarc: Enable " Tommaso Merciai
3 siblings, 1 reply; 7+ messages in thread
From: Tommaso Merciai @ 2026-08-25 13:15 UTC (permalink / raw)
To: tomm.merciai, prabhakar.mahadev-lad.rj
Cc: linux-renesas-soc, biju.das.jz, Geert Uytterhoeven, Magnus Damm,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-kernel, Tommaso Merciai
From: Biju Das <biju.das.jz@bp.renesas.com>
Add USB2.0 function device nodes to the RZ/G3L (r9a08g046) SoC DTSI.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
---
v1->v2:
- Cherry picked from "Add RZ/G3L USB2.0 host support" v7.
v7: https://lore.kernel.org/all/20260812141940.246223-8-biju.das.jz@bp.renesas.com/
arch/arm64/boot/dts/renesas/r9a08g046.dtsi | 38 ++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
index 2d8c8fd8a01c..7cf29aed5211 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
@@ -1105,6 +1105,44 @@ usb2_phy1: usb-phy@11e90200 {
status = "disabled";
};
+ hsusb0: usb@11e30000 {
+ compatible = "renesas,usbhs-r9a08g046",
+ "renesas,rzg2l-usbhs";
+ reg = <0 0x11e30000 0 0x10000>;
+ interrupts = <GIC_SPI 123 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD R9A08G046_USB_PCLK>,
+ <&cpg CPG_MOD R9A08G046_USB_U2P0_EXR_CPUCLK>;
+ resets = <&phyrst 0>,
+ <&cpg R9A08G046_USB_U2P0_EXL_SYSRST>;
+ renesas,buswait = <7>;
+ phys = <&usb2_phy0 3>;
+ phy-names = "usb";
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ hsusb1: usb@11eb0000 {
+ compatible = "renesas,usbhs-r9a08g046",
+ "renesas,rzg2l-usbhs";
+ reg = <0 0x11eb0000 0 0x10000>;
+ interrupts = <GIC_SPI 127 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD R9A08G046_USB_PCLK>,
+ <&cpg CPG_MOD R9A08G046_USB_U2P1_EXR_CPUCLK>;
+ resets = <&phyrst 1>,
+ <&cpg R9A08G046_USB_U2P1_EXL_SYSRST>;
+ renesas,buswait = <7>;
+ phys = <&usb2_phy1 3>;
+ phy-names = "usb";
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
pcie: pcie@11e40000 {
reg = <0 0x11e40000 0 0x10000>;
ranges = <0x02000000 0 0x30000000 0 0x30000000 0 0x08000000>;
--
2.54.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 3/4] arm64: dts: renesas: r9a09g047: Add USB2.0 support
2026-08-25 13:15 [PATCH v2 0/4] Add USB2.0 support for RZ/G3E Tommaso Merciai
2026-08-25 13:15 ` [PATCH v2 1/4] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes Tommaso Merciai
2026-08-25 13:15 ` [PATCH v2 2/4] arm64: dts: renesas: r9a08g046: Add USB2.0 function " Tommaso Merciai
@ 2026-08-25 13:15 ` Tommaso Merciai
2026-08-25 13:28 ` sashiko-bot
2026-08-25 13:15 ` [PATCH v2 4/4] arm64: dts: renesas: r9a09g047e57-smarc: Enable " Tommaso Merciai
3 siblings, 1 reply; 7+ messages in thread
From: Tommaso Merciai @ 2026-08-25 13:15 UTC (permalink / raw)
To: tomm.merciai, prabhakar.mahadev-lad.rj
Cc: linux-renesas-soc, biju.das.jz, Tommaso Merciai,
Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, devicetree, linux-kernel
The Renesas RZ/G3E ("R9A09G047") SoC supports 1x channel with OTG/DRD
and 1x channel with host interface.
Add the EHCI, OHCI, USB2.0 PHY and reset control nodes for USB2.0 channels
in R9A09G047 SoC DTSI.
Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
---
v1->v2:
- No changes.
arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 124 +++++++++++++++++++++
1 file changed, 124 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
index 73757e8e2197..e26d43538ad8 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
@@ -1773,6 +1773,130 @@ usb3_phy: usb-phy@15870000 {
status = "disabled";
};
+ ohci0: usb@15800000 {
+ compatible = "generic-ohci";
+ reg = <0 0x15800000 0 0x100>;
+ interrupts = <GIC_SPI 742 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD 0xb3>, <&cpg CPG_MOD 0xb6>;
+ resets = <&usb20phyrst>, <&cpg 0xac>;
+ phys = <&usb2_phy0 1>;
+ phy-names = "usb";
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ ohci1: usb@15810000 {
+ compatible = "generic-ohci";
+ reg = <0 0x15810000 0 0x100>;
+ interrupts = <GIC_SPI 747 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD 0xb4>, <&cpg CPG_MOD 0xb7>;
+ resets = <&usb21phyrst>, <&cpg 0xad>;
+ phys = <&usb2_phy1 1>;
+ phy-names = "usb";
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ ehci0: usb@15800100 {
+ compatible = "generic-ehci";
+ reg = <0 0x15800100 0 0x100>;
+ interrupts = <GIC_SPI 743 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD 0xb3>, <&cpg CPG_MOD 0xb6>;
+ resets = <&usb20phyrst>, <&cpg 0xac>;
+ phys = <&usb2_phy0 2>;
+ phy-names = "usb";
+ companion = <&ohci0>;
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ ehci1: usb@15810100 {
+ compatible = "generic-ehci";
+ reg = <0 0x15810100 0 0x100>;
+ interrupts = <GIC_SPI 748 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD 0xb4>, <&cpg CPG_MOD 0xb7>;
+ resets = <&usb21phyrst>, <&cpg 0xad>;
+ phys = <&usb2_phy1 2>;
+ phy-names = "usb";
+ companion = <&ohci1>;
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ usb2_phy0: usb-phy@15800200 {
+ compatible = "renesas,usb2-phy-r9a09g047",
+ "renesas,usb2-phy-r9a09g057";
+ reg = <0 0x15800200 0 0x700>;
+ interrupts = <GIC_SPI 745 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD 0xb3>,
+ <&cpg CPG_CORE R9A09G047_USB2_0_CLK_CORE0>;
+ clock-names = "fck", "usb_x1";
+ resets = <&usb20phyrst>, <&cpg 0xac>;
+ #phy-cells = <1>;
+ power-domains = <&cpg>;
+ mux-states = <&usb20phyrst 1>;
+ status = "disabled";
+
+ usb2_phy0_vbus_otg: vbus-regulator {
+ regulator-name = "USB2PHY0-VBUS-OTG";
+ };
+ };
+
+ usb2_phy1: usb-phy@15810200 {
+ compatible = "renesas,usb2-phy-r9a09g047",
+ "renesas,usb2-phy-r9a09g057";
+ reg = <0 0x15810200 0 0x700>;
+ interrupts = <GIC_SPI 750 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD 0xb4>,
+ <&cpg CPG_CORE R9A09G047_USB2_0_CLK_CORE1>;
+ clock-names = "fck", "usb_x1";
+ resets = <&usb21phyrst>, <&cpg 0xad>;
+ #phy-cells = <1>;
+ power-domains = <&cpg>;
+ mux-states = <&usb21phyrst 0>;
+ status = "disabled";
+ };
+
+ hsusb0: usb@15820000 {
+ compatible = "renesas,usbhs-r9a09g047",
+ "renesas,rzg2l-usbhs";
+ reg = <0 0x15820000 0 0x10000>;
+ interrupts = <GIC_SPI 751 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 752 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 753 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 754 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD 0xb3>, <&cpg CPG_MOD 0xb5>;
+ resets = <&usb20phyrst>, <&cpg 0xae>;
+ phys = <&usb2_phy0 3>;
+ phy-names = "usb";
+ power-domains = <&cpg>;
+ status = "disabled";
+ };
+
+ usb20phyrst: reset-controller@15830000 {
+ compatible = "renesas,r9a09g047-usb2phy-reset",
+ "renesas,r9a09g057-usb2phy-reset";
+ reg = <0 0x15830000 0 0x10000>;
+ clocks = <&cpg CPG_MOD 0xb6>;
+ resets = <&cpg 0xaf>;
+ power-domains = <&cpg>;
+ #reset-cells = <0>;
+ #mux-state-cells = <1>;
+ status = "disabled";
+ };
+
+ usb21phyrst: reset-controller@15840000 {
+ compatible = "renesas,r9a09g047-usb2phy-reset",
+ "renesas,r9a09g057-usb2phy-reset";
+ reg = <0 0x15840000 0 0x10000>;
+ clocks = <&cpg CPG_MOD 0xb7>;
+ resets = <&cpg 0xaf>;
+ power-domains = <&cpg>;
+ #reset-cells = <0>;
+ #mux-state-cells = <1>;
+ status = "disabled";
+ };
+
sdhi0: mmc@15c00000 {
compatible = "renesas,sdhi-r9a09g047", "renesas,sdhi-r9a09g057";
reg = <0x0 0x15c00000 0 0x10000>;
--
2.54.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 4/4] arm64: dts: renesas: r9a09g047e57-smarc: Enable USB2.0 support
2026-08-25 13:15 [PATCH v2 0/4] Add USB2.0 support for RZ/G3E Tommaso Merciai
` (2 preceding siblings ...)
2026-08-25 13:15 ` [PATCH v2 3/4] arm64: dts: renesas: r9a09g047: Add USB2.0 support Tommaso Merciai
@ 2026-08-25 13:15 ` Tommaso Merciai
3 siblings, 0 replies; 7+ messages in thread
From: Tommaso Merciai @ 2026-08-25 13:15 UTC (permalink / raw)
To: tomm.merciai, prabhakar.mahadev-lad.rj
Cc: linux-renesas-soc, biju.das.jz, Tommaso Merciai,
Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, devicetree, linux-kernel
Enable USB2.0 support on the RZ/G3E EVK board. The USB1B_1A_HOST and
USB5_4_HOST connectors support host operation only, while USB0_OTG
supports both host and peripheral operation.
renesas-smarc2.dtsi is shared by all boards based on the RZ SMARC
Carrier II Board. USB2.0 is not yet supported on the RZ/G3L SMARC
EVK, so disable the common USB2.0 nodes in its board DTS until proper
support is added.
Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
---
v1->v2:
- Disabled RZ/G3L common nodes from r9a08g046l48-smarc.dts in this way
we can drop placeholder patch.
- Update commit body.
- Improved usb20_pins, usb21_pins comments.
.../boot/dts/renesas/r9a08g046l48-smarc.dts | 20 +++++++++
.../boot/dts/renesas/r9a09g047e57-smarc.dts | 45 +++++++++++++++++++
.../boot/dts/renesas/renesas-smarc2.dtsi | 25 +++++++++++
3 files changed, 90 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
index 5289efd1a430..ccd6e6394532 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
+++ b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
@@ -71,6 +71,18 @@ codec_dai: codec {
#endif
};
+&ehci0 {
+ status = "disabled";
+};
+
+&ehci1 {
+ status = "disabled";
+};
+
+&hsusb0 {
+ status = "disabled";
+};
+
&i2c2 {
pinctrl-0 = <&i2c2_pins>;
pinctrl-names = "default";
@@ -122,6 +134,14 @@ &keys {
#endif
};
+&ohci0 {
+ status = "disabled";
+};
+
+&ohci1 {
+ status = "disabled";
+};
+
&pinctrl {
audio_clk_pins: audio-clock {
pinmux = <RZG3L_PORT_PINMUX(H, 4, 6)>, /* AUDIO_CLK_B */
diff --git a/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts b/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts
index 4eed095b683b..5bf0be20aa66 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts
+++ b/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts
@@ -296,6 +296,28 @@ sd1-data {
};
};
+ usb20_pins: usb20 {
+ ovc {
+ pinmux = <RZG3E_PORT_PINMUX(0, 0, 12)>; /* USB20_OVRCURN */
+ bias-pull-up;
+ };
+
+ vbus {
+ pinmux = <RZG3E_PORT_PINMUX(0, 1, 12)>; /* USB20_VBUSEN */
+ };
+ };
+
+ usb21_pins: usb21 {
+ ovc {
+ pinmux = <RZG3E_PORT_PINMUX(G, 6, 12)>; /* USB21_OVRCURN */
+ bias-pull-up;
+ };
+
+ vbus {
+ pinmux = <RZG3E_PORT_PINMUX(K, 3, 12)>; /* USB21_VBUSEN */
+ };
+ };
+
usb3_pins: usb3 {
pinmux = <RZG3E_PORT_PINMUX(4, 1, 12)>, /* USB30_VBUSEN */
<RZG3E_PORT_PINMUX(4, 0, 12)>; /* USB30_OVRCURN */
@@ -392,6 +414,29 @@ &ssi4 {
shared-pin;
};
+&usb20phyrst {
+ status = "okay";
+};
+
+&usb21phyrst {
+ status = "okay";
+};
+
+&usb2_phy0 {
+ pinctrl-0 = <&usb20_pins>;
+ pinctrl-names = "default";
+
+ vbus-supply = <&usb2_phy0_vbus_otg>;
+ status = "okay";
+};
+
+&usb2_phy1 {
+ pinctrl-0 = <&usb21_pins>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
&usb3_phy {
status = "okay";
};
diff --git a/arch/arm64/boot/dts/renesas/renesas-smarc2.dtsi b/arch/arm64/boot/dts/renesas/renesas-smarc2.dtsi
index 696a933af808..e07fd9396adb 100644
--- a/arch/arm64/boot/dts/renesas/renesas-smarc2.dtsi
+++ b/arch/arm64/boot/dts/renesas/renesas-smarc2.dtsi
@@ -91,11 +91,36 @@ &canfd {
status = "okay";
};
+&ehci0 {
+ dr_mode = "otg";
+ status = "okay";
+};
+
+&ehci1 {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&hsusb0 {
+ dr_mode = "otg";
+ status = "okay";
+};
+
&i2c0 {
status = "okay";
clock-frequency = <400000>;
};
+&ohci0 {
+ dr_mode = "otg";
+ status = "okay";
+};
+
+&ohci1 {
+ dr_mode = "host";
+ status = "okay";
+};
+
&pcie {
status = "okay";
};
--
2.54.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/4] arm64: dts: renesas: r9a08g046: Add USB2.0 function device nodes
2026-08-25 13:15 ` [PATCH v2 2/4] arm64: dts: renesas: r9a08g046: Add USB2.0 function " Tommaso Merciai
@ 2026-08-25 13:24 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-08-25 13:24 UTC (permalink / raw)
To: Tommaso Merciai; +Cc: robh, conor+dt, wsa+renesas, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The newly added compatible string `renesas,usbhs-r9a08g046` is not documented in the device tree bindings schema.
--
--- Patch [2]: [PATCH v2 2/4] arm64: dts: renesas: r9a08g046: Add USB2.0 function device nodes ---
commit aca75e8826ebba62b782808787871b01e25c5783
Author: Biju Das <biju.das.jz@bp.renesas.com>
arm64: dts: renesas: r9a08g046: Add USB2.0 function device nodes
Add USB2.0 function device nodes to the RZ/G3L (r9a08g046) SoC DTSI.
> diff --git a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
> index 2d8c8fd8a01cd..7cf29aed52110 100644
> --- a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
> @@ -1105,6 +1105,44 @@ usb2_phy1: usb-phy@11e90200 {
> status = "disabled";
> };
>
> + hsusb0: usb@11e30000 {
> + compatible = "renesas,usbhs-r9a08g046",
> + "renesas,rzg2l-usbhs";
[Severity: Low]
This isn't a bug, but it appears the newly added compatible string
renesas,usbhs-r9a08g046 is not documented in the device tree bindings
schema. Will this cause warnings during make dtbs_check?
[ ... ]
> + hsusb1: usb@11eb0000 {
> + compatible = "renesas,usbhs-r9a08g046",
> + "renesas,rzg2l-usbhs";
[Severity: Low]
This isn't a bug, but the same undocumented compatible string is used here
for the hsusb1 node. Should this string be added to
Documentation/devicetree/bindings/usb/renesas,usbhs.yaml?
--
Sashiko AI review · https://sashiko.dev/#/patchset/cover.1787663426.git.tommaso.merciai.xr@bp.renesas.com?part=2
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 3/4] arm64: dts: renesas: r9a09g047: Add USB2.0 support
2026-08-25 13:15 ` [PATCH v2 3/4] arm64: dts: renesas: r9a09g047: Add USB2.0 support Tommaso Merciai
@ 2026-08-25 13:28 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-08-25 13:28 UTC (permalink / raw)
To: Tommaso Merciai; +Cc: wsa+renesas, devicetree, conor+dt, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The `usb2_phy0` and `usb2_phy1` nodes incorrectly include the host controller resets (`<&cpg 0xac>` and `<&cpg 0xad>`) as their second `resets` item.
--
--- Patch [3]: [PATCH v2 3/4] arm64: dts: renesas: r9a09g047: Add USB2.0 support ---
commit 631196a322ba0beff3a83f906e11925634e7691a
Author: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
arm64: dts: renesas: r9a09g047: Add USB2.0 support
The Renesas RZ/G3E ("R9A09G047") SoC supports 1x channel with OTG/DRD
and 1x channel with host interface. This commit adds the EHCI, OHCI,
USB2.0 PHY and reset control nodes for USB2.0 channels in R9A09G047 SoC DTSI.
> diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> index 73757e8e21970..e26d43538ad8c 100644
> --- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
[ ... ]
> @@ -1773,6 +1773,130 @@ usb3_phy: usb-phy@15870000 {
[ ... ]
> + usb2_phy0: usb-phy@15800200 {
> + compatible = "renesas,usb2-phy-r9a09g047",
> + "renesas,usb2-phy-r9a09g057";
> + reg = <0 0x15800200 0 0x700>;
> + interrupts = <GIC_SPI 745 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cpg CPG_MOD 0xb3>,
> + <&cpg CPG_CORE R9A09G047_USB2_0_CLK_CORE0>;
> + clock-names = "fck", "usb_x1";
> + resets = <&usb20phyrst>, <&cpg 0xac>;
[Severity: Medium]
Does this node incorrectly include the host side reset <&cpg 0xac> as the
second item?
If the PHY driver manipulates this second reset, it will reset the host
controller behind the USB host driver's back. This can break USB
functionality or cause crashes if active transfers or DMAs are interrupted.
Could this be a copy-paste error from the ohci0/ehci0 nodes?
> + #phy-cells = <1>;
> + power-domains = <&cpg>;
> + mux-states = <&usb20phyrst 1>;
> + status = "disabled";
> +
> + usb2_phy0_vbus_otg: vbus-regulator {
> + regulator-name = "USB2PHY0-VBUS-OTG";
> + };
> + };
> +
> + usb2_phy1: usb-phy@15810200 {
> + compatible = "renesas,usb2-phy-r9a09g047",
> + "renesas,usb2-phy-r9a09g057";
> + reg = <0 0x15810200 0 0x700>;
> + interrupts = <GIC_SPI 750 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cpg CPG_MOD 0xb4>,
> + <&cpg CPG_CORE R9A09G047_USB2_0_CLK_CORE1>;
> + clock-names = "fck", "usb_x1";
> + resets = <&usb21phyrst>, <&cpg 0xad>;
[Severity: Medium]
Similar to the usb2_phy0 node above, does this node incorrectly include the
host side reset <&cpg 0xad>?
If the PHY driver accesses this second reset item, it will reset the host
controller unexpectedly.
> + #phy-cells = <1>;
> + power-domains = <&cpg>;
> + mux-states = <&usb21phyrst 0>;
> + status = "disabled";
> + };
--
Sashiko AI review · https://sashiko.dev/#/patchset/cover.1787663426.git.tommaso.merciai.xr@bp.renesas.com?part=3
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-08-25 13:28 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-25 13:15 [PATCH v2 0/4] Add USB2.0 support for RZ/G3E Tommaso Merciai
2026-08-25 13:15 ` [PATCH v2 1/4] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes Tommaso Merciai
2026-08-25 13:15 ` [PATCH v2 2/4] arm64: dts: renesas: r9a08g046: Add USB2.0 function " Tommaso Merciai
2026-08-25 13:24 ` sashiko-bot
2026-08-25 13:15 ` [PATCH v2 3/4] arm64: dts: renesas: r9a09g047: Add USB2.0 support Tommaso Merciai
2026-08-25 13:28 ` sashiko-bot
2026-08-25 13:15 ` [PATCH v2 4/4] arm64: dts: renesas: r9a09g047e57-smarc: Enable " Tommaso Merciai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox