Message ID | 20240905094338.1986871-4-haibo.chen@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fix the flexspi error on imx8ulp | expand |
On Thu, Sep 05, 2024 at 05:43:37PM +0800, haibo.chen@nxp.com wrote: > From: Haibo Chen <haibo.chen@nxp.com> > > 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> > --- > drivers/spi/spi-nxp-fspi.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c > index f42c14d80289..69e427b1903b 100644 > --- a/drivers/spi/spi-nxp-fspi.c > +++ b/drivers/spi/spi-nxp-fspi.c > @@ -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); > -- > 2.34.1 >
diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index f42c14d80289..69e427b1903b 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -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);