devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] Add support for GBETH IPs found on RZ/G3E SoCs
@ 2025-06-04  6:51 John Madieu
  2025-06-04  6:51 ` [PATCH 1/4] clk: renesas: r9a09g047: Add clock and reset signals for the GBETH IPs John Madieu
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: John Madieu @ 2025-06-04  6:51 UTC (permalink / raw)
  To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
	pabeni, robh, krzk+dt, conor+dt, geert+renesas, magnus.damm
  Cc: biju.das.jz, john.madieu, netdev, linux-renesas-soc, devicetree,
	linux-kernel, John Madieu

Hi all,

This series adds support for the two Gigabit Ethernet (GBETH) interfaces on the
Renesas RZ/G3E (R9A09G047) SoCs and their enablement on the SMARC-II EVK. This
is achieved by integrating the necessary clock/reset signals prior to defining
common DTS nodes, and enabling both GBETH ports at the board level.

Here are pach dependencies:

 - Patch 1/4 is based on renesas-drivers tree, on top of renesas-clk-for-v6.17
 branch
 - Patches [2,3,4]/4 are based on renesas-devel tree, on top of
 renesas-dts-for-v6.17 branch

Below are some test logs, involving pings, then unbind/bind, then pings again:

```
root@smarc-rzg3e:~# ping -I eth0 google.com
PING google.com (172.217.20.174) from 192.168.1.245 eth0: 56(84) bytes of data.
64 bytes from waw02s07-in-f14.1e100.net (172.217.20.174): icmp_seq=1 ttl=117 time=4.42 ms
64 bytes from waw02s07-in-f14.1e100.net (172.217.20.174): icmp_seq=2 ttl=117 time=3.87 ms
64 bytes from waw02s07-in-f14.1e100.net (172.217.20.174): icmp_seq=3 ttl=117 time=3.68 ms
64 bytes from waw02s07-in-f14.1e100.net (172.217.20.174): icmp_seq=4 ttl=117 time=3.83 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 3.680/3.949/4.415/0.278 ms
root@smarc-rzg3e:~# 

