From: Alice Guo <[email protected]>

With this patch, XSPI1 are functional on the i.MX943 EVK board.

Signed-off-by: Alice Guo <[email protected]>
---
 arch/arm/dts/imx943-evk-u-boot.dtsi | 34 ++++++++++++++++++++++++++++++++++
 arch/arm/dts/imx943-u-boot.dtsi     | 16 ++++++++++++++++
 configs/imx943_evk_defconfig        |  9 +++++++++
 3 files changed, 59 insertions(+)

diff --git a/arch/arm/dts/imx943-evk-u-boot.dtsi 
b/arch/arm/dts/imx943-evk-u-boot.dtsi
index 528b3b02a3f..247a7ed6838 100644
--- a/arch/arm/dts/imx943-evk-u-boot.dtsi
+++ b/arch/arm/dts/imx943-evk-u-boot.dtsi
@@ -157,6 +157,24 @@
        status = "disabled";
 };
 
+&xspi1 {
+       bootph-pre-ram;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_xspi1>;
+       status = "okay";
+
+       mt35xu512aba: flash@0 {
+               bootph-pre-ram;
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <200000000>;
+               spi-tx-bus-width = <8>;
+               spi-rx-bus-width = <8>;
+       };
+};
+
 &scmi_iomuxc {
        pinctrl_emdio: emdiogrp {
                fsl,pins = <
@@ -205,6 +223,22 @@
                        IMX94_PAD_GPIO_IO17__LPI2C3_SCL         0x40000b9e
                >;
        };
+
+       pinctrl_xspi1: xspi1grp {
+               fsl,pins = <
+                       IMX94_PAD_XSPI1_SCLK__XSPI1_A_SCLK      0x3fe
+                       IMX94_PAD_XSPI1_SS0_B__XSPI1_A_SS0_B    0x3fe
+                       IMX94_PAD_XSPI1_DATA0__XSPI1_A_DATA0    0x3fe
+                       IMX94_PAD_XSPI1_DATA1__XSPI1_A_DATA1    0x3fe
+                       IMX94_PAD_XSPI1_DATA2__XSPI1_A_DATA2    0x3fe
+                       IMX94_PAD_XSPI1_DATA3__XSPI1_A_DATA3    0x3fe
+                       IMX94_PAD_XSPI1_DATA4__XSPI1_A_DATA4    0x3fe
+                       IMX94_PAD_XSPI1_DATA5__XSPI1_A_DATA5    0x3fe
+                       IMX94_PAD_XSPI1_DATA6__XSPI1_A_DATA6    0x3fe
+                       IMX94_PAD_XSPI1_DATA7__XSPI1_A_DATA7    0x3fe
+                       IMX94_PAD_XSPI1_DQS__XSPI1_A_DQS        0x3fe
+               >;
+       };
 };
 
 &pinctrl_reg_usdhc2_vmmc {
diff --git a/arch/arm/dts/imx943-u-boot.dtsi b/arch/arm/dts/imx943-u-boot.dtsi
index 2b93ba9a38b..3457442a3b0 100644
--- a/arch/arm/dts/imx943-u-boot.dtsi
+++ b/arch/arm/dts/imx943-u-boot.dtsi
@@ -141,6 +141,22 @@
 
 &aips3 {
        bootph-all;
+
+       xspi1: spi@42b90000 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "nxp,imx94-xspi";
+               reg = <0x42b90000 0x50000>, <0x28000000 0x08000000>;
+               reg-names = "xspi_base", "xspi_mmap";
+               interrupts = <GIC_SPI 390 IRQ_TYPE_LEVEL_HIGH>,       // EENV0
+                            <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>,       // EENV1
+                            <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>,       // EENV2
+                            <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>,       // EENV3
+                            <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>;       // EENV4
+               clocks = <&scmi_clk IMX94_CLK_XSPI1>;
+               clock-names = "xspi";
+               status = "disabled";
+       };
 };
 
 &clk_ext1 {
diff --git a/configs/imx943_evk_defconfig b/configs/imx943_evk_defconfig
index 0371dbe28a9..04ac97c1b49 100644
--- a/configs/imx943_evk_defconfig
+++ b/configs/imx943_evk_defconfig
@@ -108,6 +108,12 @@ CONFIG_I2C_MUX_PCA954x=y
 CONFIG_IMX_MU_MBOX=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_USDHC=y
+CONFIG_MTD=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH_SOFT_RESET=y
+CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_MT35XU=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_REALTEK=y
 CONFIG_DM_MDIO=y
@@ -128,6 +134,9 @@ CONFIG_DM_REGULATOR_GPIO=y
 CONFIG_DM_RTC=y
 CONFIG_DM_SERIAL=y
 CONFIG_FSL_LPUART=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_NXP_XSPI=y
 CONFIG_USB=y
 CONFIG_SPL_DM_USB_GADGET=y
 CONFIG_USB_XHCI_HCD=y

-- 
2.43.0

Reply via email to