Due to a errata on i.MX8DXL flexspi, we can't use AHB read, only can
read data from FIFO.
Add the compatible string for 8DXL and use a flag for the IPS read.

Signed-off-by: Ye Li <[email protected]>
---
 drivers/spi/nxp_fspi.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/spi/nxp_fspi.c b/drivers/spi/nxp_fspi.c
index 2a0c1959f387..97751fac025b 100644
--- a/drivers/spi/nxp_fspi.c
+++ b/drivers/spi/nxp_fspi.c
@@ -346,6 +346,15 @@ static const struct nxp_fspi_devtype_data imx8qxp_data = {
        .little_endian = true,  /* little-endian    */
 };
 
+static const struct nxp_fspi_devtype_data imx8dxl_data = {
+       .rxfifo = SZ_512,       /* (64  * 64 bits)  */
+       .txfifo = SZ_1K,        /* (128 * 64 bits)  */
+       .ahb_buf_size = SZ_2K,  /* (256 * 64 bits)  */
+       .quirks = FSPI_QUIRK_USE_IP_ONLY,
+       .lut_num = 32,
+       .little_endian = true,  /* little-endian    */
+};
+
 struct nxp_fspi {
        struct udevice *dev;
        void __iomem *iobase;
@@ -1091,6 +1100,7 @@ static const struct udevice_id nxp_fspi_ids[] = {
        { .compatible = "nxp,imx8mm-fspi", .data = (ulong)&imx8mm_data, },
        { .compatible = "nxp,imx8mp-fspi", .data = (ulong)&imx8mm_data, },
        { .compatible = "nxp,imx8qxp-fspi", .data = (ulong)&imx8qxp_data, },
+       { .compatible = "nxp,imx8dxl-fspi", .data = (ulong)&imx8dxl_data, },
        { .compatible = "nxp,imxrt1170-fspi", .data = (ulong)&imxrt1170_data, },
        { }
 };
-- 
2.7.4

Reply via email to