| From: |
| John Madieu <john.madieu.xa-AT-bp.renesas.com> |
| To: |
| claudiu.beznea.uj-AT-bp.renesas.com, lpieralisi-AT-kernel.org, kwilczynski-AT-kernel.org, mani-AT-kernel.org, geert+renesas-AT-glider.be, krzk+dt-AT-kernel.org |
| Subject: |
| [PATCH v2 00/15] PCI: renesas: Add RZ/G3E PCIe controller support |
| Date: |
| Fri, 23 Jan 2026 15:00:16 +0100 |
| Message-ID: |
| <20260123140031.94752-1-john.madieu.xa@bp.renesas.com> |
| Cc: |
| robh-AT-kernel.org, bhelgaas-AT-google.com, conor+dt-AT-kernel.org, magnus.damm-AT-gmail.com, biju.das.jz-AT-bp.renesas.com, linux-pci-AT-vger.kernel.org, linux-renesas-soc-AT-vger.kernel.org, devicetree-AT-vger.kernel.org, linux-clk-AT-vger.kernel.org, john.madieu-AT-gmail.com, John Madieu <john.madieu.xa-AT-bp.renesas.com> |
| Archive-link: |
| Article |
The Renesas RZ/G3E SoC features a PCIe controller that shares similarities with
the existing RZ/G3S PCIe controller, but with several key differences.
This series adds support for the RZ/G3E PCIe controller by extending the existing
RZ/G3S driver and device tree bindings.
Key differences between RZ/G3E and RZ/G3S PCIe controllers:
Link Speed Support:
- RZ/G3E: Supports PCIe Gen3 (8.0 GT/s) alongside Gen2 (5.0 GT/s)
- RZ/G3S: Supports PCIe Gen2 (5.0 GT/s) only
Reset Control:
- RZ/G3E: Uses register-based reset control mechanism
- RZ/G3S: Uses exclusively external reset control signals
Inbound Window Configuration:
- RZ/G3E: Requires precise power-of-2 window coverage with strict address
alignment constraints. Non-power-of-2 memory regions must be split into
multiple windows to avoid over-mapping, ensuring proper hardware address
decoding for DMA operations.
- RZ/G3S: Uses a simpler approach that rounds up to the next power-of-2,
creating single larger windows. The hardware tolerates over-mapped regions.
Class/Revision IDs:
- RZ/G3E: Requires explicit setting of class/revision values
- RZ/G3S: Has default values in hardware
Clock Naming:
- RZ/G3E: Uses "clkpmu" clock for power management
- RZ/G3S: Uses "clkl1pm" PM control clock while CLKREQ_B is deasserting
Phy Settings:
- RZ/G3E: Does not need PHY settings as it works with default hw values
- RZ/G3S: Requires explicit PHY settings
This series extends the existing driver to detect the SoC type from the device
tree compatible string and configure the controller appropriately. The updates
are minimal and focused on the hardware-specific differences while keeping the
common code paths unified.
Changes:
v2:
- Address Bjorn typo comments
- Address Claidiu's comment on stylish
- Use single inbound-window-configuration function for both G3E/G3S
- Refactor goto laballing as per Claudiu's comments
- Update bindings and reused G3S's interrupt ordering
* This involves reordering interrupts in dt
- Remove Board-specific PCIe dma-range.
John Madieu (15):
PCI: rzg3s-host: Fix reset handling in probe error path
PCI: renesas: rzg3s: Rework inbound window algorithm for multi-SoC
support
clk: renesas: rzv2h-cpg: Add support for init_{off|asserted}
clocks/resets
clk: renesas: r9a09g047: Add PCIe clocks and reset
dt-bindings: PCI: renesas,r9a08g045s33-pcie: Fix typo in
interrupt-names
dt-bindings: PCI: renesas,r9a08g045s33-pcie: Document RZ/G3E SoC
PCI: rzg3s-host: Make SYSC register offsets SoC-specific
PCI: rzg3s-host: Make configuration reset lines optional
PCI: rzg3s-host: Add SoC-specific configuration and initialization
callbacks
PCI: rzg3s-host: Explicitly set class code for RZ/G3E compatibility
PCI: rzg3s-host: Add PCIe Gen3 (8.0 GT/s) link speed support
PCI: rzg3s-host: Add support for RZ/G3E PCIe controller
arm64: dts: renesas: r9a09g047: Add PCIe node
arm64: dts: renesas: r9a09g047e57-smarc-som: Add PCIe reference clock
arm64: dts: renesas: r9a09g047e57-smarc: Enable PCIe
.../bindings/pci/renesas,r9a08g045-pcie.yaml | 127 ++++--
arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 69 ++++
.../boot/dts/renesas/r9a09g047e57-smarc.dts | 17 +
.../boot/dts/renesas/rzg3e-smarc-som.dtsi | 11 +
drivers/clk/renesas/r9a09g047-cpg.c | 5 +
drivers/clk/renesas/rzv2h-cpg.c | 27 +-
drivers/clk/renesas/rzv2h-cpg.h | 34 +-
drivers/pci/controller/pcie-rzg3s-host.c | 387 ++++++++++++++----
8 files changed, 554 insertions(+), 123 deletions(-)
--
2.25.1