lkml.org 
[lkml]   [2018]   [Sep]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[RFC/RFT PATCH v1 5/9] mtd: spi: Provide LUT entry to perform DUAL read
Date
This commit adds LUT sequence to perform DUAL read (as opposite to the
default QUAD for this controller).

Signed-off-by: Lukasz Majewski <lukma@denx.de>
---
drivers/mtd/spi-nor/fsl-quadspi.c | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c
index 4f0c78ba6fcb..0c381cdfb39f 100644
--- a/drivers/mtd/spi-nor/fsl-quadspi.c
+++ b/drivers/mtd/spi-nor/fsl-quadspi.c
@@ -207,6 +207,7 @@
#define SEQID_RDCR 9
#define SEQID_EN4B 10
#define SEQID_BRWR 11
+#define SEQID_DUAL_READ 12

#define QUADSPI_MIN_IOMAP SZ_4M

@@ -482,6 +483,15 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q)
qspi_writel(q, LUT0(CMD, PAD1, SPINOR_OP_BRWR),
base + QUADSPI_LUT(lut_base));

+ /* Dual Read */
+ lut_base = SEQID_DUAL_READ * 4;
+
+ qspi_writel(q, LUT0(CMD, PAD1, SPINOR_OP_READ_1_1_2) |
+ LUT1(ADDR, PAD1, addrlen), base + QUADSPI_LUT(lut_base));
+ qspi_writel(q, LUT0(DUMMY, PAD1, read_dm) |
+ LUT1(FSL_READ, PAD2, rxfifo),
+ base + QUADSPI_LUT(lut_base + 1));
+
fsl_qspi_lock_lut(q);
}

@@ -513,6 +523,8 @@ 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_READ_1_1_2:
+ return SEQID_DUAL_READ;
default:
if (cmd == q->nor[0].erase_opcode)
return SEQID_SE;
--
2.11.0
\
 
 \ /
  Last update: 2018-09-27 00:08    [W:0.123 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site