enum fsl_flexspi_devtype {
FSL_FLEXSPI_IMX8QM,
FSL_FLEXSPI_IMX8QXP,
+ FSL_FLEXSPI_IMX8MM,
};
struct fsl_flexspi_devtype_data {
static struct fsl_flexspi_devtype_data imx8qm_data = {
.devtype = FSL_FLEXSPI_IMX8QM,
- /* .rxfifo = 1024, */
- .rxfifo = 128,
+ .rxfifo = 1024,
.txfifo = 1024,
.ahb_buf_size = 2048,
.driver_data = 0,
static struct fsl_flexspi_devtype_data imx8qxp_data = {
.devtype = FSL_FLEXSPI_IMX8QXP,
- /* .rxfifo = 1024, */
- .rxfifo = 128,
+ .rxfifo = 1024,
.txfifo = 1024,
.ahb_buf_size = 2048,
.driver_data = 0,
};
+static struct fsl_flexspi_devtype_data imx8mm_data = {
+ .devtype = FSL_FLEXSPI_IMX8MM,
+ .rxfifo = 1024,
+ .txfifo = 1024,
+ .ahb_buf_size = 2048,
+ .driver_data = FLEXSPI_QUIRK_QUAD_ONLY,
+};
+
#define FSL_FLEXSPI_MAX_CHIP 4
struct fsl_flexspi {
struct mtd_info mtd[FSL_FLEXSPI_MAX_CHIP];
static const struct of_device_id fsl_flexspi_dt_ids[] = {
{ .compatible = "fsl,imx8qm-flexspi", .data = (void *)&imx8qm_data, },
{ .compatible = "fsl,imx8qxp-flexspi", .data = (void *)&imx8qxp_data, },
+ { .compatible = "fsl,imx8mm-flexspi", .data = (void *)&imx8mm_data, },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, fsl_flexspi_dt_ids);
{ "n25q064", INFO(0x20ba17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) },
{ "n25q064a", INFO(0x20bb17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) },
{ "n25q128a11", INFO(0x20bb18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ) },
+ { "mt25qu256", INFO(0x20bb19, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
{ "n25q128a13", INFO(0x20ba18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ) },
{ "n25q256a", INFO(0x20ba19, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
{ "n25q256ax1", INFO(0x20bb19, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_QUAD_READ) },