MLK-11940: add two more commands support for qspi
authorHan Xu <b45815@freescale.com>
Mon, 23 Nov 2015 15:45:19 +0000 (09:45 -0600)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:49:26 +0000 (14:49 -0500)
add two more commands support for qspi on kernel 4.1, read EVCR and
write EVCR.

Signed-off-by: Han Xu <b45815@freescale.com>
drivers/mtd/spi-nor/fsl-quadspi.c

index 54f39e3..d80fdb2 100644 (file)
 #define SEQID_RDCR             9
 #define SEQID_EN4B             10
 #define SEQID_BRWR             11
+#define SEQID_RD_EVCR          12
+#define SEQID_WD_EVCR          13
 
 #define QUADSPI_MIN_IOMAP SZ_4M
 
@@ -496,6 +498,13 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q)
        qspi_writel(q, LUT0(CMD, PAD1, SPINOR_OP_BRWR),
                        base + QUADSPI_LUT(lut_base));
 
+       /* Read EVCR register */
+       lut_base = SEQID_RD_EVCR * 4;
+       writel(LUT0(CMD, PAD1, SPINOR_OP_RD_EVCR), base + QUADSPI_LUT(lut_base));
+
+       /* Write EVCR register */
+       lut_base = SEQID_WD_EVCR * 4;
+       writel(LUT0(CMD, PAD1, SPINOR_OP_WD_EVCR), base + QUADSPI_LUT(lut_base));
        fsl_qspi_lock_lut(q);
 }
 
@@ -532,6 +541,10 @@ static int fsl_qspi_get_seqid(struct fsl_qspi *q, u8 cmd)
                return SEQID_EN4B;
        case SPINOR_OP_BRWR:
                return SEQID_BRWR;
+       case SPINOR_OP_RD_EVCR:
+               return SEQID_RD_EVCR;
+       case SPINOR_OP_WD_EVCR:
+               return SEQID_WD_EVCR;
        default:
                if (cmd == q->nor[0].erase_opcode)
                        return SEQID_SE;