spi: fspi: add support for imx8ulp
authorHaibo Chen <haibo.chen@nxp.com>
Thu, 5 Sep 2024 09:43:37 +0000 (17:43 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 5 Sep 2024 15:07:21 +0000 (16:07 +0100)
The flexspi on imx8ulp only has 16 LUTs, different with others which
have up to 32 LUTs.

Add a separate compatible string and nxp_fspi_devtype_data to support
flexspi on imx8ulp.

Fixes: ef89fd56bdfc ("arm64: dts: imx8ulp: add flexspi node")
Cc: stable@kernel.org
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20240905094338.1986871-4-haibo.chen@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-nxp-fspi.c

index f42c14d80289c85ace31815bc5ee5cfaba4037d3..69e427b1903b89e25eaffe4951f5d85c877f7cdb 100644 (file)
@@ -371,6 +371,15 @@ static struct nxp_fspi_devtype_data imx8dxl_data = {
        .little_endian = true,  /* little-endian    */
 };
 
+static struct nxp_fspi_devtype_data imx8ulp_data = {
+       .rxfifo = SZ_512,       /* (64  * 64 bits)  */
+       .txfifo = SZ_1K,        /* (128 * 64 bits)  */
+       .ahb_buf_size = SZ_2K,  /* (256 * 64 bits)  */
+       .quirks = 0,
+       .lut_num = 16,
+       .little_endian = true,  /* little-endian    */
+};
+
 struct nxp_fspi {
        void __iomem *iobase;
        void __iomem *ahb_addr;
@@ -1295,6 +1304,7 @@ static const struct of_device_id nxp_fspi_dt_ids[] = {
        { .compatible = "nxp,imx8mp-fspi", .data = (void *)&imx8mm_data, },
        { .compatible = "nxp,imx8qxp-fspi", .data = (void *)&imx8qxp_data, },
        { .compatible = "nxp,imx8dxl-fspi", .data = (void *)&imx8dxl_data, },
+       { .compatible = "nxp,imx8ulp-fspi", .data = (void *)&imx8ulp_data, },
        { /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, nxp_fspi_dt_ids);