root@smarc-rzg3e:~# ping -I eth1 google.com
PING google.com (142.250.75.238) from 192.168.1.242 eth1: 56(84) bytes of data.
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=1 ttl=251 time=4.72 ms
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=2 ttl=251 time=4.34 ms
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=3 ttl=251 time=5.66 ms
^C
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 4.338/4.904/5.659/0.555 ms
root@smarc-rzg3e:~# 
root@smarc-rzg3e:~# 
root@smarc-rzg3e:~# 
root@smarc-rzg3e:~# echo "15c40000.ethernet" > /sys/bus/platform/drivers/renesas-gbeth/bind
[  413.422009] renesas-gbeth 15c40000.ethernet: IRQ sfty not found
[  413.429570] renesas-gbeth 15c40000.ethernet: User ID: 0x0, Synopsys ID: 0x52
[  413.436749] renesas-gbeth 15c40000.ethernet:         DWMAC4/5
[  413.441974] renesas-gbeth 15c40000.ethernet: DMA HW capability register supported
[  413.449536] renesas-gbeth 15c40000.ethernet: RX Checksum Offload Engine supported
[  413.457098] renesas-gbeth 15c40000.ethernet: Wake-Up On Lan supported
[  413.463617] renesas-gbeth 15c40000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[  413.471807] renesas-gbeth 15c40000.ethernet: Enabled L3L4 Flow TC (entries=8)
[  413.478982] renesas-gbeth 15c40000.ethernet: Enabled RFS Flow TC (entries=10)
[  413.486148] renesas-gbeth 15c40000.ethernet: Using 32/32 bits DMA host/device width
[  413.523040] renesas-gbeth 15c40000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[  413.534875] renesas-gbeth 15c40000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-1
[  413.546218] renesas-gbeth 15c40000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-2
[  413.556666] renesas-gbeth 15c40000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-3
[  413.633799] renesas-gbeth 15c40000.ethernet eth0: PHY [stmmac-1:07] driver [Microchip KSZ9131 Gigabit PHY] (irq=27)
[  413.659645] dwmac4: Master AXI performs fixed burst length
[  413.666549] renesas-gbeth 15c40000.ethernet eth0: No Safety Features support found
[  413.674263] renesas-gbeth 15c40000.ethernet eth0: IEEE 1588-2008 Advanced Timestamp supported
[  413.683733] renesas-gbeth 15c40000.ethernet eth0: registered PTP clock
[  413.695546] renesas-gbeth 15c40000.ethernet eth0: configuring for phy/rgmii-id link mode
[  416.576645] renesas-gbeth 15c40000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
root@smarc-rzg3e:~#
root@smarc-rzg3e:~# echo "15c30000.ethernet" > /sys/bus/platform/drivers/renesas-gbeth/bind
[  430.269771] renesas-gbeth 15c30000.ethernet: IRQ sfty not found
[  430.277347] renesas-gbeth 15c30000.ethernet: User ID: 0x1, Synopsys ID: 0x52
[  430.284525] renesas-gbeth 15c30000.ethernet:         DWMAC4/5
[  430.289753] renesas-gbeth 15c30000.ethernet: DMA HW capability register supported
[  430.297317] renesas-gbeth 15c30000.ethernet: RX Checksum Offload Engine supported
[  430.304880] renesas-gbeth 15c30000.ethernet: Wake-Up On Lan supported
[  430.311400] renesas-gbeth 15c30000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[  430.319598] renesas-gbeth 15c30000.ethernet: Enabled L3L4 Flow TC (entries=8)
[  430.326774] renesas-gbeth 15c30000.ethernet: Enabled RFS Flow TC (entries=10)
[  430.333942] renesas-gbeth 15c30000.ethernet: Using 32/32 bits DMA host/device width
[  430.360549] renesas-gbeth 15c30000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-0
[  432.366627] renesas-gbeth 15c30000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-1
[  432.377218] renesas-gbeth 15c30000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-2
[  432.386450] renesas-gbeth 15c30000.ethernet eth1: Register MEM_TYPE_PAGE_POOL RxQ-3
[  432.461470] renesas-gbeth 15c30000.ethernet eth1: PHY [stmmac-0:07] driver [Microchip KSZ9131 Gigabit PHY] (irq=23)
[  432.487523] dwmac4: Master AXI performs fixed burst length
[  432.494429] renesas-gbeth 15c30000.ethernet eth1: No Safety Features support found
[  432.502149] renesas-gbeth 15c30000.ethernet eth1: IEEE 1588-2008 Advanced Timestamp supported
[  432.511638] renesas-gbeth 15c30000.ethernet eth1: registered PTP clock
[  432.523033] renesas-gbeth 15c30000.ethernet eth1: configuring for phy/rgmii-id link mode
[  435.489601] renesas-gbeth 15c30000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
root@smarc-rzg3e:~# 
root@smarc-rzg3e:~# 
root@smarc-rzg3e:~# ping -I eth0 google.com
PING google.com (142.250.75.238) from 192.168.1.242 eth0: 56(84) bytes of data.
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=1 ttl=251 time=4.62 ms
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=2 ttl=251 time=4.19 ms
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=3 ttl=251 time=4.49 ms
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=4 ttl=251 time=4.76 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 4.189/4.514/4.758/0.210 ms
root@smarc-rzg3e:~# ping -I eth1 google.com
PING google.com (142.250.75.238) from 192.168.1.245 eth1: 56(84) bytes of data.
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=1 ttl=251 time=4.45 ms
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=2 ttl=251 time=4.79 ms
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=3 ttl=251 time=4.42 ms
64 bytes from par10s41-in-f14.1e100.net (142.250.75.238): icmp_seq=4 ttl=251 time=4.47 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 4.417/4.530/4.787/0.149 ms
root@smarc-rzg3e:~# 
```

Regards,
John Madieu

John Madieu (4):
  clk: renesas: r9a09g047: Add clock and reset signals for the GBETH IPs
  dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047)
    SoC
  arm64: dts: renesas: r9a09g047: Add GBETH nodes
  arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH)
    interfaces

 .../bindings/net/renesas,r9a09g057-gbeth.yaml |   2 +
 arch/arm64/boot/dts/renesas/r9a09g047.dtsi    | 207 ++++++++++++++++++
 .../boot/dts/renesas/rzg3e-smarc-som.dtsi     | 106 +++++++++
 drivers/clk/renesas/r9a09g047-cpg.c           |  64 ++++++
 4 files changed, 379 insertions(+)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/4] clk: renesas: r9a09g047: Add clock and reset signals for the GBETH IPs
  2025-06-04  6:51 [PATCH 0/4] Add support for GBETH IPs found on RZ/G3E SoCs John Madieu
@ 2025-06-04  6:51 ` John Madieu
  2025-06-05  8:41   ` Biju Das
  2025-06-04  6:51 ` [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC John Madieu
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 12+ messages in thread
From: John Madieu @ 2025-06-04  6:51 UTC (permalink / raw)
  To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
	pabeni, robh, krzk+dt, conor+dt, geert+renesas, magnus.damm
  Cc: biju.das.jz, john.madieu, netdev, linux-renesas-soc, devicetree,
	linux-kernel, John Madieu

Add clock and reset entries for the Gigabit Ethernet Interfaces (GBETH 0-1)
IPs found on the RZ/G3E SoC. This includes various PLLs, dividers, and mux
clocks needed by these two GBETH IPs.

Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
---
 drivers/clk/renesas/r9a09g047-cpg.c | 64 +++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/drivers/clk/renesas/r9a09g047-cpg.c b/drivers/clk/renesas/r9a09g047-cpg.c
index 21699999cedd..21352beed3a6 100644
--- a/drivers/clk/renesas/r9a09g047-cpg.c
+++ b/drivers/clk/renesas/r9a09g047-cpg.c
@@ -29,6 +29,7 @@ enum clk_ids {
 	CLK_PLLDTY,
 	CLK_PLLCA55,
 	CLK_PLLVDO,
+	CLK_PLLETH,
 
 	/* Internal Core Clocks */
 	CLK_PLLCM33_DIV3,
@@ -46,6 +47,15 @@ enum clk_ids {
 	CLK_PLLDTY_ACPU,
 	CLK_PLLDTY_ACPU_DIV2,
 	CLK_PLLDTY_ACPU_DIV4,
+	CLK_PLLDTY_DIV8,
+	CLK_PLLETH_DIV_250_FIX,
+	CLK_PLLETH_DIV_125_FIX,
+	CLK_CSDIV_PLLETH_GBE0,
+	CLK_CSDIV_PLLETH_GBE1,
+	CLK_SMUX2_GBE0_TXCLK,
+	CLK_SMUX2_GBE0_RXCLK,
+	CLK_SMUX2_GBE1_TXCLK,
+	CLK_SMUX2_GBE1_RXCLK,
 	CLK_PLLDTY_DIV16,
 	CLK_PLLVDO_CRU0,
 	CLK_PLLVDO_GPU,
@@ -85,7 +95,18 @@ static const struct clk_div_table dtable_2_64[] = {
 	{0, 0},
 };
 
+static const struct clk_div_table dtable_2_100[] = {
+	{0, 2},
+	{1, 10},
+	{2, 100},
+	{0, 0},
+};
+
 /* Mux clock tables */
+static const char * const smux2_gbe0_rxclk[] = { ".plleth_gbe0", "et0_rxc_rx_clk" };
+static const char * const smux2_gbe0_txclk[] = { ".plleth_gbe0", "et0_txc_tx_clk" };
+static const char * const smux2_gbe1_rxclk[] = { ".plleth_gbe1", "et1-rxc-rx_clk" };
+static const char * const smux2_gbe1_txclk[] = { ".plleth_gbe1", "et1-txc-tx_clk" };
 static const char * const smux2_xspi_clk0[] = { ".pllcm33_div3", ".pllcm33_div4" };
 static const char * const smux2_xspi_clk1[] = { ".smux2_xspi_clk0", ".pllcm33_div5" };
 
@@ -100,6 +121,7 @@ static const struct cpg_core_clk r9a09g047_core_clks[] __initconst = {
 	DEF_FIXED(".pllcln", CLK_PLLCLN, CLK_QEXTAL, 200, 3),
 	DEF_FIXED(".plldty", CLK_PLLDTY, CLK_QEXTAL, 200, 3),
 	DEF_PLL(".pllca55", CLK_PLLCA55, CLK_QEXTAL, PLLCA55),
+	DEF_FIXED(".plleth", CLK_PLLETH, CLK_QEXTAL, 125, 3),
 	DEF_FIXED(".pllvdo", CLK_PLLVDO, CLK_QEXTAL, 105, 2),
 
 	/* Internal Core Clocks */
@@ -122,6 +144,18 @@ static const struct cpg_core_clk r9a09g047_core_clks[] __initconst = {
 	DEF_DDIV(".plldty_acpu", CLK_PLLDTY_ACPU, CLK_PLLDTY, CDDIV0_DIVCTL2, dtable_2_64),
 	DEF_FIXED(".plldty_acpu_div2", CLK_PLLDTY_ACPU_DIV2, CLK_PLLDTY_ACPU, 1, 2),
 	DEF_FIXED(".plldty_acpu_div4", CLK_PLLDTY_ACPU_DIV4, CLK_PLLDTY_ACPU, 1, 4),
+	DEF_FIXED(".plldty_div8", CLK_PLLDTY_DIV8, CLK_PLLDTY, 1, 8),
+
+	DEF_FIXED(".plleth_250_fix", CLK_PLLETH_DIV_250_FIX, CLK_PLLETH, 1, 4),
+	DEF_FIXED(".plleth_125_fix", CLK_PLLETH_DIV_125_FIX, CLK_PLLETH_DIV_250_FIX, 1, 2),
+	DEF_CSDIV(".plleth_gbe0", CLK_CSDIV_PLLETH_GBE0, CLK_PLLETH_DIV_250_FIX,
+		  CSDIV0_DIVCTL0, dtable_2_100),
+	DEF_CSDIV(".plleth_gbe1", CLK_CSDIV_PLLETH_GBE1, CLK_PLLETH_DIV_250_FIX,
+		  CSDIV0_DIVCTL1, dtable_2_100),
+	DEF_SMUX(".smux2_gbe0_txclk", CLK_SMUX2_GBE0_TXCLK, SSEL0_SELCTL2, smux2_gbe0_txclk),
+	DEF_SMUX(".smux2_gbe0_rxclk", CLK_SMUX2_GBE0_RXCLK, SSEL0_SELCTL3, smux2_gbe0_rxclk),
+	DEF_SMUX(".smux2_gbe1_txclk", CLK_SMUX2_GBE1_TXCLK, SSEL1_SELCTL0, smux2_gbe1_txclk),
+	DEF_SMUX(".smux2_gbe1_rxclk", CLK_SMUX2_GBE1_RXCLK, SSEL1_SELCTL1, smux2_gbe1_rxclk),
 	DEF_FIXED(".plldty_div16", CLK_PLLDTY_DIV16, CLK_PLLDTY, 1, 16),
 
 	DEF_DDIV(".pllvdo_cru0", CLK_PLLVDO_CRU0, CLK_PLLVDO, CDDIV3_DIVCTL3, dtable_2_4),
@@ -139,6 +173,10 @@ static const struct cpg_core_clk r9a09g047_core_clks[] __initconst = {
 		 CDDIV1_DIVCTL3, dtable_1_8),
 	DEF_FIXED("iotop_0_shclk", R9A09G047_IOTOP_0_SHCLK, CLK_PLLCM33_DIV16, 1, 1),
 	DEF_FIXED("spi_clk_spi", R9A09G047_SPI_CLK_SPI, CLK_PLLCM33_XSPI, 1, 2),
+	DEF_FIXED("gbeth_0_clk_ptp_ref_i", R9A09G047_GBETH_0_CLK_PTP_REF_I,
+		  CLK_PLLETH_DIV_125_FIX, 1, 1),
+	DEF_FIXED("gbeth_1_clk_ptp_ref_i", R9A09G047_GBETH_1_CLK_PTP_REF_I,
+		  CLK_PLLETH_DIV_125_FIX, 1, 1),
 };
 
 static const struct rzv2h_mod_clk r9a09g047_mod_clks[] __initconst = {
@@ -214,6 +252,30 @@ static const struct rzv2h_mod_clk r9a09g047_mod_clks[] __initconst = {
 						BUS_MSTOP(8, BIT(4))),
 	DEF_MOD("sdhi_2_aclk",			CLK_PLLDTY_ACPU_DIV4, 10, 14, 5, 14,
 						BUS_MSTOP(8, BIT(4))),
+	DEF_MOD("gbeth_0_clk_tx_i",		CLK_SMUX2_GBE0_TXCLK, 11, 8, 5, 24,
+						BUS_MSTOP(8, BIT(5))),
+	DEF_MOD("gbeth_0_clk_rx_i",		CLK_SMUX2_GBE0_RXCLK, 11, 9, 5, 25,
+						BUS_MSTOP(8, BIT(5))),
+	DEF_MOD("gbeth_0_clk_tx_180_i",		CLK_SMUX2_GBE0_TXCLK, 11, 10, 5, 26,
+						BUS_MSTOP(8, BIT(5))),
+	DEF_MOD("gbeth_0_clk_rx_180_i",		CLK_SMUX2_GBE0_RXCLK, 11, 11, 5, 27,
+						BUS_MSTOP(8, BIT(5))),
+	DEF_MOD("gbeth_0_aclk_csr_i",		CLK_PLLDTY_DIV8, 11, 12, 5, 28,
+						BUS_MSTOP(8, BIT(5))),
+	DEF_MOD("gbeth_0_aclk_i",		CLK_PLLDTY_DIV8, 11, 13, 5, 29,
+						BUS_MSTOP(8, BIT(5))),
+	DEF_MOD("gbeth_1_clk_tx_i",		CLK_SMUX2_GBE1_TXCLK, 11, 14, 5, 30,
+						BUS_MSTOP(8, BIT(6))),
+	DEF_MOD("gbeth_1_clk_rx_i",		CLK_SMUX2_GBE1_RXCLK, 11, 15, 5, 31,
+						BUS_MSTOP(8, BIT(6))),
+	DEF_MOD("gbeth_1_clk_tx_180_i", 	CLK_SMUX2_GBE1_TXCLK, 12, 0, 6, 0,
+						BUS_MSTOP(8, BIT(6))),
+	DEF_MOD("gbeth_1_clk_rx_180_i",		CLK_SMUX2_GBE1_RXCLK, 12, 1, 6, 1,
+						BUS_MSTOP(8, BIT(6))),
+	DEF_MOD("gbeth_1_aclk_csr_i",		CLK_PLLDTY_DIV8, 12, 2, 6, 2,
+						BUS_MSTOP(8, BIT(6))),
+	DEF_MOD("gbeth_1_aclk_i",		CLK_PLLDTY_DIV8, 12, 3, 6, 3,
+						BUS_MSTOP(8, BIT(6))),
 	DEF_MOD("cru_0_aclk",			CLK_PLLDTY_ACPU_DIV2, 13, 2, 6, 18,
 						BUS_MSTOP(9, BIT(4))),
 	DEF_MOD_NO_PM("cru_0_vclk",		CLK_PLLVDO_CRU0, 13, 3, 6, 19,
@@ -255,6 +317,8 @@ static const struct rzv2h_reset r9a09g047_resets[] __initconst = {
 	DEF_RST(10, 7, 4, 24),		/* SDHI_0_IXRST */
 	DEF_RST(10, 8, 4, 25),		/* SDHI_1_IXRST */
 	DEF_RST(10, 9, 4, 26),		/* SDHI_2_IXRST */
+	DEF_RST(11, 0, 5, 1),		/* GBETH_0_ARESETN_I */
+	DEF_RST(11, 1, 5, 2),		/* GBETH_1_ARESETN_I */
 	DEF_RST(12, 5, 5, 22),		/* CRU_0_PRESETN */
 	DEF_RST(12, 6, 5, 23),		/* CRU_0_ARESETN */
 	DEF_RST(12, 7, 5, 24),		/* CRU_0_S_RESETN */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC
  2025-06-04  6:51 [PATCH 0/4] Add support for GBETH IPs found on RZ/G3E SoCs John Madieu
  2025-06-04  6:51 ` [PATCH 1/4] clk: renesas: r9a09g047: Add clock and reset signals for the GBETH IPs John Madieu
@ 2025-06-04  6:51 ` John Madieu
  2025-06-04 18:14   ` Lad, Prabhakar
                     ` (2 more replies)
  2025-06-04  6:51 ` [PATCH 3/4] arm64: dts: renesas: r9a09g047: Add GBETH nodes John Madieu
  2025-06-04  6:52 ` [PATCH 4/4] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces John Madieu
  3 siblings, 3 replies; 12+ messages in thread
From: John Madieu @ 2025-06-04  6:51 UTC (permalink / raw)
  To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
	pabeni, robh, krzk+dt, conor+dt, geert+renesas, magnus.damm
  Cc: biju.das.jz, john.madieu, netdev, linux-renesas-soc, devicetree,
	linux-kernel, John Madieu

Document support for the GBETH IP found on the Renesas RZ/G3E (R9A09G047) SoC.
The GBETH block on RZ/G3E is equivalent in functionality to the GBETH found on
RZ/V2H(P) (R9A09G057).

Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
---
 .../devicetree/bindings/net/renesas,r9a09g057-gbeth.yaml        | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/renesas,r9a09g057-gbeth.yaml b/Documentation/devicetree/bindings/net/renesas,r9a09g057-gbeth.yaml
index c498a9999289..9961253d1d41 100644
--- a/Documentation/devicetree/bindings/net/renesas,r9a09g057-gbeth.yaml
+++ b/Documentation/devicetree/bindings/net/renesas,r9a09g057-gbeth.yaml
@@ -14,6 +14,7 @@ select:
     compatible:
       contains:
         enum:
+          - renesas,r9a09g047-gbeth
           - renesas,r9a09g056-gbeth
           - renesas,r9a09g057-gbeth
           - renesas,rzv2h-gbeth
@@ -24,6 +25,7 @@ properties:
   compatible:
     items:
       - enum:
+          - renesas,r9a09g047-gbeth # RZ/G3E
           - renesas,r9a09g056-gbeth # RZ/V2N
           - renesas,r9a09g057-gbeth # RZ/V2H(P)
       - const: renesas,rzv2h-gbeth
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/4] arm64: dts: renesas: r9a09g047: Add GBETH nodes
  2025-06-04  6:51 [PATCH 0/4] Add support for GBETH IPs found on RZ/G3E SoCs John Madieu
  2025-06-04  6:51 ` [PATCH 1/4] clk: renesas: r9a09g047: Add clock and reset signals for the GBETH IPs John Madieu
  2025-06-04  6:51 ` [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC John Madieu
@ 2025-06-04  6:51 ` John Madieu
  2025-06-05  8:42   ` Biju Das
  2025-06-04  6:52 ` [PATCH 4/4] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces John Madieu
  3 siblings, 1 reply; 12+ messages in thread
From: John Madieu @ 2025-06-04  6:51 UTC (permalink / raw)
  To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
	pabeni, robh, krzk+dt, conor+dt, geert+renesas, magnus.damm
  Cc: biju.das.jz, john.madieu, netdev, linux-renesas-soc, devicetree,
	linux-kernel, John Madieu

Add GBETH nodes to RZ/G3E (R9A09G047) SoC DTSI.

Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
---
 arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 207 +++++++++++++++++++++
 1 file changed, 207 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
index a0d4fab4fe05..e6e35b41a9d3 100644
--- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
@@ -759,6 +759,213 @@ csi2cru: endpoint@0 {
 				};
 			};
 		};
+
+		eth0: ethernet@15c30000 {
+			compatible = "renesas,r9a09g047-gbeth", "renesas,rzv2h-gbeth", "snps,dwmac-5.20";
+			reg = <0 0x15c30000 0 0x10000>;
+			clocks = <&cpg CPG_MOD 0xbd>, <&cpg CPG_MOD 0xbc>,
+				 <&cpg CPG_CORE R9A09G047_GBETH_0_CLK_PTP_REF_I>,
+				 <&cpg CPG_MOD 0xb8>, <&cpg CPG_MOD 0xb9>,
+				 <&cpg CPG_MOD 0xba>, <&cpg CPG_MOD 0xbb>;
+			clock-names = "stmmaceth", "pclk", "ptp_ref",
+				      "tx", "rx", "tx-180", "rx-180";
+			interrupts = <GIC_SPI 765 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 767 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 766 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 772 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 773 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 774 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 775 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 768 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 769 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 770 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 771 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "macirq", "eth_wake_irq", "eth_lpi",
+					  "rx-queue-0", "rx-queue-1", "rx-queue-2",
+					  "rx-queue-3", "tx-queue-0", "tx-queue-1",
+					  "tx-queue-2", "tx-queue-3";
+			resets = <&cpg 0xb0>;
+			power-domains = <&cpg>;
+			snps,multicast-filter-bins = <256>;
+			snps,perfect-filter-entries = <128>;
+			rx-fifo-depth = <8192>;
+			tx-fifo-depth = <8192>;
+			snps,fixed-burst;
+			snps,no-pbl-x8;
+			snps,force_thresh_dma_mode;
+			snps,axi-config = <&stmmac_axi_setup>;
+			snps,mtl-rx-config = <&mtl_rx_setup0>;
+			snps,mtl-tx-config = <&mtl_tx_setup0>;
+			snps,txpbl = <32>;
+			snps,rxpbl = <32>;
+			status = "disabled";
+
+			mdio {
+				compatible = "snps,dwmac-mdio";
+				#address-cells = <1>;
+				#size-cells = <0>;
+			};
+
+			mtl_rx_setup0: rx-queues-config {
+				snps,rx-queues-to-use = <4>;
+				snps,rx-sched-sp;
+
+				queue0 {
+					snps,dcb-algorithm;
+					snps,priority = <0x1>;
+					snps,map-to-dma-channel = <0>;
+				};
+
+				queue1 {
+					snps,dcb-algorithm;
+					snps,priority = <0x2>;
+					snps,map-to-dma-channel = <1>;
+				};
+
+				queue2 {
+					snps,dcb-algorithm;
+					snps,priority = <0x4>;
+					snps,map-to-dma-channel = <2>;
+				};
+
+				queue3 {
+					snps,dcb-algorithm;
+					snps,priority = <0x8>;
+					snps,map-to-dma-channel = <3>;
+				};
+			};
+
+			mtl_tx_setup0: tx-queues-config {
+				snps,tx-queues-to-use = <4>;
+
+				queue0 {
+					snps,dcb-algorithm;
+					snps,priority = <0x1>;
+				};
+
+				queue1 {
+					snps,dcb-algorithm;
+					snps,priority = <0x2>;
+				};
+
+				queue2 {
+					snps,dcb-algorithm;
+					snps,priority = <0x4>;
+				};
+
+				queue3 {
+					snps,dcb-algorithm;
+					snps,priority = <0x8>;
+				};
+			};
+		};
+
+		eth1: ethernet@15c40000 {
+			compatible = "renesas,r9a09g047-gbeth", "renesas,rzv2h-gbeth", "snps,dwmac-5.20";
+			reg = <0 0x15c40000 0 0x10000>;
+			clocks = <&cpg CPG_MOD 0xc3>, <&cpg CPG_MOD 0xc2>,
+				 <&cpg CPG_CORE R9A09G047_GBETH_1_CLK_PTP_REF_I>,
+				 <&cpg CPG_MOD 0xbe>, <&cpg CPG_MOD 0xbf>,
+				 <&cpg CPG_MOD 0xc0>, <&cpg CPG_MOD 0xc1>;
+			clock-names = "stmmaceth", "pclk", "ptp_ref",
+				      "tx", "rx", "tx-180", "rx-180";
+			interrupts = <GIC_SPI 780 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 782 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 781 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 787 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 788 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 789 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 790 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 783 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 784 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 785 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 786 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names = "macirq", "eth_wake_irq", "eth_lpi",
+					  "rx-queue-0", "rx-queue-1", "rx-queue-2",
+					  "rx-queue-3", "tx-queue-0", "tx-queue-1",
+					  "tx-queue-2", "tx-queue-3";
+			resets = <&cpg 0xb1>;
+			power-domains = <&cpg>;
+			snps,multicast-filter-bins = <256>;
+			snps,perfect-filter-entries = <128>;
+			rx-fifo-depth = <8192>;
+			tx-fifo-depth = <8192>;
+			snps,fixed-burst;
+			snps,no-pbl-x8;
+			snps,force_thresh_dma_mode;
+			snps,axi-config = <&stmmac_axi_setup>;
+			snps,mtl-rx-config = <&mtl_rx_setup1>;
+			snps,mtl-tx-config = <&mtl_tx_setup1>;
+			snps,txpbl = <32>;
+			snps,rxpbl = <32>;
+			status = "disabled";
+
+			mdio {
+				compatible = "snps,dwmac-mdio";
+				#address-cells = <1>;
+				#size-cells = <0>;
+			};
+
+			mtl_rx_setup1: rx-queues-config {
+				snps,rx-queues-to-use = <4>;
+				snps,rx-sched-sp;
+
+				queue0 {
+					snps,dcb-algorithm;
+					snps,priority = <0x1>;
+					snps,map-to-dma-channel = <0>;
+				};
+
+				queue1 {
+					snps,dcb-algorithm;
+					snps,priority = <0x2>;
+					snps,map-to-dma-channel = <1>;
+				};
+
+				queue2 {
+					snps,dcb-algorithm;
+					snps,priority = <0x4>;
+					snps,map-to-dma-channel = <2>;
+				};
+
+				queue3 {
+					snps,dcb-algorithm;
+					snps,priority = <0x8>;
+					snps,map-to-dma-channel = <3>;
+				};
+			};
+
+			mtl_tx_setup1: tx-queues-config {
+				snps,tx-queues-to-use = <4>;
+
+				queue0 {
+					snps,dcb-algorithm;
+					snps,priority = <0x1>;
+				};
+
+				queue1 {
+					snps,dcb-algorithm;
+					snps,priority = <0x2>;
+				};
+
+				queue2 {
+					snps,dcb-algorithm;
+					snps,priority = <0x4>;
+				};
+
+				queue3 {
+					snps,dcb-algorithm;
+					snps,priority = <0x8>;
+				};
+			};
+		};
+	};
+
+	stmmac_axi_setup: stmmac-axi-config {
+		snps,lpi_en;
+		snps,wr_osr_lmt = <0xf>;
+		snps,rd_osr_lmt = <0xf>;
+		snps,blen = <16 8 4 0 0 0 0>;
 	};
 
 	timer {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/4] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces
  2025-06-04  6:51 [PATCH 0/4] Add support for GBETH IPs found on RZ/G3E SoCs John Madieu
                   ` (2 preceding siblings ...)
  2025-06-04  6:51 ` [PATCH 3/4] arm64: dts: renesas: r9a09g047: Add GBETH nodes John Madieu
@ 2025-06-04  6:52 ` John Madieu
  2025-06-05  8:43   ` Biju Das
  3 siblings, 1 reply; 12+ messages in thread
From: John Madieu @ 2025-06-04  6:52 UTC (permalink / raw)
  To: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
	pabeni, robh, krzk+dt, conor+dt, geert+renesas, magnus.damm
  Cc: biju.das.jz, john.madieu, netdev, linux-renesas-soc, devicetree,
	linux-kernel, John Madieu

Enable the Gigabit Ethernet Interfaces (GBETH) populated on the RZ/G3E SMARC EVK

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


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC
  2025-06-04  6:51 ` [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC John Madieu
@ 2025-06-04 18:14   ` Lad, Prabhakar
  2025-06-06 12:21   ` Geert Uytterhoeven
  2025-06-09 15:30   ` Jakub Kicinski
  2 siblings, 0 replies; 12+ messages in thread
From: Lad, Prabhakar @ 2025-06-04 18:14 UTC (permalink / raw)
  To: John Madieu
  Cc: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
	pabeni, robh, krzk+dt, conor+dt, geert+renesas, magnus.damm,
	biju.das.jz, john.madieu, netdev, linux-renesas-soc, devicetree,
	linux-kernel

On Wed, Jun 4, 2025 at 7:53 AM John Madieu
<john.madieu.xa@bp.renesas.com> wrote:
>
> Document support for the GBETH IP found on the Renesas RZ/G3E (R9A09G047) SoC.
> The GBETH block on RZ/G3E is equivalent in functionality to the GBETH found on
> RZ/V2H(P) (R9A09G057).
>
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
> ---
>  .../devicetree/bindings/net/renesas,r9a09g057-gbeth.yaml        | 2 ++
>  1 file changed, 2 insertions(+)
>
Reviwed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Cheers,
Prabhakar

> diff --git a/Documentation/devicetree/bindings/net/renesas,r9a09g057-gbeth.yaml b/Documentation/devicetree/bindings/net/renesas,r9a09g057-gbeth.yaml
> index c498a9999289..9961253d1d41 100644
> --- a/Documentation/devicetree/bindings/net/renesas,r9a09g057-gbeth.yaml
> +++ b/Documentation/devicetree/bindings/net/renesas,r9a09g057-gbeth.yaml
> @@ -14,6 +14,7 @@ select:
>      compatible:
>        contains:
>          enum:
> +          - renesas,r9a09g047-gbeth
>            - renesas,r9a09g056-gbeth
>            - renesas,r9a09g057-gbeth
>            - renesas,rzv2h-gbeth
> @@ -24,6 +25,7 @@ properties:
>    compatible:
>      items:
>        - enum:
> +          - renesas,r9a09g047-gbeth # RZ/G3E
>            - renesas,r9a09g056-gbeth # RZ/V2N
>            - renesas,r9a09g057-gbeth # RZ/V2H(P)
>        - const: renesas,rzv2h-gbeth
> --
> 2.25.1
>
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH 1/4] clk: renesas: r9a09g047: Add clock and reset signals for the GBETH IPs
  2025-06-04  6:51 ` [PATCH 1/4] clk: renesas: r9a09g047: Add clock and reset signals for the GBETH IPs John Madieu
@ 2025-06-05  8:41   ` Biju Das
  0 siblings, 0 replies; 12+ messages in thread
From: Biju Das @ 2025-06-05  8:41 UTC (permalink / raw)
  To: John Madieu, Prabhakar Mahadev Lad, andrew+netdev@lunn.ch,
	davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
	pabeni@redhat.com, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, geert+renesas@glider.be,
	magnus.damm@gmail.com
  Cc: john.madieu@gmail.com, netdev@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, John Madieu

Hi John,

Thanks for the patch.

> -----Original Message-----
> From: John Madieu <john.madieu.xa@bp.renesas.com>
> Sent: 04 June 2025 07:52
> Subject: [PATCH 1/4] clk: renesas: r9a09g047: Add clock and reset signals for the GBETH IPs
> 
> Add clock and reset entries for the Gigabit Ethernet Interfaces (GBETH 0-1) IPs found on the RZ/G3E
> SoC. This includes various PLLs, dividers, and mux clocks needed by these two GBETH IPs.
> 
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>

Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Tested-by: Biju Das <biju.das.jz@bp.renesas.com>

Cheers,
biju

> ---
>  drivers/clk/renesas/r9a09g047-cpg.c | 64 +++++++++++++++++++++++++++++
>  1 file changed, 64 insertions(+)
> 
> diff --git a/drivers/clk/renesas/r9a09g047-cpg.c b/drivers/clk/renesas/r9a09g047-cpg.c
> index 21699999cedd..21352beed3a6 100644
> --- a/drivers/clk/renesas/r9a09g047-cpg.c
> +++ b/drivers/clk/renesas/r9a09g047-cpg.c
> @@ -29,6 +29,7 @@ enum clk_ids {
>  	CLK_PLLDTY,
>  	CLK_PLLCA55,
>  	CLK_PLLVDO,
> +	CLK_PLLETH,
> 
>  	/* Internal Core Clocks */
>  	CLK_PLLCM33_DIV3,
> @@ -46,6 +47,15 @@ enum clk_ids {
>  	CLK_PLLDTY_ACPU,
>  	CLK_PLLDTY_ACPU_DIV2,
>  	CLK_PLLDTY_ACPU_DIV4,
> +	CLK_PLLDTY_DIV8,
> +	CLK_PLLETH_DIV_250_FIX,
> +	CLK_PLLETH_DIV_125_FIX,
> +	CLK_CSDIV_PLLETH_GBE0,
> +	CLK_CSDIV_PLLETH_GBE1,
> +	CLK_SMUX2_GBE0_TXCLK,
> +	CLK_SMUX2_GBE0_RXCLK,
> +	CLK_SMUX2_GBE1_TXCLK,
> +	CLK_SMUX2_GBE1_RXCLK,
>  	CLK_PLLDTY_DIV16,
>  	CLK_PLLVDO_CRU0,
>  	CLK_PLLVDO_GPU,
> @@ -85,7 +95,18 @@ static const struct clk_div_table dtable_2_64[] = {
>  	{0, 0},
>  };
> 
> +static const struct clk_div_table dtable_2_100[] = {
> +	{0, 2},
> +	{1, 10},
> +	{2, 100},
> +	{0, 0},
> +};
> +
>  /* Mux clock tables */
> +static const char * const smux2_gbe0_rxclk[] = { ".plleth_gbe0",
> +"et0_rxc_rx_clk" }; static const char * const smux2_gbe0_txclk[] = {
> +".plleth_gbe0", "et0_txc_tx_clk" }; static const char * const
> +smux2_gbe1_rxclk[] = { ".plleth_gbe1", "et1-rxc-rx_clk" }; static const
> +char * const smux2_gbe1_txclk[] = { ".plleth_gbe1", "et1-txc-tx_clk" };
>  static const char * const smux2_xspi_clk0[] = { ".pllcm33_div3", ".pllcm33_div4" };  static const
> char * const smux2_xspi_clk1[] = { ".smux2_xspi_clk0", ".pllcm33_div5" };
> 
> @@ -100,6 +121,7 @@ static const struct cpg_core_clk r9a09g047_core_clks[] __initconst = {
>  	DEF_FIXED(".pllcln", CLK_PLLCLN, CLK_QEXTAL, 200, 3),
>  	DEF_FIXED(".plldty", CLK_PLLDTY, CLK_QEXTAL, 200, 3),
>  	DEF_PLL(".pllca55", CLK_PLLCA55, CLK_QEXTAL, PLLCA55),
> +	DEF_FIXED(".plleth", CLK_PLLETH, CLK_QEXTAL, 125, 3),
>  	DEF_FIXED(".pllvdo", CLK_PLLVDO, CLK_QEXTAL, 105, 2),
> 
>  	/* Internal Core Clocks */
> @@ -122,6 +144,18 @@ static const struct cpg_core_clk r9a09g047_core_clks[] __initconst = {
>  	DEF_DDIV(".plldty_acpu", CLK_PLLDTY_ACPU, CLK_PLLDTY, CDDIV0_DIVCTL2, dtable_2_64),
>  	DEF_FIXED(".plldty_acpu_div2", CLK_PLLDTY_ACPU_DIV2, CLK_PLLDTY_ACPU, 1, 2),
>  	DEF_FIXED(".plldty_acpu_div4", CLK_PLLDTY_ACPU_DIV4, CLK_PLLDTY_ACPU, 1, 4),
> +	DEF_FIXED(".plldty_div8", CLK_PLLDTY_DIV8, CLK_PLLDTY, 1, 8),
> +
> +	DEF_FIXED(".plleth_250_fix", CLK_PLLETH_DIV_250_FIX, CLK_PLLETH, 1, 4),
> +	DEF_FIXED(".plleth_125_fix", CLK_PLLETH_DIV_125_FIX, CLK_PLLETH_DIV_250_FIX, 1, 2),
> +	DEF_CSDIV(".plleth_gbe0", CLK_CSDIV_PLLETH_GBE0, CLK_PLLETH_DIV_250_FIX,
> +		  CSDIV0_DIVCTL0, dtable_2_100),
> +	DEF_CSDIV(".plleth_gbe1", CLK_CSDIV_PLLETH_GBE1, CLK_PLLETH_DIV_250_FIX,
> +		  CSDIV0_DIVCTL1, dtable_2_100),
> +	DEF_SMUX(".smux2_gbe0_txclk", CLK_SMUX2_GBE0_TXCLK, SSEL0_SELCTL2, smux2_gbe0_txclk),
> +	DEF_SMUX(".smux2_gbe0_rxclk", CLK_SMUX2_GBE0_RXCLK, SSEL0_SELCTL3, smux2_gbe0_rxclk),
> +	DEF_SMUX(".smux2_gbe1_txclk", CLK_SMUX2_GBE1_TXCLK, SSEL1_SELCTL0, smux2_gbe1_txclk),
> +	DEF_SMUX(".smux2_gbe1_rxclk", CLK_SMUX2_GBE1_RXCLK, SSEL1_SELCTL1,
> +smux2_gbe1_rxclk),
>  	DEF_FIXED(".plldty_div16", CLK_PLLDTY_DIV16, CLK_PLLDTY, 1, 16),
> 
>  	DEF_DDIV(".pllvdo_cru0", CLK_PLLVDO_CRU0, CLK_PLLVDO, CDDIV3_DIVCTL3, dtable_2_4), @@ -139,6
> +173,10 @@ static const struct cpg_core_clk r9a09g047_core_clks[] __initconst = {
>  		 CDDIV1_DIVCTL3, dtable_1_8),
>  	DEF_FIXED("iotop_0_shclk", R9A09G047_IOTOP_0_SHCLK, CLK_PLLCM33_DIV16, 1, 1),
>  	DEF_FIXED("spi_clk_spi", R9A09G047_SPI_CLK_SPI, CLK_PLLCM33_XSPI, 1, 2),
> +	DEF_FIXED("gbeth_0_clk_ptp_ref_i", R9A09G047_GBETH_0_CLK_PTP_REF_I,
> +		  CLK_PLLETH_DIV_125_FIX, 1, 1),
> +	DEF_FIXED("gbeth_1_clk_ptp_ref_i", R9A09G047_GBETH_1_CLK_PTP_REF_I,
> +		  CLK_PLLETH_DIV_125_FIX, 1, 1),
>  };
> 
>  static const struct rzv2h_mod_clk r9a09g047_mod_clks[] __initconst = { @@ -214,6 +252,30 @@ static
> const struct rzv2h_mod_clk r9a09g047_mod_clks[] __initconst = {
>  						BUS_MSTOP(8, BIT(4))),
>  	DEF_MOD("sdhi_2_aclk",			CLK_PLLDTY_ACPU_DIV4, 10, 14, 5, 14,
>  						BUS_MSTOP(8, BIT(4))),
> +	DEF_MOD("gbeth_0_clk_tx_i",		CLK_SMUX2_GBE0_TXCLK, 11, 8, 5, 24,
> +						BUS_MSTOP(8, BIT(5))),
> +	DEF_MOD("gbeth_0_clk_rx_i",		CLK_SMUX2_GBE0_RXCLK, 11, 9, 5, 25,
> +						BUS_MSTOP(8, BIT(5))),
> +	DEF_MOD("gbeth_0_clk_tx_180_i",		CLK_SMUX2_GBE0_TXCLK, 11, 10, 5, 26,
> +						BUS_MSTOP(8, BIT(5))),
> +	DEF_MOD("gbeth_0_clk_rx_180_i",		CLK_SMUX2_GBE0_RXCLK, 11, 11, 5, 27,
> +						BUS_MSTOP(8, BIT(5))),
> +	DEF_MOD("gbeth_0_aclk_csr_i",		CLK_PLLDTY_DIV8, 11, 12, 5, 28,
> +						BUS_MSTOP(8, BIT(5))),
> +	DEF_MOD("gbeth_0_aclk_i",		CLK_PLLDTY_DIV8, 11, 13, 5, 29,
> +						BUS_MSTOP(8, BIT(5))),
> +	DEF_MOD("gbeth_1_clk_tx_i",		CLK_SMUX2_GBE1_TXCLK, 11, 14, 5, 30,
> +						BUS_MSTOP(8, BIT(6))),
> +	DEF_MOD("gbeth_1_clk_rx_i",		CLK_SMUX2_GBE1_RXCLK, 11, 15, 5, 31,
> +						BUS_MSTOP(8, BIT(6))),
> +	DEF_MOD("gbeth_1_clk_tx_180_i", 	CLK_SMUX2_GBE1_TXCLK, 12, 0, 6, 0,
> +						BUS_MSTOP(8, BIT(6))),
> +	DEF_MOD("gbeth_1_clk_rx_180_i",		CLK_SMUX2_GBE1_RXCLK, 12, 1, 6, 1,
> +						BUS_MSTOP(8, BIT(6))),
> +	DEF_MOD("gbeth_1_aclk_csr_i",		CLK_PLLDTY_DIV8, 12, 2, 6, 2,
> +						BUS_MSTOP(8, BIT(6))),
> +	DEF_MOD("gbeth_1_aclk_i",		CLK_PLLDTY_DIV8, 12, 3, 6, 3,
> +						BUS_MSTOP(8, BIT(6))),
>  	DEF_MOD("cru_0_aclk",			CLK_PLLDTY_ACPU_DIV2, 13, 2, 6, 18,
>  						BUS_MSTOP(9, BIT(4))),
>  	DEF_MOD_NO_PM("cru_0_vclk",		CLK_PLLVDO_CRU0, 13, 3, 6, 19,
> @@ -255,6 +317,8 @@ static const struct rzv2h_reset r9a09g047_resets[] __initconst = {
>  	DEF_RST(10, 7, 4, 24),		/* SDHI_0_IXRST */
>  	DEF_RST(10, 8, 4, 25),		/* SDHI_1_IXRST */
>  	DEF_RST(10, 9, 4, 26),		/* SDHI_2_IXRST */
> +	DEF_RST(11, 0, 5, 1),		/* GBETH_0_ARESETN_I */
> +	DEF_RST(11, 1, 5, 2),		/* GBETH_1_ARESETN_I */
>  	DEF_RST(12, 5, 5, 22),		/* CRU_0_PRESETN */
>  	DEF_RST(12, 6, 5, 23),		/* CRU_0_ARESETN */
>  	DEF_RST(12, 7, 5, 24),		/* CRU_0_S_RESETN */
> --
> 2.25.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH 3/4] arm64: dts: renesas: r9a09g047: Add GBETH nodes
  2025-06-04  6:51 ` [PATCH 3/4] arm64: dts: renesas: r9a09g047: Add GBETH nodes John Madieu
@ 2025-06-05  8:42   ` Biju Das
  0 siblings, 0 replies; 12+ messages in thread
From: Biju Das @ 2025-06-05  8:42 UTC (permalink / raw)
  To: John Madieu, Prabhakar Mahadev Lad, andrew+netdev@lunn.ch,
	davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
	pabeni@redhat.com, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, geert+renesas@glider.be,
	magnus.damm@gmail.com
  Cc: john.madieu@gmail.com, netdev@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, John Madieu

Hi John,

> -----Original Message-----
> From: John Madieu <john.madieu.xa@bp.renesas.com>
> Sent: 04 June 2025 07:52
> Subject: [PATCH 3/4] arm64: dts: renesas: r9a09g047: Add GBETH nodes
> 
> Add GBETH nodes to RZ/G3E (R9A09G047) SoC DTSI.
> 
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>

Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Tested-by: Biju Das <biju.das.jz@bp.renesas.com>

Cheers,
Biju

> ---
>  arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 207 +++++++++++++++++++++
>  1 file changed, 207 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> index a0d4fab4fe05..e6e35b41a9d3 100644
> --- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi
> @@ -759,6 +759,213 @@ csi2cru: endpoint@0 {
>  				};
>  			};
>  		};
> +
> +		eth0: ethernet@15c30000 {
> +			compatible = "renesas,r9a09g047-gbeth", "renesas,rzv2h-gbeth", "snps,dwmac-5.20";
> +			reg = <0 0x15c30000 0 0x10000>;
> +			clocks = <&cpg CPG_MOD 0xbd>, <&cpg CPG_MOD 0xbc>,
> +				 <&cpg CPG_CORE R9A09G047_GBETH_0_CLK_PTP_REF_I>,
> +				 <&cpg CPG_MOD 0xb8>, <&cpg CPG_MOD 0xb9>,
> +				 <&cpg CPG_MOD 0xba>, <&cpg CPG_MOD 0xbb>;
> +			clock-names = "stmmaceth", "pclk", "ptp_ref",
> +				      "tx", "rx", "tx-180", "rx-180";
> +			interrupts = <GIC_SPI 765 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 767 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 766 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 772 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 773 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 774 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 775 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 768 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 769 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 770 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 771 IRQ_TYPE_LEVEL_HIGH>;
> +			interrupt-names = "macirq", "eth_wake_irq", "eth_lpi",
> +					  "rx-queue-0", "rx-queue-1", "rx-queue-2",
> +					  "rx-queue-3", "tx-queue-0", "tx-queue-1",
> +					  "tx-queue-2", "tx-queue-3";
> +			resets = <&cpg 0xb0>;
> +			power-domains = <&cpg>;
> +			snps,multicast-filter-bins = <256>;
> +			snps,perfect-filter-entries = <128>;
> +			rx-fifo-depth = <8192>;
> +			tx-fifo-depth = <8192>;
> +			snps,fixed-burst;
> +			snps,no-pbl-x8;
> +			snps,force_thresh_dma_mode;
> +			snps,axi-config = <&stmmac_axi_setup>;
> +			snps,mtl-rx-config = <&mtl_rx_setup0>;
> +			snps,mtl-tx-config = <&mtl_tx_setup0>;
> +			snps,txpbl = <32>;
> +			snps,rxpbl = <32>;
> +			status = "disabled";
> +
> +			mdio {
> +				compatible = "snps,dwmac-mdio";
> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +			};
> +
> +			mtl_rx_setup0: rx-queues-config {
> +				snps,rx-queues-to-use = <4>;
> +				snps,rx-sched-sp;
> +
> +				queue0 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x1>;
> +					snps,map-to-dma-channel = <0>;
> +				};
> +
> +				queue1 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x2>;
> +					snps,map-to-dma-channel = <1>;
> +				};
> +
> +				queue2 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x4>;
> +					snps,map-to-dma-channel = <2>;
> +				};
> +
> +				queue3 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x8>;
> +					snps,map-to-dma-channel = <3>;
> +				};
> +			};
> +
> +			mtl_tx_setup0: tx-queues-config {
> +				snps,tx-queues-to-use = <4>;
> +
> +				queue0 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x1>;
> +				};
> +
> +				queue1 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x2>;
> +				};
> +
> +				queue2 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x4>;
> +				};
> +
> +				queue3 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x8>;
> +				};
> +			};
> +		};
> +
> +		eth1: ethernet@15c40000 {
> +			compatible = "renesas,r9a09g047-gbeth", "renesas,rzv2h-gbeth", "snps,dwmac-5.20";
> +			reg = <0 0x15c40000 0 0x10000>;
> +			clocks = <&cpg CPG_MOD 0xc3>, <&cpg CPG_MOD 0xc2>,
> +				 <&cpg CPG_CORE R9A09G047_GBETH_1_CLK_PTP_REF_I>,
> +				 <&cpg CPG_MOD 0xbe>, <&cpg CPG_MOD 0xbf>,
> +				 <&cpg CPG_MOD 0xc0>, <&cpg CPG_MOD 0xc1>;
> +			clock-names = "stmmaceth", "pclk", "ptp_ref",
> +				      "tx", "rx", "tx-180", "rx-180";
> +			interrupts = <GIC_SPI 780 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 782 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 781 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 787 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 788 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 789 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 790 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 783 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 784 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 785 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 786 IRQ_TYPE_LEVEL_HIGH>;
> +			interrupt-names = "macirq", "eth_wake_irq", "eth_lpi",
> +					  "rx-queue-0", "rx-queue-1", "rx-queue-2",
> +					  "rx-queue-3", "tx-queue-0", "tx-queue-1",
> +					  "tx-queue-2", "tx-queue-3";
> +			resets = <&cpg 0xb1>;
> +			power-domains = <&cpg>;
> +			snps,multicast-filter-bins = <256>;
> +			snps,perfect-filter-entries = <128>;
> +			rx-fifo-depth = <8192>;
> +			tx-fifo-depth = <8192>;
> +			snps,fixed-burst;
> +			snps,no-pbl-x8;
> +			snps,force_thresh_dma_mode;
> +			snps,axi-config = <&stmmac_axi_setup>;
> +			snps,mtl-rx-config = <&mtl_rx_setup1>;
> +			snps,mtl-tx-config = <&mtl_tx_setup1>;
> +			snps,txpbl = <32>;
> +			snps,rxpbl = <32>;
> +			status = "disabled";
> +
> +			mdio {
> +				compatible = "snps,dwmac-mdio";
> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +			};
> +
> +			mtl_rx_setup1: rx-queues-config {
> +				snps,rx-queues-to-use = <4>;
> +				snps,rx-sched-sp;
> +
> +				queue0 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x1>;
> +					snps,map-to-dma-channel = <0>;
> +				};
> +
> +				queue1 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x2>;
> +					snps,map-to-dma-channel = <1>;
> +				};
> +
> +				queue2 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x4>;
> +					snps,map-to-dma-channel = <2>;
> +				};
> +
> +				queue3 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x8>;
> +					snps,map-to-dma-channel = <3>;
> +				};
> +			};
> +
> +			mtl_tx_setup1: tx-queues-config {
> +				snps,tx-queues-to-use = <4>;
> +
> +				queue0 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x1>;
> +				};
> +
> +				queue1 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x2>;
> +				};
> +
> +				queue2 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x4>;
> +				};
> +
> +				queue3 {
> +					snps,dcb-algorithm;
> +					snps,priority = <0x8>;
> +				};
> +			};
> +		};
> +	};
> +
> +	stmmac_axi_setup: stmmac-axi-config {
> +		snps,lpi_en;
> +		snps,wr_osr_lmt = <0xf>;
> +		snps,rd_osr_lmt = <0xf>;
> +		snps,blen = <16 8 4 0 0 0 0>;
>  	};
> 
>  	timer {
> --
> 2.25.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH 4/4] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces
  2025-06-04  6:52 ` [PATCH 4/4] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces John Madieu
@ 2025-06-05  8:43   ` Biju Das
  0 siblings, 0 replies; 12+ messages in thread
From: Biju Das @ 2025-06-05  8:43 UTC (permalink / raw)
  To: John Madieu, Prabhakar Mahadev Lad, andrew+netdev@lunn.ch,
	davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
	pabeni@redhat.com, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, geert+renesas@glider.be,
	magnus.damm@gmail.com
  Cc: john.madieu@gmail.com, netdev@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, John Madieu

Hi John,

> -----Original Message-----
> From: John Madieu <john.madieu.xa@bp.renesas.com>
> Sent: 04 June 2025 07:52
> Subject: [PATCH 4/4] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces
> 
> Enable the Gigabit Ethernet Interfaces (GBETH) populated on the RZ/G3E SMARC EVK
> 
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>

Reviewed-by: Biju Das <biju.das.jz@bp.renesas.com>
Tested-by: Biju Das <biju.das.jz@bp.renesas.com>

Cheers,
Biju


> ---
>  .../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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC
  2025-06-04  6:51 ` [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC John Madieu
  2025-06-04 18:14   ` Lad, Prabhakar
@ 2025-06-06 12:21   ` Geert Uytterhoeven
  2025-06-09 15:30   ` Jakub Kicinski
  2 siblings, 0 replies; 12+ messages in thread
From: Geert Uytterhoeven @ 2025-06-06 12:21 UTC (permalink / raw)
  To: John Madieu
  Cc: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, kuba,
	pabeni, robh, krzk+dt, conor+dt, magnus.damm, biju.das.jz,
	john.madieu, netdev, linux-renesas-soc, devicetree, linux-kernel

On Wed, 4 Jun 2025 at 08:52, John Madieu <john.madieu.xa@bp.renesas.com> wrote:
> Document support for the GBETH IP found on the Renesas RZ/G3E (R9A09G047) SoC.
> The GBETH block on RZ/G3E is equivalent in functionality to the GBETH found on
> RZ/V2H(P) (R9A09G057).
>
> Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>

LGTM (I don't have the User's Manual Additional Document for RZ/V2N)
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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC
  2025-06-04  6:51 ` [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC John Madieu
  2025-06-04 18:14   ` Lad, Prabhakar
  2025-06-06 12:21   ` Geert Uytterhoeven
@ 2025-06-09 15:30   ` Jakub Kicinski
  2025-06-10  7:46     ` John Madieu
  2 siblings, 1 reply; 12+ messages in thread
From: Jakub Kicinski @ 2025-06-09 15:30 UTC (permalink / raw)
  To: John Madieu
  Cc: prabhakar.mahadev-lad.rj, andrew+netdev, davem, edumazet, pabeni,
	robh, krzk+dt, conor+dt, geert+renesas, magnus.damm, biju.das.jz,
	john.madieu, netdev, linux-renesas-soc, devicetree, linux-kernel

On Wed,  4 Jun 2025 08:51:58 +0200 John Madieu wrote:
> Document support for the GBETH IP found on the Renesas RZ/G3E (R9A09G047) SoC.
> The GBETH block on RZ/G3E is equivalent in functionality to the GBETH found on
> RZ/V2H(P) (R9A09G057).

Could you repost this as a stand-alone patch with [PATCH net-next]
in the subject? I believe the patches in this series need to go
to 3 different trees, /Documentation/devicetree/bindings/net
to networking.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC
  2025-06-09 15:30   ` Jakub Kicinski
@ 2025-06-10  7:46     ` John Madieu
  0 siblings, 0 replies; 12+ messages in thread
From: John Madieu @ 2025-06-10  7:46 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: Prabhakar Mahadev Lad, andrew+netdev@lunn.ch, davem@davemloft.net,
	edumazet@google.com, pabeni@redhat.com, robh@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, geert+renesas@glider.be,
	magnus.damm@gmail.com, Biju Das, john.madieu@gmail.com,
	netdev@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org

Hi Jakub,

Thanks for the feedback.

> -----Original Message-----
> From: Jakub Kicinski <kuba@kernel.org>
> Sent: Monday, June 9, 2025 5:30 PM
> To: John Madieu <john.madieu.xa@bp.renesas.com>
> Subject: Re: [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for
> RZ/G3E (R9A09G047) SoC
> 
> On Wed,  4 Jun 2025 08:51:58 +0200 John Madieu wrote:
> > Document support for the GBETH IP found on the Renesas RZ/G3E
> (R9A09G047) SoC.
> > The GBETH block on RZ/G3E is equivalent in functionality to the GBETH
> > found on
> > RZ/V2H(P) (R9A09G057).
> 
> Could you repost this as a stand-alone patch with [PATCH net-next] in the
> subject? I believe the patches in this series need to go to 3 different
> trees, /Documentation/devicetree/bindings/net
> to networking.

Got it. I'll send a v2 with a standalone patch for the binding.

Regards,
John

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2025-06-10  7:46 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-04  6:51 [PATCH 0/4] Add support for GBETH IPs found on RZ/G3E SoCs John Madieu
2025-06-04  6:51 ` [PATCH 1/4] clk: renesas: r9a09g047: Add clock and reset signals for the GBETH IPs John Madieu
2025-06-05  8:41   ` Biju Das
2025-06-04  6:51 ` [PATCH 2/4] dt-bindings: net: renesas-gbeth: Add support for RZ/G3E (R9A09G047) SoC John Madieu
2025-06-04 18:14   ` Lad, Prabhakar
2025-06-06 12:21   ` Geert Uytterhoeven
2025-06-09 15:30   ` Jakub Kicinski
2025-06-10  7:46     ` John Madieu
2025-06-04  6:51 ` [PATCH 3/4] arm64: dts: renesas: r9a09g047: Add GBETH nodes John Madieu
2025-06-05  8:42   ` Biju Das
2025-06-04  6:52 ` [PATCH 4/4] arm64: dts: renesas: rzg3e-smarc-som: Enable eth{0-1} (GBETH) interfaces John Madieu
2025-06-05  8:43   ` Biju Das

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).