[PATCH v2 3/3] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces

John Madieu posted 3 patches 4 months ago
There is a newer version of this series
[PATCH v2 3/3] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces
Posted by John Madieu 4 months ago
Enable the Gigabit Ethernet Interfaces (GBETH) populated on the RZ/G3E SMARC EVK

Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Tested-by: Biju Das <biju.das.jz@bp.renesas.com>
Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
---
 .../boot/dts/renesas/rzg3e-smarc-som.dtsi     | 106 ++++++++++++++++++
 1 file changed, 106 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi b/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi
index f99a09d04ddd..4b4c7f3381ad 100644
--- a/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi
+++ b/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi
@@ -26,6 +26,8 @@ / {
 	compatible = "renesas,rzg3e-smarcm", "renesas,r9a09g047e57", "renesas,r9a09g047";
 
 	aliases {
+		ethernet0 = &eth0;
+		ethernet1 = &eth1;
 		i2c2 = &i2c2;
 		mmc0 = &sdhi0;
 		mmc2 = &sdhi2;
@@ -77,6 +79,74 @@ &audio_extal_clk {
 	clock-frequency = <48000000>;
 };
 
+&eth0 {
+	phy-handle = <&phy0>;
+	phy-mode = "rgmii-id";
+
+	pinctrl-0 = <&eth0_pins>;
+	pinctrl-names = "default";
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "snps,dwmac-mdio";
+
+		phy0: ethernet-phy@7 {
+			compatible = "ethernet-phy-id0022.1640",
+				     "ethernet-phy-ieee802.3-c22";
+			reg = <7>;
+			interrupts-extended = <&icu 3 IRQ_TYPE_LEVEL_LOW>;
+			rxc-skew-psec = <1400>;
+			txc-skew-psec = <1400>;
+			rxdv-skew-psec = <0>;
+			txdv-skew-psec = <0>;
+			rxd0-skew-psec = <0>;
+			rxd1-skew-psec = <0>;
+			rxd2-skew-psec = <0>;
+			rxd3-skew-psec = <0>;
+			txd0-skew-psec = <0>;
+			txd1-skew-psec = <0>;
+			txd2-skew-psec = <0>;
+			txd3-skew-psec = <0>;
+		};
+	};
+};
+
+&eth1 {
+	phy-handle = <&phy1>;
+	phy-mode = "rgmii-id";
+
+	pinctrl-0 = <&eth1_pins>;
+	pinctrl-names = "default";
+	status = "okay";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "snps,dwmac-mdio";
+
+		phy1: ethernet-phy@7 {
+			compatible = "ethernet-phy-id0022.1640",
+				     "ethernet-phy-ieee802.3-c22";
+			reg = <7>;
+			interrupts-extended = <&icu 16 IRQ_TYPE_LEVEL_LOW>;
+			rxc-skew-psec = <1400>;
+			txc-skew-psec = <1400>;
+			rxdv-skew-psec = <0>;
+			txdv-skew-psec = <0>;
+			rxd0-skew-psec = <0>;
+			rxd1-skew-psec = <0>;
+			rxd2-skew-psec = <0>;
+			rxd3-skew-psec = <0>;
+			txd0-skew-psec = <0>;
+			txd1-skew-psec = <0>;
+			txd2-skew-psec = <0>;
+			txd3-skew-psec = <0>;
+		};
+	};
+};
+
 &gpu {
 	status = "okay";
 	mali-supply = <&reg_vdd0p8v_others>;
@@ -103,6 +173,42 @@ raa215300: pmic@12 {
 };
 
 &pinctrl {
+	eth0_pins: eth0 {
+		pinmux = <RZG3E_PORT_PINMUX(A, 1, 1)>, /* MDC */
+			 <RZG3E_PORT_PINMUX(A, 0, 1)>, /* MDIO */
+			 <RZG3E_PORT_PINMUX(C, 2, 15)>, /* PHY_INTR (IRQ2) */
+			 <RZG3E_PORT_PINMUX(C, 1, 1)>, /* RXD3 */
+			 <RZG3E_PORT_PINMUX(C, 0, 1)>, /* RXD2 */
+			 <RZG3E_PORT_PINMUX(B, 7, 1)>, /* RXD1 */
+			 <RZG3E_PORT_PINMUX(B, 6, 1)>, /* RXD0 */
+			 <RZG3E_PORT_PINMUX(B, 0, 1)>, /* RXC */
+			 <RZG3E_PORT_PINMUX(A, 2, 1)>, /* RX_CTL */
+			 <RZG3E_PORT_PINMUX(B, 5, 1)>, /* TXD3 */
+			 <RZG3E_PORT_PINMUX(B, 4, 1)>, /* TXD2 */
+			 <RZG3E_PORT_PINMUX(B, 3, 1)>, /* TXD1 */
+			 <RZG3E_PORT_PINMUX(B, 2, 1)>, /* TXD0 */
+			 <RZG3E_PORT_PINMUX(B, 1, 1)>, /* TXC */
+			 <RZG3E_PORT_PINMUX(A, 3, 1)>; /* TX_CTL */
+	};
+
+	eth1_pins: eth1 {
+		pinmux = <RZG3E_PORT_PINMUX(D, 1, 1)>, /* MDC */
+			 <RZG3E_PORT_PINMUX(D, 0, 1)>, /* MDIO */
+			 <RZG3E_PORT_PINMUX(F, 2, 15)>, /* PHY_INTR (IRQ15) */
+			 <RZG3E_PORT_PINMUX(F, 1, 1)>, /* RXD3 */
+			 <RZG3E_PORT_PINMUX(F, 0, 1)>, /* RXD2 */
+			 <RZG3E_PORT_PINMUX(E, 7, 1)>, /* RXD1 */
+			 <RZG3E_PORT_PINMUX(E, 6, 1)>, /* RXD0 */
+			 <RZG3E_PORT_PINMUX(E, 0, 1)>, /* RXC */
+			 <RZG3E_PORT_PINMUX(D, 2, 1)>, /* RX_CTL */
+			 <RZG3E_PORT_PINMUX(E, 5, 1)>, /* TXD3 */
+			 <RZG3E_PORT_PINMUX(E, 4, 1)>, /* TXD2 */
+			 <RZG3E_PORT_PINMUX(E, 3, 1)>, /* TXD1 */
+			 <RZG3E_PORT_PINMUX(E, 2, 1)>, /* TXD0 */
+			 <RZG3E_PORT_PINMUX(E, 1, 1)>, /* TXC */
+			 <RZG3E_PORT_PINMUX(D, 3, 1)>; /* TX_CTL */
+	};
+
 	i2c2_pins: i2c {
 		pinmux = <RZG3E_PORT_PINMUX(3, 4, 1)>, /* SCL2 */
 			 <RZG3E_PORT_PINMUX(3, 5, 1)>; /* SDA2 */
-- 
2.25.1
Re: [PATCH v2 3/3] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces
Posted by Lad, Prabhakar 3 months, 3 weeks ago
Hi John,

Thank you for the patch.

On Wed, Jun 11, 2025 at 7:20 AM John Madieu
<john.madieu.xa@bp.renesas.com> wrote:
>
> Enable the Gigabit Ethernet Interfaces (GBETH) populated on the RZ/G3E SMARC EVK
>
> Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
> Tested-by: Biju Das <biju.das.jz@bp.renesas.com>
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
> ---
>  .../boot/dts/renesas/rzg3e-smarc-som.dtsi     | 106 ++++++++++++++++++
>  1 file changed, 106 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi b/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi
> index f99a09d04ddd..4b4c7f3381ad 100644
> --- a/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi
> +++ b/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi
> @@ -26,6 +26,8 @@ / {
>         compatible = "renesas,rzg3e-smarcm", "renesas,r9a09g047e57", "renesas,r9a09g047";
>
>         aliases {
> +               ethernet0 = &eth0;
> +               ethernet1 = &eth1;
>                 i2c2 = &i2c2;
>                 mmc0 = &sdhi0;
>                 mmc2 = &sdhi2;
> @@ -77,6 +79,74 @@ &audio_extal_clk {
>         clock-frequency = <48000000>;
>  };
>
> +&eth0 {
> +       phy-handle = <&phy0>;
> +       phy-mode = "rgmii-id";
> +
> +       pinctrl-0 = <&eth0_pins>;
> +       pinctrl-names = "default";
> +       status = "okay";
> +
> +       mdio {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               compatible = "snps,dwmac-mdio";
> +
> +               phy0: ethernet-phy@7 {
> +                       compatible = "ethernet-phy-id0022.1640",
> +                                    "ethernet-phy-ieee802.3-c22";
> +                       reg = <7>;
> +                       interrupts-extended = <&icu 3 IRQ_TYPE_LEVEL_LOW>;
> +                       rxc-skew-psec = <1400>;
> +                       txc-skew-psec = <1400>;
> +                       rxdv-skew-psec = <0>;
> +                       txdv-skew-psec = <0>;
> +                       rxd0-skew-psec = <0>;
> +                       rxd1-skew-psec = <0>;
> +                       rxd2-skew-psec = <0>;
> +                       rxd3-skew-psec = <0>;
> +                       txd0-skew-psec = <0>;
> +                       txd1-skew-psec = <0>;
> +                       txd2-skew-psec = <0>;
> +                       txd3-skew-psec = <0>;
> +               };
> +       };
> +};
> +
> +&eth1 {
> +       phy-handle = <&phy1>;
> +       phy-mode = "rgmii-id";
> +
> +       pinctrl-0 = <&eth1_pins>;
> +       pinctrl-names = "default";
> +       status = "okay";
> +
> +       mdio {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               compatible = "snps,dwmac-mdio";
> +
> +               phy1: ethernet-phy@7 {
> +                       compatible = "ethernet-phy-id0022.1640",
> +                                    "ethernet-phy-ieee802.3-c22";
> +                       reg = <7>;
> +                       interrupts-extended = <&icu 16 IRQ_TYPE_LEVEL_LOW>;
> +                       rxc-skew-psec = <1400>;
> +                       txc-skew-psec = <1400>;
> +                       rxdv-skew-psec = <0>;
> +                       txdv-skew-psec = <0>;
> +                       rxd0-skew-psec = <0>;
> +                       rxd1-skew-psec = <0>;
> +                       rxd2-skew-psec = <0>;
> +                       rxd3-skew-psec = <0>;
> +                       txd0-skew-psec = <0>;
> +                       txd1-skew-psec = <0>;
> +                       txd2-skew-psec = <0>;
> +                       txd3-skew-psec = <0>;
> +               };
> +       };
> +};
> +
>  &gpu {
>         status = "okay";
>         mali-supply = <&reg_vdd0p8v_others>;
> @@ -103,6 +173,42 @@ raa215300: pmic@12 {
>  };
>
>  &pinctrl {
> +       eth0_pins: eth0 {
> +               pinmux = <RZG3E_PORT_PINMUX(A, 1, 1)>, /* MDC */
> +                        <RZG3E_PORT_PINMUX(A, 0, 1)>, /* MDIO */
> +                        <RZG3E_PORT_PINMUX(C, 2, 15)>, /* PHY_INTR (IRQ2) */
> +                        <RZG3E_PORT_PINMUX(C, 1, 1)>, /* RXD3 */
> +                        <RZG3E_PORT_PINMUX(C, 0, 1)>, /* RXD2 */
> +                        <RZG3E_PORT_PINMUX(B, 7, 1)>, /* RXD1 */
> +                        <RZG3E_PORT_PINMUX(B, 6, 1)>, /* RXD0 */
> +                        <RZG3E_PORT_PINMUX(B, 0, 1)>, /* RXC */
> +                        <RZG3E_PORT_PINMUX(A, 2, 1)>, /* RX_CTL */
> +                        <RZG3E_PORT_PINMUX(B, 5, 1)>, /* TXD3 */
> +                        <RZG3E_PORT_PINMUX(B, 4, 1)>, /* TXD2 */
> +                        <RZG3E_PORT_PINMUX(B, 3, 1)>, /* TXD1 */
> +                        <RZG3E_PORT_PINMUX(B, 2, 1)>, /* TXD0 */
> +                        <RZG3E_PORT_PINMUX(B, 1, 1)>, /* TXC */
> +                        <RZG3E_PORT_PINMUX(A, 3, 1)>; /* TX_CTL */
like RZ/V2H on RZ/G3E PFC_OEN BITS(0,1) need to be configured based on
RGMII/MII mode?

Cheers,
Prabhakar

> +       };
> +
> +       eth1_pins: eth1 {
> +               pinmux = <RZG3E_PORT_PINMUX(D, 1, 1)>, /* MDC */
> +                        <RZG3E_PORT_PINMUX(D, 0, 1)>, /* MDIO */
> +                        <RZG3E_PORT_PINMUX(F, 2, 15)>, /* PHY_INTR (IRQ15) */
> +                        <RZG3E_PORT_PINMUX(F, 1, 1)>, /* RXD3 */
> +                        <RZG3E_PORT_PINMUX(F, 0, 1)>, /* RXD2 */
> +                        <RZG3E_PORT_PINMUX(E, 7, 1)>, /* RXD1 */
> +                        <RZG3E_PORT_PINMUX(E, 6, 1)>, /* RXD0 */
> +                        <RZG3E_PORT_PINMUX(E, 0, 1)>, /* RXC */
> +                        <RZG3E_PORT_PINMUX(D, 2, 1)>, /* RX_CTL */
> +                        <RZG3E_PORT_PINMUX(E, 5, 1)>, /* TXD3 */
> +                        <RZG3E_PORT_PINMUX(E, 4, 1)>, /* TXD2 */
> +                        <RZG3E_PORT_PINMUX(E, 3, 1)>, /* TXD1 */
> +                        <RZG3E_PORT_PINMUX(E, 2, 1)>, /* TXD0 */
> +                        <RZG3E_PORT_PINMUX(E, 1, 1)>, /* TXC */
> +                        <RZG3E_PORT_PINMUX(D, 3, 1)>; /* TX_CTL */
> +       };
> +
>         i2c2_pins: i2c {
>                 pinmux = <RZG3E_PORT_PINMUX(3, 4, 1)>, /* SCL2 */
>                          <RZG3E_PORT_PINMUX(3, 5, 1)>; /* SDA2 */
> --
> 2.25.1
>
>
Re: [PATCH v2 3/3] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces
Posted by Geert Uytterhoeven 3 months, 3 weeks ago
Hi John,

On Wed, 11 Jun 2025 at 11:00, John Madieu <john.madieu.xa@bp.renesas.com> wrote:
> Enable the Gigabit Ethernet Interfaces (GBETH) populated on the RZ/G3E SMARC EVK
>
> Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
> Tested-by: Biju Das <biju.das.jz@bp.renesas.com>
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>

Thanks for your patch!

> --- a/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi
> +++ b/arch/arm64/boot/dts/renesas/rzg3e-smarc-som.dtsi

> @@ -77,6 +79,74 @@ &audio_extal_clk {
>         clock-frequency = <48000000>;
>  };
>
> +&eth0 {
> +       phy-handle = <&phy0>;
> +       phy-mode = "rgmii-id";
> +
> +       pinctrl-0 = <&eth0_pins>;
> +       pinctrl-names = "default";
> +       status = "okay";
> +
> +       mdio {

&mdio0 {

> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               compatible = "snps,dwmac-mdio";

No need for these three properties, as they are already present in the
SoC-specific DTS with the exact same values.

Same for the second interface.

The rest LGTM, so with the above fixed:
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds