* [PATCH 0/4] Add RZ/G3L PCIe support
@ 2026-08-25 9:50 Biju
2026-08-25 9:50 ` [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC Biju
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Biju @ 2026-08-25 9:50 UTC (permalink / raw)
To: Claudiu Beznea, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm
Cc: Biju Das, Rob Herring, linux-pci, linux-renesas-soc, devicetree,
linux-kernel, Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Hi All,
The RZ/G3L PCIe controller is similar to RZ/G3S but has
some key differences:
- Has 3 clocks compared to 2 on other SoCs.
- Has a different set of reset signals
Add support for RZ/G3L PCIe.
Patch 3 apply on top of [1] and [2]
[1] https://lore.kernel.org/all/20260811200013.185956-1-prabhakar.mahadev-lad.rj@bp.renesas.com/
[2] https://lore.kernel.org/linux-renesas-soc/20260814141312.2947972-1-claudiu.beznea+renesas@tuxon.dev/
Biju Das (4):
dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC
clk: renesas: r9a08g046: Add PCIe clocks and reset
PCI: rzg3s-host: Add support for RZ/G3L SoC
arm64: dts: renesas: r9a08g046: Add PCIe support
.../bindings/pci/renesas,r9a08g045-pcie.yaml | 33 +++++++++++++-
arch/arm64/boot/dts/renesas/r9a08g046.dtsi | 45 ++++++++++++++++++-
.../boot/dts/renesas/r9a08g046l48-smarc.dts | 16 +++++++
.../boot/dts/renesas/rzg3l-smarc-som.dtsi | 11 +++++
drivers/clk/renesas/r9a08g046-cpg.c | 9 ++++
drivers/pci/controller/pcie-rzg3s-host.c | 25 ++++++++++-
6 files changed, 135 insertions(+), 4 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC
2026-08-25 9:50 [PATCH 0/4] Add RZ/G3L PCIe support Biju
@ 2026-08-25 9:50 ` Biju
2026-08-31 6:33 ` Krzysztof Kozlowski
2026-09-03 12:41 ` Geert Uytterhoeven
2026-08-25 9:50 ` [PATCH 2/4] clk: renesas: r9a08g046: Add PCIe clocks and reset Biju
` (2 subsequent siblings)
3 siblings, 2 replies; 11+ messages in thread
From: Biju @ 2026-08-25 9:50 UTC (permalink / raw)
To: Claudiu Beznea, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm
Cc: Biju Das, Rob Herring, linux-pci, linux-renesas-soc, devicetree,
linux-kernel, Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Extend the existing device tree bindings for Renesas RZ/G3S PCIe
controller to include support for the RZ/G3L (renesas,r9a08g046-pcie)
PCIe controller. The RZ/G3L PCIe controller is similar to RZ/G3S but has
some key differences:
- Has 3 clocks compared to 2 on other SoCs.
- Has a different set of reset signals
Add device tree bindings for renesas,r9a08g046-pcie compatible IPs.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
.../bindings/pci/renesas,r9a08g045-pcie.yaml | 33 ++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml b/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
index 09d78bd1a577..911b1976bf53 100644
--- a/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
+++ b/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
@@ -13,7 +13,7 @@ description: |
PCIe host controller found in Renesas RZ/G3S and similar SoCs complies
with PCIe Base Specification 4.0 and supports different link speeds
depending on the SoC variant:
- - Gen2 (5 GT/s): RZ/G3S
+ - Gen2 (5 GT/s): RZ/G3{L,S}
- Gen3 (8 GT/s): RZ/G3E, RZ/V2H(P), RZ/V2N
properties:
@@ -21,6 +21,7 @@ properties:
oneOf:
- enum:
- renesas,r9a08g045-pcie # RZ/G3S
+ - renesas,r9a08g046-pcie # RZ/G3L
- renesas,r9a09g047-pcie # RZ/G3E
- renesas,r9a09g057-pcie # RZ/V2H(P)
- items:
@@ -87,14 +88,18 @@ properties:
interrupt-controller: true
clocks:
+ minItems: 2
items:
- description: System clock
- description: PM control clock or clock for L1 substate handling
+ - description: PM control clock or clock for L1 substate handling
clock-names:
+ minItems: 2
items:
- const: aclk
- enum: [pm, pmu]
+ - enum: [pm, pmu]
resets:
minItems: 1
@@ -215,6 +220,8 @@ allOf:
maxItems: 16
interrupt-names:
maxItems: 16
+ clocks:
+ maxItems: 2
clock-names:
items:
- const: aclk
@@ -223,6 +230,28 @@ allOf:
minItems: 7
reset-names:
minItems: 7
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: renesas,r9a08g046-pcie
+ then:
+ properties:
+ interrupts:
+ maxItems: 16
+ interrupt-names:
+ maxItems: 16
+ clocks:
+ minItems: 3
+ clock-names:
+ items:
+ - const: aclk
+ - const: pm
+ - const: pmu
+ resets:
+ maxItems: 1
+ reset-names:
+ maxItems: 1
- if:
properties:
compatible:
@@ -236,6 +265,8 @@ allOf:
minItems: 23
interrupt-names:
minItems: 23
+ clocks:
+ maxItems: 2
clock-names:
items:
- const: aclk
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/4] clk: renesas: r9a08g046: Add PCIe clocks and reset
2026-08-25 9:50 [PATCH 0/4] Add RZ/G3L PCIe support Biju
2026-08-25 9:50 ` [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC Biju
@ 2026-08-25 9:50 ` Biju
2026-09-03 12:42 ` Geert Uytterhoeven
2026-08-25 9:50 ` [PATCH 3/4] PCI: rzg3s-host: Add support for RZ/G3L SoC Biju
2026-08-25 9:50 ` [PATCH 4/4] arm64: dts: renesas: r9a08g046: Add PCIe support Biju
3 siblings, 1 reply; 11+ messages in thread
From: Biju @ 2026-08-25 9:50 UTC (permalink / raw)
To: Geert Uytterhoeven, Stephen Boyd, Brian Masney, Jerome Brunet
Cc: Biju Das, linux-renesas-soc, linux-clk, linux-kernel,
Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Add the PCIe module clocks (ACLK, CLKL1PM, CLK_PMU) and the PCIe
reset signal for the RZ/G3L (R9A08G046) SoC, along with the P8
fixed clock required as the parent for CLKL1PM.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
drivers/clk/renesas/r9a08g046-cpg.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/clk/renesas/r9a08g046-cpg.c b/drivers/clk/renesas/r9a08g046-cpg.c
index 5878423db151..22821321a1d3 100644
--- a/drivers/clk/renesas/r9a08g046-cpg.c
+++ b/drivers/clk/renesas/r9a08g046-cpg.c
@@ -335,6 +335,7 @@ static const struct cpg_core_clk r9a08g046_core_clks[] __initconst = {
dtable_8_256, 0, 0, 0, NULL),
DEF_G3S_DIV("P3", R9A08G046_CLK_P3, CLK_PLL2_DIV2, G3L_DIVPL2A, G3L_DIVPL2A_STS,
dtable_4_128, 0, 0, 0, NULL),
+ DEF_FIXED("P8", R9A08G046_CLK_P8, CLK_PLL3_DIV2, 1, 8),
DEF_G3S_DIV("P13", R9A08G046_CLK_P13, CLK_SEL_RSCI0, G3L_DIV_RSCI0, G3L_DIV_RSCI0_STS,
dtable_2_16, 0, 100000000UL, 0, NULL),
DEF_G3S_DIV("P14", R9A08G046_CLK_P14, CLK_SEL_RSCI1, G3L_DIV_RSCI1, G3L_DIV_RSCI1_STS,
@@ -558,6 +559,12 @@ static const struct rzg2l_mod_clk r9a08g046_mod_clks[] = {
MSTOP(BUS_MCPU2, BIT(0))),
DEF_MOD("gpio_hclk", R9A08G046_GPIO_HCLK, R9A08G046_OSCCLK, 0x598, 0,
MSTOP(BUS_PERI_CPU, BIT(6))),
+ DEF_MOD("pci_aclk", R9A08G046_PCI_ACLK, R9A08G046_CLK_P1, 0x608, 0,
+ MSTOP(BUS_PERI_COM, BIT(10))),
+ DEF_MOD("pci_clkl1pm", R9A08G046_PCI_CLKL1PM, R9A08G046_CLK_P8, 0x608, 1,
+ MSTOP(BUS_PERI_COM, BIT(10))),
+ DEF_MOD("pci_clk_pmu", R9A08G046_PCI_CLK_PMU, R9A08G046_CLK_P1, 0x608, 2,
+ MSTOP(BUS_PERI_COM, BIT(10))),
DEF_MOD("rsci0_pclk", R9A08G046_RSCI0_PCLK, R9A08G046_CLK_P0, 0x618, 0,
MSTOP(BUS_MCPU2, BIT(7))),
DEF_MOD("rsci1_pclk", R9A08G046_RSCI1_PCLK, R9A08G046_CLK_P0, 0x618, 1,
@@ -633,6 +640,7 @@ static const struct rzg2l_reset r9a08g046_resets[] = {
DEF_RST(R9A08G046_GPIO_RSTN, 0x898, 0),
DEF_RST(R9A08G046_GPIO_PORT_RESETN, 0x898, 1),
DEF_RST(R9A08G046_GPIO_SPARE_RESETN, 0x898, 2),
+ DEF_RST(R9A08G046_PCI_ARESETN, 0x908, 0),
DEF_RST(R9A08G046_RSCI0_PRESETN, 0x918, 0),
DEF_RST(R9A08G046_RSCI1_PRESETN, 0x918, 1),
DEF_RST(R9A08G046_RSCI2_PRESETN, 0x918, 2),
@@ -671,6 +679,7 @@ static const unsigned int r9a08g046_no_pm_mod_clks[] = {
MOD_CLK_BASE + R9A08G046_ETH1_CLK_RMII_I,
MOD_CLK_BASE + R9A08G046_ETH1_CLK_TX_I_RMII,
MOD_CLK_BASE + R9A08G046_ETH1_CLK_RX_I_RMII,
+ MOD_CLK_BASE + R9A08G046_PCI_CLKL1PM,
};
const struct rzg2l_cpg_info r9a08g046_cpg_info = {
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 3/4] PCI: rzg3s-host: Add support for RZ/G3L SoC
2026-08-25 9:50 [PATCH 0/4] Add RZ/G3L PCIe support Biju
2026-08-25 9:50 ` [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC Biju
2026-08-25 9:50 ` [PATCH 2/4] clk: renesas: r9a08g046: Add PCIe clocks and reset Biju
@ 2026-08-25 9:50 ` Biju
2026-09-03 12:53 ` Geert Uytterhoeven
2026-08-25 9:50 ` [PATCH 4/4] arm64: dts: renesas: r9a08g046: Add PCIe support Biju
3 siblings, 1 reply; 11+ messages in thread
From: Biju @ 2026-08-25 9:50 UTC (permalink / raw)
To: Claudiu Beznea, Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Bjorn Helgaas, Geert Uytterhoeven,
Magnus Damm
Cc: Biju Das, Rob Herring, linux-pci, linux-renesas-soc,
linux-kernel, Prabhakar Mahadev Lad, Biju Das
From: Biju Das <biju.das.jz@bp.renesas.com>
Add SoC-specific data for the RZ/G3L (R9A08G046) PCIe controller and
register its "renesas,r9a08g046-pcie" compatible string. RZ/G3L reuses
the RZ/G3E config init/deinit callbacks and power resets, with its own
L1-allow syscon offset and mask.
Also increase the timeout in rzg3s_pcie_set_max_link_speed() to fix
the "Failed to set max link speed" message seen on RZ/G3L.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
drivers/pci/controller/pcie-rzg3s-host.c | 25 +++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/controller/pcie-rzg3s-host.c b/drivers/pci/controller/pcie-rzg3s-host.c
index b3531468ef38..3dffb85c6a47 100644
--- a/drivers/pci/controller/pcie-rzg3s-host.c
+++ b/drivers/pci/controller/pcie-rzg3s-host.c
@@ -1165,7 +1165,7 @@ static int rzg3s_pcie_set_max_link_speed(struct rzg3s_pcie_host *host)
FIELD_GET(RZG3S_PCI_PCSTAT1_LTSSM_STATE, tmp) == ltssm_state_l0,
PCIE_LINK_WAIT_SLEEP_MS * MILLI,
PCIE_LINK_WAIT_SLEEP_MS * MILLI *
- PCIE_LINK_WAIT_MAX_RETRIES);
+ PCIE_LINK_WAIT_MAX_RETRIES * 10);
if (ret)
return ret;
@@ -2467,6 +2467,25 @@ static const struct rzg3s_pcie_soc_data rzg3e_soc_data = {
},
};
+static const struct rzg3s_pcie_soc_data rzg3l_soc_data = {
+ .power_resets = rzg3e_soc_power_resets,
+ .num_power_resets = ARRAY_SIZE(rzg3e_soc_power_resets),
+ .num_pcie_controllers = 1,
+ .config_pre_init = rzg3e_pcie_config_pre_init,
+ .config_post_init = rzg3e_pcie_config_post_init,
+ .config_deinit = rzg3e_pcie_config_deinit,
+ .sysc_info = {
+ [RZG3S_PCIE_CONTROLLER_ID_0] = {
+ .functions = {
+ [RZG3S_SYSC_FUNC_ID_L1_ALLOW] = {
+ .offset = 0x3a0,
+ .mask = BIT(8),
+ },
+ },
+ },
+ },
+};
+
static const struct rzg3s_pcie_soc_data rzv2h_soc_data = {
.power_resets = rzg3e_soc_power_resets,
.num_power_resets = ARRAY_SIZE(rzg3e_soc_power_resets),
@@ -2516,6 +2535,10 @@ static const struct of_device_id rzg3s_pcie_of_match[] = {
.compatible = "renesas,r9a08g045-pcie",
.data = &rzg3s_soc_data,
},
+ {
+ .compatible = "renesas,r9a08g046-pcie",
+ .data = &rzg3l_soc_data,
+ },
{
.compatible = "renesas,r9a09g047-pcie",
.data = &rzg3e_soc_data,
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 4/4] arm64: dts: renesas: r9a08g046: Add PCIe support
2026-08-25 9:50 [PATCH 0/4] Add RZ/G3L PCIe support Biju
` (2 preceding siblings ...)
2026-08-25 9:50 ` [PATCH 3/4] PCI: rzg3s-host: Add support for RZ/G3L SoC Biju
@ 2026-08-25 9:50 ` Biju
2026-09-03 13:01 ` Geert Uytterhoeven
3 siblings, 1 reply; 11+ messages in thread
From: Biju @ 2026-08-25 9:50 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>
Populate the previously placeholder PCIe node for the RZ/G3L
(R9A08G046) SoC with interrupts, clocks, resets, interrupt-map, and
the PCIe root port's vendor/device ID, and enable it on the RZ/G3L
SMARC board with the required pin control, CLKREQ# GPIO hog, and
100 MHz reference clock.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
arch/arm64/boot/dts/renesas/r9a08g046.dtsi | 45 ++++++++++++++++++-
.../boot/dts/renesas/r9a08g046l48-smarc.dts | 16 +++++++
.../boot/dts/renesas/rzg3l-smarc-som.dtsi | 11 +++++
3 files changed, 70 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
index f652ad3f1d1a..83e466ec49ff 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
+++ b/arch/arm64/boot/dts/renesas/r9a08g046.dtsi
@@ -1480,20 +1480,61 @@ hsusb1: usb@11eb0000 {
};
pcie: pcie@11e40000 {
+ compatible = "renesas,r9a08g046-pcie";
reg = <0 0x11e40000 0 0x10000>;
ranges = <0x02000000 0 0x30000000 0 0x30000000 0 0x08000000>;
+ /* Map all possible DRAM ranges (4 GB). */
+ dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 1 0x00000000>;
+ bus-range = <0x0 0xff>;
+ interrupts = <GIC_SPI 483 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 484 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 485 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 492 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 493 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 494 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 497 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 498 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "serr", "serr_cor", "serr_nonfatal",
+ "serr_fatal", "axi_err", "inta",
+ "intb", "intc", "intd", "msi",
+ "link_bandwidth", "pm_pme", "dma",
+ "pcie_evt", "msg", "all";
+ #interrupt-cells = <1>;
+ interrupt-controller;
+ interrupt-map-mask = <0 0 0 7>;
+ interrupt-map = <0 0 0 1 &pcie 0 0 0 0>, /* INTA */
+ <0 0 0 2 &pcie 0 0 0 1>, /* INTB */
+ <0 0 0 3 &pcie 0 0 0 2>, /* INTC */
+ <0 0 0 4 &pcie 0 0 0 3>; /* INTD */
+ clocks = <&cpg CPG_MOD R9A08G046_PCI_ACLK>,
+ <&cpg CPG_MOD R9A08G046_PCI_CLKL1PM>,
+ <&cpg CPG_MOD R9A08G046_PCI_CLK_PMU>;
+ clock-names = "aclk", "pm", "pmu";
+ resets = <&cpg R9A08G046_PCI_ARESETN>;
+ reset-names = "aresetn";
+ power-domains = <&cpg>;
device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
- /* placeholder */
+ renesas,sysc = <&sysc>;
+ status = "disabled";
pcie_port0: pcie@0,0 {
reg = <0x0 0x0 0x0 0x0 0x0>;
ranges;
device_type = "pci";
+ vendor-id = <0x1912>;
+ device-id = <0x0033>;
#address-cells = <3>;
#size-cells = <2>;
- /* placeholder */
};
};
diff --git a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
index 5a8269c06435..a155967e1f68 100644
--- a/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
+++ b/arch/arm64/boot/dts/renesas/r9a08g046l48-smarc.dts
@@ -170,6 +170,11 @@ &ohci1 {
status = "okay";
};
+&pcie {
+ pinctrl-0 = <&pcie_pins>;
+ pinctrl-names = "default";
+};
+
&phyrst {
status = "okay";
};
@@ -190,6 +195,17 @@ i2c3_pins: i2c3 {
<RZG3L_PORT_PINMUX(2, 1, 4)>; /* RIIC3_SDA */
};
+ pcie-clkreq-n-hog {
+ gpio-hog;
+ gpios = <RZG3L_GPIO(G, 6) GPIO_ACTIVE_HIGH>;
+ output-low;
+ line-name = "PCIE_A_CKREQ";
+ };
+
+ pcie_pins: pcie {
+ pinmux = <RZG3L_PORT_PINMUX(G, 7, 1)>; /* PCIE_RST_OUT# */
+ };
+
rsci1_pins: rsci1 {
pinmux = <RZG3L_PORT_PINMUX(D, 4, 5)>, /* RSCI1_RXD_MISO_SCL */
<RZG3L_PORT_PINMUX(D, 5, 5)>, /* RSCI1_TXD_MOSI_SDA */
diff --git a/arch/arm64/boot/dts/renesas/rzg3l-smarc-som.dtsi b/arch/arm64/boot/dts/renesas/rzg3l-smarc-som.dtsi
index c1c2795bda4e..2ee11d54bd58 100644
--- a/arch/arm64/boot/dts/renesas/rzg3l-smarc-som.dtsi
+++ b/arch/arm64/boot/dts/renesas/rzg3l-smarc-som.dtsi
@@ -51,6 +51,12 @@ memory@48000000 {
reg = <0x0 0x48000000 0x0 0x78000000>;
};
+ pcie_refclk: pcie-ref-clock {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <100000000>;
+ };
+
reg_1p0v: regulator-1p0v {
compatible = "regulator-fixed";
regulator-name = "fixed-1.0V";
@@ -190,6 +196,11 @@ phy1: ethernet-phy@7 {
};
};
+&pcie_port0 {
+ clocks = <&pcie_refclk>;
+ clock-names = "ref";
+};
+
&pinctrl {
eth0_pins: eth0 {
txc {
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC
2026-08-25 9:50 ` [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC Biju
@ 2026-08-31 6:33 ` Krzysztof Kozlowski
2026-09-03 12:47 ` Biju Das
2026-09-03 12:41 ` Geert Uytterhoeven
1 sibling, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2026-08-31 6:33 UTC (permalink / raw)
To: Biju
Cc: Claudiu Beznea, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
Magnus Damm, Biju Das, Rob Herring, linux-pci, linux-renesas-soc,
devicetree, linux-kernel, Prabhakar Mahadev Lad
On Tue, Aug 25, 2026 at 10:50:40AM +0100, Biju wrote:
> From: Biju Das <biju.das.jz@bp.renesas.com>
>
> Extend the existing device tree bindings for Renesas RZ/G3S PCIe
> controller to include support for the RZ/G3L (renesas,r9a08g046-pcie)
> PCIe controller. The RZ/G3L PCIe controller is similar to RZ/G3S but has
> some key differences:
> - Has 3 clocks compared to 2 on other SoCs.
> - Has a different set of reset signals
>
> Add device tree bindings for renesas,r9a08g046-pcie compatible IPs.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> .../bindings/pci/renesas,r9a08g045-pcie.yaml | 33 ++++++++++++++++++-
> 1 file changed, 32 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml b/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
> index 09d78bd1a577..911b1976bf53 100644
> --- a/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
> +++ b/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
> @@ -13,7 +13,7 @@ description: |
> PCIe host controller found in Renesas RZ/G3S and similar SoCs complies
> with PCIe Base Specification 4.0 and supports different link speeds
> depending on the SoC variant:
> - - Gen2 (5 GT/s): RZ/G3S
> + - Gen2 (5 GT/s): RZ/G3{L,S}
> - Gen3 (8 GT/s): RZ/G3E, RZ/V2H(P), RZ/V2N
>
> properties:
> @@ -21,6 +21,7 @@ properties:
> oneOf:
> - enum:
> - renesas,r9a08g045-pcie # RZ/G3S
> + - renesas,r9a08g046-pcie # RZ/G3L
> - renesas,r9a09g047-pcie # RZ/G3E
> - renesas,r9a09g057-pcie # RZ/V2H(P)
> - items:
> @@ -87,14 +88,18 @@ properties:
> interrupt-controller: true
>
> clocks:
> + minItems: 2
> items:
> - description: System clock
> - description: PM control clock or clock for L1 substate handling
> + - description: PM control clock or clock for L1 substate handling
PMU? You list both clocks, but is there any different between them?
>
> clock-names:
> + minItems: 2
> items:
> - const: aclk
> - enum: [pm, pmu]
> + - enum: [pm, pmu]
This should be "const: pmu" in such case.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC
2026-08-25 9:50 ` [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC Biju
2026-08-31 6:33 ` Krzysztof Kozlowski
@ 2026-09-03 12:41 ` Geert Uytterhoeven
1 sibling, 0 replies; 11+ messages in thread
From: Geert Uytterhoeven @ 2026-09-03 12:41 UTC (permalink / raw)
To: Biju
Cc: Claudiu Beznea, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam,
Krzysztof Kozlowski, Conor Dooley, Magnus Damm, Biju Das,
Rob Herring, linux-pci, linux-renesas-soc, devicetree,
linux-kernel, Prabhakar Mahadev Lad
Hi Biju,
On Tue, 25 Aug 2026 at 11:50, Biju <biju.das.au@gmail.com> wrote:
> From: Biju Das <biju.das.jz@bp.renesas.com>
>
> Extend the existing device tree bindings for Renesas RZ/G3S PCIe
> controller to include support for the RZ/G3L (renesas,r9a08g046-pcie)
> PCIe controller. The RZ/G3L PCIe controller is similar to RZ/G3S but has
> some key differences:
> - Has 3 clocks compared to 2 on other SoCs.
> - Has a different set of reset signals
>
> Add device tree bindings for renesas,r9a08g046-pcie compatible IPs.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Thanks for your patch!
> --- a/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
> +++ b/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
> @@ -87,14 +88,18 @@ properties:
> interrupt-controller: true
>
> clocks:
> + minItems: 2
> items:
> - description: System clock
> - description: PM control clock or clock for L1 substate handling
> + - description: PM control clock or clock for L1 substate handling
As pointed out by Krzysztof, the "or ..." part should be dropped...
>
> clock-names:
> + minItems: 2
> items:
> - const: aclk
> - enum: [pm, pmu]
> + - enum: [pm, pmu]
... this can only be "pmu".
>
> resets:
> minItems: 1
The rest LGTM.
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] 11+ messages in thread
* Re: [PATCH 2/4] clk: renesas: r9a08g046: Add PCIe clocks and reset
2026-08-25 9:50 ` [PATCH 2/4] clk: renesas: r9a08g046: Add PCIe clocks and reset Biju
@ 2026-09-03 12:42 ` Geert Uytterhoeven
0 siblings, 0 replies; 11+ messages in thread
From: Geert Uytterhoeven @ 2026-09-03 12:42 UTC (permalink / raw)
To: Biju
Cc: Stephen Boyd, Brian Masney, Jerome Brunet, Biju Das,
linux-renesas-soc, linux-clk, linux-kernel,
Prabhakar Mahadev Lad
On Tue, 25 Aug 2026 at 11:50, Biju <biju.das.au@gmail.com> wrote:
> From: Biju Das <biju.das.jz@bp.renesas.com>
>
> Add the PCIe module clocks (ACLK, CLKL1PM, CLK_PMU) and the PCIe
> reset signal for the RZ/G3L (R9A08G046) SoC, along with the P8
> fixed clock required as the parent for CLKL1PM.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
i.e. will queue in renesas-clk for v7.4.
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] 11+ messages in thread
* RE: [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC
2026-08-31 6:33 ` Krzysztof Kozlowski
@ 2026-09-03 12:47 ` Biju Das
0 siblings, 0 replies; 11+ messages in thread
From: Biju Das @ 2026-09-03 12:47 UTC (permalink / raw)
To: Krzysztof Kozlowski, Geert Uytterhoeven
Cc: Claudiu Beznea, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam,
Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
magnus.damm, Rob Herring, linux-pci, linux-renesas-soc,
devicetree, linux-kernel, Prabhakar Mahadev Lad
Hi Krzysztof Kozlowski/Geert,
Thanks for the feedback.
> -----Original Message-----
> From: Krzysztof Kozlowski <krzk@kernel.org>
> Sent: 31 August 2026 07:34
> Subject: Re: [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC
>
> On Tue, Aug 25, 2026 at 10:50:40AM +0100, Biju wrote:
> > From: Biju Das <biju.das.jz@bp.renesas.com>
> >
> > Extend the existing device tree bindings for Renesas RZ/G3S PCIe
> > controller to include support for the RZ/G3L (renesas,r9a08g046-pcie)
> > PCIe controller. The RZ/G3L PCIe controller is similar to RZ/G3S but
> > has some key differences:
> > - Has 3 clocks compared to 2 on other SoCs.
> > - Has a different set of reset signals
> >
> > Add device tree bindings for renesas,r9a08g046-pcie compatible IPs.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> > .../bindings/pci/renesas,r9a08g045-pcie.yaml | 33
> > ++++++++++++++++++-
> > 1 file changed, 32 insertions(+), 1 deletion(-)
> >
> > diff --git
> > a/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
> > b/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
> > index 09d78bd1a577..911b1976bf53 100644
> > ---
> > a/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yaml
> > +++ b/Documentation/devicetree/bindings/pci/renesas,r9a08g045-pcie.yam
> > +++ l
> > @@ -13,7 +13,7 @@ description: |
> > PCIe host controller found in Renesas RZ/G3S and similar SoCs complies
> > with PCIe Base Specification 4.0 and supports different link speeds
> > depending on the SoC variant:
> > - - Gen2 (5 GT/s): RZ/G3S
> > + - Gen2 (5 GT/s): RZ/G3{L,S}
> > - Gen3 (8 GT/s): RZ/G3E, RZ/V2H(P), RZ/V2N
> >
> > properties:
> > @@ -21,6 +21,7 @@ properties:
> > oneOf:
> > - enum:
> > - renesas,r9a08g045-pcie # RZ/G3S
> > + - renesas,r9a08g046-pcie # RZ/G3L
> > - renesas,r9a09g047-pcie # RZ/G3E
> > - renesas,r9a09g057-pcie # RZ/V2H(P)
> > - items:
> > @@ -87,14 +88,18 @@ properties:
> > interrupt-controller: true
> >
> > clocks:
> > + minItems: 2
> > items:
> > - description: System clock
> > - description: PM control clock or clock for L1 substate
> > handling
> > + - description: PM control clock or clock for L1 substate
> > + handling
>
> PMU? You list both clocks, but is there any different between them?
OK will drop the or part.
>
> >
> > clock-names:
> > + minItems: 2
> > items:
> > - const: aclk
> > - enum: [pm, pmu]
> > + - enum: [pm, pmu]
>
> This should be "const: pmu" in such case.
Agreed.
Cheers,
Biju
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/4] PCI: rzg3s-host: Add support for RZ/G3L SoC
2026-08-25 9:50 ` [PATCH 3/4] PCI: rzg3s-host: Add support for RZ/G3L SoC Biju
@ 2026-09-03 12:53 ` Geert Uytterhoeven
0 siblings, 0 replies; 11+ messages in thread
From: Geert Uytterhoeven @ 2026-09-03 12:53 UTC (permalink / raw)
To: Biju
Cc: Claudiu Beznea, Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Bjorn Helgaas, Magnus Damm, Biju Das,
Rob Herring, linux-pci, linux-renesas-soc, linux-kernel,
Prabhakar Mahadev Lad
On Tue, 25 Aug 2026 at 11:50, Biju <biju.das.au@gmail.com> wrote:
> From: Biju Das <biju.das.jz@bp.renesas.com>
>
> Add SoC-specific data for the RZ/G3L (R9A08G046) PCIe controller and
> register its "renesas,r9a08g046-pcie" compatible string. RZ/G3L reuses
> the RZ/G3E config init/deinit callbacks and power resets, with its own
> L1-allow syscon offset and mask.
>
> Also increase the timeout in rzg3s_pcie_set_max_link_speed() to fix
> the "Failed to set max link speed" message seen on RZ/G3L.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
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] 11+ messages in thread
* Re: [PATCH 4/4] arm64: dts: renesas: r9a08g046: Add PCIe support
2026-08-25 9:50 ` [PATCH 4/4] arm64: dts: renesas: r9a08g046: Add PCIe support Biju
@ 2026-09-03 13:01 ` Geert Uytterhoeven
0 siblings, 0 replies; 11+ messages in thread
From: Geert Uytterhoeven @ 2026-09-03 13:01 UTC (permalink / raw)
To: Biju
Cc: Magnus Damm, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Biju Das, linux-renesas-soc, devicetree, linux-kernel,
Prabhakar Mahadev Lad
On Tue, 25 Aug 2026 at 11:50, Biju <biju.das.au@gmail.com> wrote:
> From: Biju Das <biju.das.jz@bp.renesas.com>
>
> Populate the previously placeholder PCIe node for the RZ/G3L
> (R9A08G046) SoC with interrupts, clocks, resets, interrupt-map, and
> the PCIe root port's vendor/device ID, and enable it on the RZ/G3L
> SMARC board with the required pin control, CLKREQ# GPIO hog, and
> 100 MHz reference clock.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
i.e. will queue in renesas-devel for v7.4, pending acceptance of the
DT bindings.
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] 11+ messages in thread
end of thread, other threads:[~2026-09-03 13:01 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-25 9:50 [PATCH 0/4] Add RZ/G3L PCIe support Biju
2026-08-25 9:50 ` [PATCH 1/4] dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3L SoC Biju
2026-08-31 6:33 ` Krzysztof Kozlowski
2026-09-03 12:47 ` Biju Das
2026-09-03 12:41 ` Geert Uytterhoeven
2026-08-25 9:50 ` [PATCH 2/4] clk: renesas: r9a08g046: Add PCIe clocks and reset Biju
2026-09-03 12:42 ` Geert Uytterhoeven
2026-08-25 9:50 ` [PATCH 3/4] PCI: rzg3s-host: Add support for RZ/G3L SoC Biju
2026-09-03 12:53 ` Geert Uytterhoeven
2026-08-25 9:50 ` [PATCH 4/4] arm64: dts: renesas: r9a08g046: Add PCIe support Biju
2026-09-03 13:01 ` Geert Uytterhoeven
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®