MLK-18396-2: mtd: fsl-flexspi: enable FSPI on i.MX8MM
authorHan Xu <han.xu@nxp.com>
Fri, 19 Apr 2019 16:53:24 +0000 (11:53 -0500)
committerHan Xu <han.xu@nxp.com>
Fri, 19 Apr 2019 18:45:11 +0000 (13:45 -0500)
Enable FlexSPI driver on i.MX8MM EVK.

Signed-off-by: Han Xu <han.xu@nxp.com>
drivers/mtd/spi-nor/fsl-flexspi.c
drivers/mtd/spi-nor/spi-nor.c

index aac29f4..0c35a63 100644 (file)
 enum fsl_flexspi_devtype {
        FSL_FLEXSPI_IMX8QM,
        FSL_FLEXSPI_IMX8QXP,
+       FSL_FLEXSPI_IMX8MM,
 };
 
 struct fsl_flexspi_devtype_data {
@@ -425,8 +426,7 @@ 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,
@@ -434,13 +434,20 @@ static struct fsl_flexspi_devtype_data imx8qm_data = {
 
 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];
@@ -1154,6 +1161,7 @@ static void fsl_flexspi_unprep(struct spi_nor *nor, enum spi_nor_ops ops)
 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);
index 30ccaf1..922ffbf 100644 (file)
@@ -1123,6 +1123,7 @@ static const struct flash_info spi_nor_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) },