* [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
* [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
* 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
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