[PATCH 3/3] arm64: dts: renesas: rzt2h-n2h-evk: Enable xSPI nodes
From: Prabhakar
Date: Tue May 26 2026 - 16:41:57 EST
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
Enable the xSPI0 and xSPI1 controllers on the RZ/T2H N2H EVK board.
Configure the xSPI0 controller interface to 1-bit (x1) mode, even though
the connected MX25LW51245 octal flash device supports octal mode. Add a
corresponding inline hardware comment detailing this restriction;
operating in octal mode causes the BootROM to fail loading the first-stage
bootloader following a Watchdog Timer (WDT) reset.
Configure the xSPI1 controller interface connected to the AT25SF128A
flash device for 4-bit (x4) mode to utilize all available data lines.
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
---
.../dts/renesas/rzt2h-n2h-evk-common.dtsi | 139 ++++++++++++++++++
1 file changed, 139 insertions(+)
diff --git a/arch/arm64/boot/dts/renesas/rzt2h-n2h-evk-common.dtsi b/arch/arm64/boot/dts/renesas/rzt2h-n2h-evk-common.dtsi
index f87c2492f414..fff63d08e3a3 100644
--- a/arch/arm64/boot/dts/renesas/rzt2h-n2h-evk-common.dtsi
+++ b/arch/arm64/boot/dts/renesas/rzt2h-n2h-evk-common.dtsi
@@ -5,6 +5,7 @@
* Copyright (C) 2025 Renesas Electronics Corp.
*/
+#include <dt-bindings/clock/renesas,r9a09g077-cpg-mssr.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/net/mscc-phy-vsc8531.h>
@@ -20,6 +21,8 @@ aliases {
mmc0 = &sdhi0;
mmc1 = &sdhi1;
serial0 = &sci0;
+ spi0 = &xspi0;
+ spi1 = &xspi1;
};
chosen {
@@ -331,6 +334,59 @@ ctrl-pins {
<RZT2H_PORT_PINMUX(17, 4, 0x29)>; /* SD1_CD */
};
};
+
+ xspi0_pins: xspi0-group {
+ clk-pins {
+ pinmux = <RZT2H_PORT_PINMUX(5, 1, 0x1c)>, /* XSPI0_CKP */
+ <RZT2H_PORT_PINMUX(5, 2, 0x1c)>; /* XSPI0_CKN */
+ input-schmitt-disable;
+ slew-rate = <1>;
+ drive-strength-microamp = <9000>;
+ };
+
+ data-pins {
+ pinmux = <RZT2H_PORT_PINMUX(5, 6, 0x1c)>, /* XSPI0_IO0 */
+ <RZT2H_PORT_PINMUX(5, 7, 0x1c)>, /* XSPI0_IO1 */
+ <RZT2H_PORT_PINMUX(6, 0, 0x1c)>, /* XSPI0_IO2 */
+ <RZT2H_PORT_PINMUX(6, 1, 0x1c)>, /* XSPI0_IO3 */
+ <RZT2H_PORT_PINMUX(6, 2, 0x1c)>, /* XSPI0_IO4 */
+ <RZT2H_PORT_PINMUX(6, 3, 0x1c)>, /* XSPI0_IO5 */
+ <RZT2H_PORT_PINMUX(6, 4, 0x1c)>, /* XSPI0_IO6 */
+ <RZT2H_PORT_PINMUX(6, 5, 0x1c)>; /* XSPI0_IO7 */
+ input-schmitt-disable;
+ slew-rate = <1>;
+ drive-strength-microamp = <9000>;
+ };
+
+ ctrl-pins {
+ pinmux = <RZT2H_PORT_PINMUX(5, 3, 0x1c)>, /* XSPI0_CS0 */
+ <RZT2H_PORT_PINMUX(6, 6, 0x1c)>, /* XSPI0_RESET0 */
+ <RZT2H_PORT_PINMUX(5, 5, 0x1c)>; /* XSPI0_DS */
+ input-schmitt-disable;
+ slew-rate = <1>;
+ drive-strength-microamp = <9000>;
+ };
+ };
+
+ xspi1_pins: xspi1-group {
+ ctrl-pins {
+ pinmux = <RZT2H_PORT_PINMUX(1, 0, 0x1c)>, /* XSPI1_CKP */
+ <RZT2H_PORT_PINMUX(1, 1, 0x1c)>; /* XSPI1_CS0 */
+ input-schmitt-enable;
+ slew-rate = <1>;
+ drive-strength-microamp = <9000>;
+ };
+
+ data-pins {
+ pinmux = <RZT2H_PORT_PINMUX(1, 4, 0x1c)>, /* XSPI1_IO0 */
+ <RZT2H_PORT_PINMUX(1, 5, 0x1c)>, /* XSPI1_IO1 */
+ <RZT2H_PORT_PINMUX(1, 6, 0x1c)>, /* XSPI1_IO2 */
+ <RZT2H_PORT_PINMUX(1, 7, 0x1c)>; /* XSPI1_IO3 */
+ input-schmitt-enable;
+ slew-rate = <1>;
+ drive-strength-microamp = <9000>;
+ };
+ };
};
&sci0 {
@@ -395,3 +451,86 @@ &wdt2 {
timeout-sec = <60>;
};
+&xspi0 {
+ pinctrl-0 = <&xspi0_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ assigned-clocks = <&cpg CPG_CORE R9A09G077_XSPI_CLK0>;
+ assigned-clock-rates = <50000000>;
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ m25p,fast-read;
+ /*
+ * Configure for 1-bit mode to prevent the BootROM from failing
+ * to load the first-stage bootloader following a watchdog reset.
+ */
+ spi-tx-bus-width = <1>;
+ spi-rx-bus-width = <1>;
+ vcc-supply = <®_3p3v>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "bl2-0";
+ reg = <0x00000000 0x00060000>;
+ read-only;
+ };
+
+ partition@1fb000 {
+ label = "fip-0";
+ reg = <0x00060000 0x007a0000>;
+ read-only;
+ };
+
+ partition@300000 {
+ label = "user-0";
+ reg = <0x800000 0x003800000>;
+ };
+ };
+ };
+};
+
+&xspi1 {
+ pinctrl-0 = <&xspi1_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ assigned-clocks = <&cpg CPG_CORE R9A09G077_XSPI_CLK1>;
+ assigned-clock-rates = <50000000>;
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ m25p,fast-read;
+ spi-tx-bus-width = <4>;
+ spi-rx-bus-width = <4>;
+ vcc-supply = <®_3p3v>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "bl2-1";
+ reg = <0x00000000 0x00060000>;
+ };
+
+ partition@60000 {
+ label = "fip-1";
+ reg = <0x00060000 0x007a0000>;
+ };
+
+ partition@800000 {
+ label = "user-1";
+ reg = <0x800000 0x800000>;
+ };
+ };
+ };
+};
--
2.54.0