* [PATCH v3 0/2] Add xSPI support for RZ/T2H and RZ/N2H SoCs
@ 2026-05-05 11:24 Prabhakar
2026-05-05 11:24 ` [PATCH v3 1/2] dt-bindings: memory: renesas,rzg3e-xspi: Add RZ/T2H and RZ/N2H support Prabhakar
2026-05-05 11:24 ` [PATCH v3 2/2] memory: renesas-rpc-if: Fix duplicate device name on multi-instance platforms Prabhakar
0 siblings, 2 replies; 4+ messages in thread
From: Prabhakar @ 2026-05-05 11:24 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley,
Geert Uytterhoeven, Magnus Damm, Wolfram Sang, Biju Das
Cc: linux-kernel, devicetree, linux-renesas-soc, Prabhakar,
Fabrizio Castro, Lad Prabhakar
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Hi All,
Add support for the xSPI (Extended SPI) Interface on Renesas RZ/T2H and
RZ/N2H SoCs. The xSPI IP on these SoCs is identical to that found on the
RZ/G3E SoC.
v2->v3:
- Used RZ/G3E comptiable as a fallback compatible for
RZ/T2H and RZ/N2H SoCs since the xSPI IP is identical.
- Updated commit message to reflect that the xSPI IP is
identical between RZ/G3E, RZ/T2H, and RZ/N2H SoCs.
- Dropped RB tag from Rob for patch#1.
- Dropped driver changes for RZ/T2H and RZ/N2H SoCs since
the xSPI IP is compatible to RZ/G3E.
v1->v2:
- Add RB tag from Rob for the dt-bindings patch.
- Add RB tag from Wolfram for the rpc-if duplicate device name patch.
- Added xspi_info_r9a09g077 for RZ/T2H with type XSPI_RZ_T2H instead
of reusing xspi_info_r9a09g047 with type XSPI_RZ_G3E, to allow for
better differentiation in the future if needed.
v2: https://lore.kernel.org/all/20260327174245.3947213-1-prabhakar.mahadev-lad.rj@bp.renesas.com/
v1: https://lore.kernel.org/all/20260310212927.3372410-1-prabhakar.mahadev-lad.rj@bp.renesas.com/
Note, patches apply on to of next-20260326
Cheers,
Prabhakar
Lad Prabhakar (2):
dt-bindings: memory: renesas,rzg3e-xspi: Add RZ/T2H and RZ/N2H support
memory: renesas-rpc-if: Fix duplicate device name on multi-instance
platforms
.../renesas,rzg3e-xspi.yaml | 56 +++++++++++++++----
drivers/memory/renesas-rpc-if.c | 2 +-
2 files changed, 47 insertions(+), 11 deletions(-)
--
2.54.0
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v3 1/2] dt-bindings: memory: renesas,rzg3e-xspi: Add RZ/T2H and RZ/N2H support 2026-05-05 11:24 [PATCH v3 0/2] Add xSPI support for RZ/T2H and RZ/N2H SoCs Prabhakar @ 2026-05-05 11:24 ` Prabhakar 2026-05-13 17:42 ` Rob Herring 2026-05-05 11:24 ` [PATCH v3 2/2] memory: renesas-rpc-if: Fix duplicate device name on multi-instance platforms Prabhakar 1 sibling, 1 reply; 4+ messages in thread From: Prabhakar @ 2026-05-05 11:24 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Wolfram Sang, Biju Das Cc: linux-kernel, devicetree, linux-renesas-soc, Prabhakar, Fabrizio Castro, Lad Prabhakar From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Document xSPI controller found on the Renesas RZ/T2H and RZ/N2H SoCs. The xSPI IP on these SoCs is identical to that found on the RZ/G3E SoC. The RZ/G3E HW manual (Rev.1.15) references bridge channel 1 and its bits, however the hardware actually supports only a single bridge channel (channel 0), matching the RZ/T2H design. The references to channel 1 and its configuration bits will be corrected in a future revision of the HW manual. Update clock/reset constraints to handle the SoC differences. Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> --- v2->v3: - Used RZ/G3E comptiable as a fallback compatible for RZ/T2H and RZ/N2H SoCs since the xSPI IP is identical. - Updated commit message to reflect that the xSPI IP is identical between RZ/G3E, RZ/T2H, and RZ/N2H SoCs. - Dropped RB tag from Rob due to above changes. v1->v2: - Add RB tag from Rob for the dt-bindings patch. --- .../renesas,rzg3e-xspi.yaml | 56 +++++++++++++++---- 1 file changed, 46 insertions(+), 10 deletions(-) diff --git a/Documentation/devicetree/bindings/memory-controllers/renesas,rzg3e-xspi.yaml b/Documentation/devicetree/bindings/memory-controllers/renesas,rzg3e-xspi.yaml index 7a84f5bb7284..e2633476bd54 100644 --- a/Documentation/devicetree/bindings/memory-controllers/renesas,rzg3e-xspi.yaml +++ b/Documentation/devicetree/bindings/memory-controllers/renesas,rzg3e-xspi.yaml @@ -30,6 +30,8 @@ properties: - enum: - renesas,r9a09g056-xspi # RZ/V2N - renesas,r9a09g057-xspi # RZ/V2H(P) + - renesas,r9a09g077-xspi # RZ/T2H + - renesas,r9a09g087-xspi # RZ/N2H - const: renesas,r9a09g047-xspi reg: @@ -53,28 +55,38 @@ properties: - const: err_pulse clocks: - items: - - description: AHB clock - - description: AXI clock - - description: SPI clock - - description: Double speed SPI clock + oneOf: + - items: + - description: AHB clock + - description: AXI clock + - description: SPI clock + - description: Double speed SPI clock + - items: + - description: AHB clock + - description: SPI clock clock-names: - items: - - const: ahb - - const: axi - - const: spi - - const: spix2 + oneOf: + - items: + - const: ahb + - const: axi + - const: spi + - const: spix2 + - items: + - const: ahb + - const: spi power-domains: maxItems: 1 resets: + minItems: 1 items: - description: Hardware reset - description: AXI reset reset-names: + minItems: 1 items: - const: hresetn - const: aresetn @@ -109,6 +121,30 @@ required: - '#address-cells' - '#size-cells' +if: + properties: + compatible: + contains: + enum: + - renesas,r9a09g077-xspi + - renesas,r9a09g087-xspi +then: + properties: + clocks: + maxItems: 2 + clock-names: + maxItems: 2 +else: + properties: + clocks: + minItems: 4 + clock-names: + minItems: 4 + resets: + minItems: 2 + reset-names: + minItems: 2 + unevaluatedProperties: false examples: -- 2.54.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3 1/2] dt-bindings: memory: renesas,rzg3e-xspi: Add RZ/T2H and RZ/N2H support 2026-05-05 11:24 ` [PATCH v3 1/2] dt-bindings: memory: renesas,rzg3e-xspi: Add RZ/T2H and RZ/N2H support Prabhakar @ 2026-05-13 17:42 ` Rob Herring 0 siblings, 0 replies; 4+ messages in thread From: Rob Herring @ 2026-05-13 17:42 UTC (permalink / raw) To: Prabhakar Cc: Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Wolfram Sang, Biju Das, linux-kernel, devicetree, linux-renesas-soc, Fabrizio Castro, Lad Prabhakar On Tue, May 05, 2026 at 12:24:04PM +0100, Prabhakar wrote: > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > > Document xSPI controller found on the Renesas RZ/T2H and RZ/N2H SoCs. > The xSPI IP on these SoCs is identical to that found on the RZ/G3E SoC. > > The RZ/G3E HW manual (Rev.1.15) references bridge channel 1 and its > bits, however the hardware actually supports only a single bridge > channel (channel 0), matching the RZ/T2H design. The references to > channel 1 and its configuration bits will be corrected in a future > revision of the HW manual. > > Update clock/reset constraints to handle the SoC differences. > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> > --- > v2->v3: > - Used RZ/G3E comptiable as a fallback compatible for > RZ/T2H and RZ/N2H SoCs since the xSPI IP is identical. > - Updated commit message to reflect that the xSPI IP is > identical between RZ/G3E, RZ/T2H, and RZ/N2H SoCs. > - Dropped RB tag from Rob due to above changes. > > v1->v2: > - Add RB tag from Rob for the dt-bindings patch. > --- > .../renesas,rzg3e-xspi.yaml | 56 +++++++++++++++---- > 1 file changed, 46 insertions(+), 10 deletions(-) > > diff --git a/Documentation/devicetree/bindings/memory-controllers/renesas,rzg3e-xspi.yaml b/Documentation/devicetree/bindings/memory-controllers/renesas,rzg3e-xspi.yaml > index 7a84f5bb7284..e2633476bd54 100644 > --- a/Documentation/devicetree/bindings/memory-controllers/renesas,rzg3e-xspi.yaml > +++ b/Documentation/devicetree/bindings/memory-controllers/renesas,rzg3e-xspi.yaml > @@ -30,6 +30,8 @@ properties: > - enum: > - renesas,r9a09g056-xspi # RZ/V2N > - renesas,r9a09g057-xspi # RZ/V2H(P) > + - renesas,r9a09g077-xspi # RZ/T2H > + - renesas,r9a09g087-xspi # RZ/N2H > - const: renesas,r9a09g047-xspi > > reg: > @@ -53,28 +55,38 @@ properties: > - const: err_pulse > > clocks: > - items: > - - description: AHB clock > - - description: AXI clock > - - description: SPI clock > - - description: Double speed SPI clock > + oneOf: > + - items: > + - description: AHB clock > + - description: AXI clock > + - description: SPI clock > + - description: Double speed SPI clock > + - items: > + - description: AHB clock > + - description: SPI clock > > clock-names: > - items: > - - const: ahb > - - const: axi > - - const: spi > - - const: spix2 > + oneOf: > + - items: > + - const: ahb > + - const: axi > + - const: spi > + - const: spix2 > + - items: > + - const: ahb > + - const: spi > > power-domains: > maxItems: 1 > > resets: > + minItems: 1 > items: > - description: Hardware reset > - description: AXI reset > > reset-names: > + minItems: 1 > items: > - const: hresetn > - const: aresetn > @@ -109,6 +121,30 @@ required: > - '#address-cells' > - '#size-cells' > > +if: > + properties: > + compatible: > + contains: > + enum: > + - renesas,r9a09g077-xspi > + - renesas,r9a09g087-xspi > +then: > + properties: > + clocks: > + maxItems: 2 > + clock-names: > + maxItems: 2 What about resets?: resets: maxItems: 1 > +else: > + properties: > + clocks: > + minItems: 4 > + clock-names: > + minItems: 4 > + resets: > + minItems: 2 > + reset-names: > + minItems: 2 > + > unevaluatedProperties: false > > examples: > -- > 2.54.0 > > ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 2/2] memory: renesas-rpc-if: Fix duplicate device name on multi-instance platforms 2026-05-05 11:24 [PATCH v3 0/2] Add xSPI support for RZ/T2H and RZ/N2H SoCs Prabhakar 2026-05-05 11:24 ` [PATCH v3 1/2] dt-bindings: memory: renesas,rzg3e-xspi: Add RZ/T2H and RZ/N2H support Prabhakar @ 2026-05-05 11:24 ` Prabhakar 1 sibling, 0 replies; 4+ messages in thread From: Prabhakar @ 2026-05-05 11:24 UTC (permalink / raw) To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Wolfram Sang, Biju Das Cc: linux-kernel, devicetree, linux-renesas-soc, Prabhakar, Fabrizio Castro, Lad Prabhakar From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> On platforms with multiple xSPI instances, the driver fails to probe additional instances due to duplicate sysfs entries: [ 86.878242] sysfs: cannot create duplicate filename '/bus/platform/devices/rpc-if-spi' This occurs because platform_device_alloc() uses pdev->id for the device ID, which may be PLATFORM_DEVID_NONE (-1) for multiple instances, causing all instances to attempt registration with the same name. Fix this by using PLATFORM_DEVID_AUTO instead, which automatically assigns unique IDs to each device instance, allowing multiple xSPI controllers to coexist without naming conflicts. Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com> --- v2->v3: - No change v1->v2: - Add RB tag from Wolfram. --- drivers/memory/renesas-rpc-if.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/memory/renesas-rpc-if.c b/drivers/memory/renesas-rpc-if.c index 0fb568456164..3755956ae906 100644 --- a/drivers/memory/renesas-rpc-if.c +++ b/drivers/memory/renesas-rpc-if.c @@ -1034,7 +1034,7 @@ static int rpcif_probe(struct platform_device *pdev) return dev_err_probe(dev, PTR_ERR(rpc->spi_clk), "cannot get enabled spi clk\n"); - vdev = platform_device_alloc(name, pdev->id); + vdev = platform_device_alloc(name, PLATFORM_DEVID_AUTO); if (!vdev) return -ENOMEM; vdev->dev.parent = dev; -- 2.54.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-05-13 17:42 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-05 11:24 [PATCH v3 0/2] Add xSPI support for RZ/T2H and RZ/N2H SoCs Prabhakar 2026-05-05 11:24 ` [PATCH v3 1/2] dt-bindings: memory: renesas,rzg3e-xspi: Add RZ/T2H and RZ/N2H support Prabhakar 2026-05-13 17:42 ` Rob Herring 2026-05-05 11:24 ` [PATCH v3 2/2] memory: renesas-rpc-if: Fix duplicate device name on multi-instance platforms Prabhakar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox