* [PATCH v7 2/9] dt-bindings: reset: renesas,rzg2l-usbphy-ctrl: Document RZ/G3L support
2026-08-12 14:19 [PATCH v7 0/9] Add RZ/G3L USB2.0 host support Biju
@ 2026-08-12 14:19 ` Biju
2026-08-12 14:19 ` [PATCH v7 6/9] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes Biju
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Biju @ 2026-08-12 14:19 UTC (permalink / raw)
To: Philipp Zabel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Geert Uytterhoeven, Magnus Damm
Cc: Biju Das, devicetree, linux-kernel, linux-renesas-soc,
Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Document Renesas RZ/G3L (r9a08g046) USB PHY controller bindings.
The RZ/G3L USB PHY block is similar to RZ/G3S but differs in that each
port has its own OTG controller, whereas RZ/G3S only has one on port 1.
To reflect this, RZ/G3L uses a regulators sub-node with per-port vbus0
and vbus1 entries instead of the single regulator-vbus property used
by other compatible SoCs.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v6->v7:
* Added additionalProperties: false in regulators node.
v5->v6:
* No change.
v4->v5:
* Dropped renesas,sysc-pwrrdy for RZ/G3L as pwrrdy signal is modelled as
power sequence.
* Dropped the tag from Conor due to above change .
v3->v4:
* No change.
v2->v3:
* Replaced items->enum
* Collected tag.
v1->v2:
* Updated commit description.
* Added enum instead of const in the compatible section.
* Dropped regulator1-vbus and added a regulators group node.
* Updated schema check.
---
.../reset/renesas,rzg2l-usbphy-ctrl.yaml | 41 ++++++++++++++++++-
1 file changed, 40 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/reset/renesas,rzg2l-usbphy-ctrl.yaml b/Documentation/devicetree/bindings/reset/renesas,rzg2l-usbphy-ctrl.yaml
index c83469a1b379..75e034fa7ce7 100644
--- a/Documentation/devicetree/bindings/reset/renesas,rzg2l-usbphy-ctrl.yaml
+++ b/Documentation/devicetree/bindings/reset/renesas,rzg2l-usbphy-ctrl.yaml
@@ -23,6 +23,7 @@ properties:
- renesas,r9a07g054-usbphy-ctrl # RZ/V2L
- const: renesas,rzg2l-usbphy-ctrl
- const: renesas,r9a08g045-usbphy-ctrl # RZ/G3S
+ - const: renesas,r9a08g046-usbphy-ctrl # RZ/G3L
reg:
maxItems: 1
@@ -50,6 +51,29 @@ properties:
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
+ regulators:
+ type: object
+ additionalProperties: false
+ description:
+ list of vbus regulators provided by this controller.
+
+ properties:
+ vbus0:
+ type: object
+ description: Port 1 USB VBUS regulator
+ $ref: /schemas/regulator/regulator.yaml#
+ unevaluatedProperties: false
+
+ vbus1:
+ type: object
+ description: Port 2 USB VBUS regulator
+ $ref: /schemas/regulator/regulator.yaml#
+ unevaluatedProperties: false
+
+ required:
+ - vbus0
+ - vbus1
+
renesas,sysc-pwrrdy:
description:
The system controller PWRRDY indicates to the USB PHY if the power supply
@@ -71,7 +95,6 @@ required:
- resets
- power-domains
- '#reset-cells'
- - regulator-vbus
allOf:
- if:
@@ -86,6 +109,22 @@ allOf:
properties:
renesas,sysc-pwrrdy: false
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: renesas,r9a08g046-usbphy-ctrl
+ then:
+ properties:
+ regulator-vbus: false
+ required:
+ - regulators
+ else:
+ properties:
+ regulators: false
+ required:
+ - regulator-vbus
+
additionalProperties: false
examples:
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH v7 6/9] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes
2026-08-12 14:19 [PATCH v7 0/9] Add RZ/G3L USB2.0 host support Biju
2026-08-12 14:19 ` [PATCH v7 2/9] dt-bindings: reset: renesas,rzg2l-usbphy-ctrl: Document RZ/G3L support Biju
@ 2026-08-12 14:19 ` Biju
2026-08-12 15:44 ` sashiko-bot
2026-08-12 14:19 ` [PATCH v7 7/9] arm64: dts: renesas: r9a08g046: Add USB2.0 function " Biju
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Biju @ 2026-08-12 14:19 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Biju Das, linux-renesas-soc, devicetree, linux-kernel,
Prabhakar Mahadev Lad, Biju Das
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>
---
v6->v7:
* Updated commit header
v5->v6:
* No change
v4->v5:
* Dropped renesas,sysc-pwrrdy property.
v3->v4:
* No change
v2->v3:
* No change
v1->v2:
* Updated commit description.
* Added regulators group node and its children.
---
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 85e409ac8d5c..bf0dbac66d14 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
@@ -1198,6 +1198,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.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v7 6/9] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes
2026-08-12 14:19 ` [PATCH v7 6/9] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes Biju
@ 2026-08-12 15:44 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-08-12 15:44 UTC (permalink / raw)
To: Biju; +Cc: wsa+renesas, robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Missing Driver Support and DT Binding Documentation for 'renesas,usb2-phy-r9a08g046'
- [High] Unprobeable Device due to Missing Power Sequencer Provider
--
--- Patch [6]: [PATCH v7 6/9] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes ---
commit 0ab685ca95e56aea571685bc10fd9638d8846f8d
Author: Biju Das <biju.das.jz@bp.renesas.com>
arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes
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.
> diff --git a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
> index c63a857f0e5b0..2d8c8fd8a01cd 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";
[Severity: High]
Does omitting the renesas,sysc-pwrrdy property here cause the driver to fail
to probe?
In drivers/reset/reset-rzg2l-usbphy-ctrl.c, when the driver sees that the
renesas,sysc-pwrrdy property is missing, it falls back to requesting a power
sequencer:
priv->pwrseq = devm_pwrseq_get(dev, "usb-pwrrdy");
if (IS_ERR(priv->pwrseq)) {
...
Since there is no power sequencer provider in the kernel exposing a "usb-pwrrdy"
target, devm_pwrseq_get() will return -EPROBE_DEFER. This would leave the USB
PHY and dependent host controllers permanently uninitialized.
> + reg = <0 0x11e00000 0 0x10000>;
> + clocks = <&cpg CPG_MOD R9A08G046_USB_PCLK>;
[ ... ]
> + ohci0: usb@11e10000 {
> + compatible = "generic-ohci";
[ ... ]
> + phys = <&usb2_phy0 1>;
> + phy-names = "usb";
> + power-domains = <&cpg>;
> + status = "disabled";
> + };
[ ... ]
> + usb2_phy0: usb-phy@11e10200 {
> + compatible = "renesas,usb2-phy-r9a08g046";
[Severity: High]
Will this node fail to bind to a driver?
The "renesas,usb2-phy-r9a08g046" compatible string doesn't appear to be
supported by the Renesas USB PHY driver (drivers/phy/renesas/phy-rcar-gen3-usb2.c),
and there is no fallback compatible string (such as "renesas,rzg2l-usb2-phy")
provided here.
Without a match in the driver's of_match_table, the PHY won't probe. Because
the OHCI and EHCI controllers depend on this PHY via their phys property, they
will also permanently fail to probe with -EPROBE_DEFER, rendering the USB ports
non-functional.
> + reg = <0 0x11e10200 0 0x700>;
> + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260812141940.246223-1-biju.das.jz@bp.renesas.com?part=6
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v7 7/9] arm64: dts: renesas: r9a08g046: Add USB2.0 function device nodes
2026-08-12 14:19 [PATCH v7 0/9] Add RZ/G3L USB2.0 host support Biju
2026-08-12 14:19 ` [PATCH v7 2/9] dt-bindings: reset: renesas,rzg2l-usbphy-ctrl: Document RZ/G3L support Biju
2026-08-12 14:19 ` [PATCH v7 6/9] arm64: dts: renesas: r9a08g046: Add USB2.0 host/phy device nodes Biju
@ 2026-08-12 14:19 ` Biju
2026-08-12 15:56 ` sashiko-bot
2026-08-12 14:19 ` [PATCH v7 8/9] arm64: dts: renesas: r9a08g046l48-smarc: Add USB2.0 Host support Biju
2026-08-12 14:19 ` [PATCH v7 9/9] arm64: dts: renesas: r9a08g046l48-smarc: Enable USB2.0 function support Biju
4 siblings, 1 reply; 9+ messages in thread
From: Biju @ 2026-08-12 14:19 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Biju Das, linux-renesas-soc, devicetree, linux-kernel,
Prabhakar Mahadev Lad, Biju Das
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>
---
v7:
* Moved the patch from [1]
* Collected the tag.
[1] https://lore.kernel.org/all/20260707145135.247565-3-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 bf0dbac66d14..08d919470830 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
@@ -1302,6 +1302,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.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v7 7/9] arm64: dts: renesas: r9a08g046: Add USB2.0 function device nodes
2026-08-12 14:19 ` [PATCH v7 7/9] arm64: dts: renesas: r9a08g046: Add USB2.0 function " Biju
@ 2026-08-12 15:56 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-08-12 15:56 UTC (permalink / raw)
To: Biju; +Cc: wsa+renesas, devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Unprobeable Hardware Dependency causing USB controllers to fail
- [Low] Missing Device Tree Binding Documentation for new compatible string
--
--- Patch [7]: [PATCH v7 7/9] arm64: dts: renesas: r9a08g046: Add USB2.0 function device nodes ---
commit 300a9b2b9e754dfa39a649f78e39731613f70c2b
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.
Link: https://lore.kernel.org/all/20260707145135.247565-3-biju.das.jz@bp.renesas.com/
> 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]
Is the renesas,usbhs-r9a08g046 compatible string documented in the device
tree bindings?
It appears this might cause dtbs_check to fail with a warning since it
is not defined in the valid enumerations within
Documentation/devicetree/bindings/usb/renesas,usbhs.yaml.
> + 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>;
[Severity: High]
Will this create an unresolvable probe deferral?
The renesas_usbhs driver calls phy_get() during probe, depending on
usb2_phy0 here. However, the usb2_phy0 node only specifies
compatible = "renesas,usb2-phy-r9a08g046" without a generic fallback like
"renesas,rzg2l-usb2-phy".
Since the phy-rcar-gen3-usb2.c PHY driver does not match
"renesas,usb2-phy-r9a08g046", the PHY device might not probe, causing
phy_get() to continually return -EPROBE_DEFER.
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260812141940.246223-1-biju.das.jz@bp.renesas.com?part=7
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v7 8/9] arm64: dts: renesas: r9a08g046l48-smarc: Add USB2.0 Host support
2026-08-12 14:19 [PATCH v7 0/9] Add RZ/G3L USB2.0 host support Biju
` (2 preceding siblings ...)
2026-08-12 14:19 ` [PATCH v7 7/9] arm64: dts: renesas: r9a08g046: Add USB2.0 function " Biju
@ 2026-08-12 14:19 ` Biju
2026-08-12 16:08 ` sashiko-bot
2026-08-12 14:19 ` [PATCH v7 9/9] arm64: dts: renesas: r9a08g046l48-smarc: Enable USB2.0 function support Biju
4 siblings, 1 reply; 9+ messages in thread
From: Biju @ 2026-08-12 14:19 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Biju Das, linux-renesas-soc, devicetree, linux-kernel,
Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Enable USB2.0 Host on the RZ/G3L SMARC board (r9a08g046l48-smarc).
Port 0 (ehci0, ohci0, usb2_phy0) is configured as OTG with
usb0_pins pinmux (USB20_OVRCUR, USB20_VBUSEN) and usb0_vbus_otg
as the VBUS supply. Port 1 (ehci1, ohci1, usb2_phy1) is configured
as host-only with usb1_pins pinmux (USB21_OVRCUR, USB21_VBUSEN),
usb1_vbus_otg as the VBUS supply, and renesas,no-otg-pins set to
indicate no OTG pin routing. The phyrst USB PHY reset controller is
also enabled.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v6->v7:
* Moved the patch.
* dr_mode changed to 'host' as function is not enabled yet.
v5->v6:
* No change.
v4->v5:
* No change.
v3->v4:
* No change.
v2->v3:
* No change.
v1->v2:
* Updated commit description.
---
.../boot/dts/renesas/r9a08g046l48-smarc.dts | 49 +++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
index 96cc7ee46a6a..522cfde4b66a 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
+++ b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
@@ -87,6 +87,16 @@ vqmmc_sd1_pvdd: regulator-vqmmc-sd1-pvdd {
#endif
};
+&ehci0 {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&ehci1 {
+ dr_mode = "host";
+ status = "okay";
+};
+
&i2c2 {
pinctrl-0 = <&i2c2_pins>;
pinctrl-names = "default";
@@ -138,6 +148,20 @@ &keys {
#endif
};
+&ohci0 {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&ohci1 {
+ dr_mode = "host";
+ status = "okay";
+};
+
+&phyrst {
+ status = "okay";
+};
+
&pinctrl {
audio_clk_pins: audio-clock {
pinmux = <RZG3L_PORT_PINMUX(H, 4, 6)>, /* AUDIO_CLK_B */
@@ -259,6 +283,16 @@ ssi0_pins: ssi0 {
<RZG3L_PORT_PINMUX(H, 2, 9)>, /* SSIF0_RCK */
<RZG3L_PORT_PINMUX(H, 3, 9)>; /* SSIF0_TXD */
};
+
+ usb0_pins: usb0 {
+ pinmux = <RZG3L_PORT_PINMUX(3, 0, 12)>, /* USB20_OVRCUR */
+ <RZG3L_PORT_PINMUX(3, 1, 12)>; /* USB20_VBUSEN */
+ };
+
+ usb1_pins: usb1 {
+ pinmux = <RZG3L_PORT_PINMUX(3, 4, 12)>, /* USB21_OVRCUR */
+ <RZG3L_PORT_PINMUX(3, 5, 12)>; /* USB21_VBUSEN */
+ };
};
#if SW_SER0_PMOD
@@ -330,3 +364,18 @@ &ssi0 {
status = "okay";
};
#endif
+
+&usb2_phy0 {
+ pinctrl-0 = <&usb0_pins>;
+ pinctrl-names = "default";
+ vbus-supply = <&usb0_vbus_otg>;
+ status = "okay";
+};
+
+&usb2_phy1 {
+ pinctrl-0 = <&usb1_pins>;
+ pinctrl-names = "default";
+ vbus-supply = <&usb1_vbus_otg>;
+ renesas,no-otg-pins;
+ status = "okay";
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH v7 8/9] arm64: dts: renesas: r9a08g046l48-smarc: Add USB2.0 Host support
2026-08-12 14:19 ` [PATCH v7 8/9] arm64: dts: renesas: r9a08g046l48-smarc: Add USB2.0 Host support Biju
@ 2026-08-12 16:08 ` sashiko-bot
0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-08-12 16:08 UTC (permalink / raw)
To: Biju; +Cc: robh, wsa+renesas, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
New issues:
- [Medium] Commit message and code mismatch regarding Port 0 OTG configuration
Pre-existing issues:
- [High] Missing driver support and fallback compatible string for USB2 PHY nodes
--
--- Patch [8]: [PATCH v7 8/9] arm64: dts: renesas: r9a08g046l48-smarc: Add USB2.0 Host support ---
commit c3aecaee03c204651cbf54effdb9c6095c67ace8
Author: Biju Das <biju.das.jz@bp.renesas.com>
arm64: dts: renesas: r9a08g046l48-smarc: Add USB2.0 Host support
Enable USB2.0 Host on the RZ/G3L SMARC board (r9a08g046l48-smarc).
> Port 0 (ehci0, ohci0, usb2_phy0) is configured as OTG with
> usb0_pins pinmux (USB20_OVRCUR, USB20_VBUSEN) and usb0_vbus_otg
> as the VBUS supply. Port 1 (ehci1, ohci1, usb2_phy1) is configured
> as host-only with usb1_pins pinmux (USB21_OVRCUR, USB21_VBUSEN),
> usb1_vbus_otg as the VBUS supply, and renesas,no-otg-pins set to
> indicate no OTG pin routing. The phyrst USB PHY reset controller is
> also enabled.
[Severity: Medium]
The commit description states Port 0 is configured as OTG, but the patch
configures ehci0 and ohci0 with dr_mode = "host".
I noticed the patch changelog mentions dr_mode was changed to 'host' because
the function is not enabled yet. Could the main commit description be
updated to reflect the current code?
[ ... ]
> diff --git a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
> --- a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
> +++ b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
[ ... ]
> @@ -241,3 +275,18 @@ &ssi0 {
> status = "okay";
> };
> #endif
> +
> +&usb2_phy0 {
> + pinctrl-0 = <&usb0_pins>;
> + pinctrl-names = "default";
> + vbus-supply = <&usb0_vbus_otg>;
> + status = "okay";
> +};
[Severity: High]
This is a pre-existing issue, but will enabling this node result in a probe
failure that causes the EHCI and OHCI host controllers to defer indefinitely?
The usb2_phy0 node defined in arch/arm64/boot/dts/renesas/r9a08g046.dtsi
uses the single compatible string "renesas,usb2-phy-r9a08g046":
usb2_phy0: usb-phy@11e10200 {
compatible = "renesas,usb2-phy-r9a08g046";
This string is missing from the rcar_gen3_phy_usb2_match_table in
drivers/phy/renesas/phy-rcar-gen3-usb2.c, and the device tree lacks a
fallback string like "renesas,rzg2l-usb2-phy".
Does this node require a fallback compatible string or driver updates before
it can be successfully enabled?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260812141940.246223-1-biju.das.jz@bp.renesas.com?part=8
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v7 9/9] arm64: dts: renesas: r9a08g046l48-smarc: Enable USB2.0 function support
2026-08-12 14:19 [PATCH v7 0/9] Add RZ/G3L USB2.0 host support Biju
` (3 preceding siblings ...)
2026-08-12 14:19 ` [PATCH v7 8/9] arm64: dts: renesas: r9a08g046l48-smarc: Add USB2.0 Host support Biju
@ 2026-08-12 14:19 ` Biju
4 siblings, 0 replies; 9+ messages in thread
From: Biju @ 2026-08-12 14:19 UTC (permalink / raw)
To: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Biju Das, linux-renesas-soc, devicetree, linux-kernel,
Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Switch ehci0 and ohci0 from dr_mode = "host" to "otg", and enable
the hsusb0 USB2.0 function controller node with dr_mode = "otg" and
status = "okay", so USB2.0 device/OTG mode is supported on the
RZ/G3L SMARC (r9a08g046l48) board.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
v7:
* Moved the patch from [1]
* Updated commit description
* Updated dr_mode = "host" to "otg" in {e,o}hci0 device nodes.
* Retained the tag as change is trivial.
[1] https://lore.kernel.org/all/20260707145135.247565-4-biju.das.jz@bp.renesas.com/
---
arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
index 522cfde4b66a..a3c491778aba 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
+++ b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
@@ -88,7 +88,7 @@ vqmmc_sd1_pvdd: regulator-vqmmc-sd1-pvdd {
};
&ehci0 {
- dr_mode = "host";
+ dr_mode = "otg";
status = "okay";
};
@@ -97,6 +97,11 @@ &ehci1 {
status = "okay";
};
+&hsusb0 {
+ dr_mode = "otg";
+ status = "okay";
+};
+
&i2c2 {
pinctrl-0 = <&i2c2_pins>;
pinctrl-names = "default";
@@ -149,7 +154,7 @@ &keys {
};
&ohci0 {
- dr_mode = "host";
+ dr_mode = "otg";
status = "okay";
};
--
2.43.0
^ permalink raw reply related [flat|nested] 9+ messages in thread