mtd: spinand: Use more specific naming for the (single) read from cache ops
authorMiquel Raynal <miquel.raynal@bootlin.com>
Thu, 3 Apr 2025 09:19:17 +0000 (11:19 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 29 Apr 2025 09:05:34 +0000 (11:05 +0200)
SPI operations have been initially described through macros implicitly
implying the use of a single SPI SDR bus. Macros for supporting dual and
quad I/O transfers have been added on top, generally inspired by vendor
naming, followed by DTR operations. Soon we might see octal
and even octal DTR operations as well (including the opcode byte).

Let's clarify what the macro really mean by describing the expected bus
topology in the (single) read from cache macro names.

Acked-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
13 files changed:
drivers/mtd/nand/spi/alliancememory.c
drivers/mtd/nand/spi/ato.c
drivers/mtd/nand/spi/esmt.c
drivers/mtd/nand/spi/foresee.c
drivers/mtd/nand/spi/gigadevice.c
drivers/mtd/nand/spi/macronix.c
drivers/mtd/nand/spi/micron.c
drivers/mtd/nand/spi/paragon.c
drivers/mtd/nand/spi/skyhigh.c
drivers/mtd/nand/spi/toshiba.c
drivers/mtd/nand/spi/winbond.c
drivers/mtd/nand/spi/xtx.c
include/linux/mtd/spinand.h

index 6046c73..723c740 100644 (file)
@@ -21,8 +21,8 @@ static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_variants,
                           SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index bb52989..9026a14 100644 (file)
@@ -15,8 +15,8 @@
 
 static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index 8e73fa7..cc82c76 100644 (file)
@@ -20,8 +20,8 @@
 static SPINAND_OP_VARIANTS(read_cache_variants,
                           SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                           SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-                          SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-                          SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+                          SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+                          SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_variants,
                           SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index ecd5f6b..8a9725e 100644 (file)
@@ -14,8 +14,8 @@
 static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index 73a4832..76856f1 100644 (file)
@@ -28,32 +28,32 @@ static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(read_cache_variants_f,
                SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP_3A(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP_3A(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP_3A(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP_3A(0, 0, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_3A_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_3A_1S_1S_1S_OP(0, 0, NULL, 0));
 
 static SPINAND_OP_VARIANTS(read_cache_variants_1gq5,
                SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(read_cache_variants_2gq5,
                SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 4, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 2, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index 9e04068..5feb65c 100644 (file)
@@ -30,8 +30,8 @@ struct macronix_priv {
 static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index 8e03bd9..2ad4cff 100644 (file)
@@ -39,8 +39,8 @@ static SPINAND_OP_VARIANTS(quadio_read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(x4_write_cache_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
@@ -54,8 +54,8 @@ static SPINAND_OP_VARIANTS(x4_update_cache_variants,
 static SPINAND_OP_VARIANTS(x4_read_cache_variants,
                           SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                           SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-                          SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-                          SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+                          SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+                          SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(x1_write_cache_variants,
                           SPINAND_PROG_LOAD(true, 0, NULL, 0));
index 6e7cc69..ae3527d 100644 (file)
@@ -26,8 +26,8 @@ static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index 961df0d..ffbedb8 100644 (file)
@@ -21,8 +21,8 @@ static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 2, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index a600aa7..bc5adad 100644 (file)
@@ -17,8 +17,8 @@
 static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_x4_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index 5816b48..8379a1d 100644 (file)
@@ -32,17 +32,17 @@ static SPINAND_OP_VARIANTS(read_cache_dtr_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X2_DTR_OP(0, 2, NULL, 0, 80 * HZ_PER_MHZ),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_DTR_OP(0, 2, NULL, 0, 80 * HZ_PER_MHZ),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0, 54 * HZ_PER_MHZ));
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1D_1D_OP(0, 2, NULL, 0, 80 * HZ_PER_MHZ),
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0, 54 * HZ_PER_MHZ));
 
 static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index 3f539ca..a0003f5 100644 (file)
@@ -27,8 +27,8 @@ static SPINAND_OP_VARIANTS(read_cache_variants,
                SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
                SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
-               SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
+               SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(0, 1, NULL, 0),
+               SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(0, 1, NULL, 0));
 
 static SPINAND_OP_VARIANTS(write_cache_variants,
                SPINAND_PROG_LOAD_X4(true, 0, NULL, 0),
index df07bc5..c702e1e 100644 (file)
                   SPI_MEM_OP_NO_DUMMY,                                 \
                   SPI_MEM_OP_NO_DATA)
 
-#define SPINAND_PAGE_READ_FROM_CACHE_OP(addr, ndummy, buf, len, ...) \
+#define SPINAND_PAGE_READ_FROM_CACHE_1S_1S_1S_OP(addr, ndummy, buf, len, ...) \
        SPI_MEM_OP(SPI_MEM_OP_CMD(0x03, 1),                             \
                   SPI_MEM_OP_ADDR(2, addr, 1),                         \
                   SPI_MEM_OP_DUMMY(ndummy, 1),                         \
                   SPI_MEM_OP_DATA_IN(len, buf, 1),                     \
                   SPI_MEM_OP_MAX_FREQ(__VA_ARGS__ + 0))
 
-#define SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(addr, ndummy, buf, len) \
-       SPI_MEM_OP(SPI_MEM_OP_CMD(0x0b, 1),                     \
+#define SPINAND_PAGE_READ_FROM_CACHE_FAST_1S_1S_1S_OP(addr, ndummy, buf, len) \
+       SPI_MEM_OP(SPI_MEM_OP_CMD(0x0b, 1),                             \
                         SPI_MEM_OP_ADDR(2, addr, 1),                   \
                         SPI_MEM_OP_DUMMY(ndummy, 1),                   \
                         SPI_MEM_OP_DATA_IN(len, buf, 1))
 
-#define SPINAND_PAGE_READ_FROM_CACHE_OP_3A(addr, ndummy, buf, len) \
+#define SPINAND_PAGE_READ_FROM_CACHE_3A_1S_1S_1S_OP(addr, ndummy, buf, len) \
        SPI_MEM_OP(SPI_MEM_OP_CMD(0x03, 1),                             \
                   SPI_MEM_OP_ADDR(3, addr, 1),                         \
                   SPI_MEM_OP_DUMMY(ndummy, 1),                         \
                   SPI_MEM_OP_DATA_IN(len, buf, 1))
 
-#define SPINAND_PAGE_READ_FROM_CACHE_FAST_OP_3A(addr, ndummy, buf, len) \
+#define SPINAND_PAGE_READ_FROM_CACHE_FAST_3A_1S_1S_1S_OP(addr, ndummy, buf, len) \
        SPI_MEM_OP(SPI_MEM_OP_CMD(0x0b, 1),                             \
                   SPI_MEM_OP_ADDR(3, addr, 1),                         \
                   SPI_MEM_OP_DUMMY(ndummy, 1),                         \
                   SPI_MEM_OP_DATA_IN(len, buf, 1))
 
-#define SPINAND_PAGE_READ_FROM_CACHE_DTR_OP(addr, ndummy, buf, len, freq) \
+#define SPINAND_PAGE_READ_FROM_CACHE_1S_1D_1D_OP(addr, ndummy, buf, len, freq) \
        SPI_MEM_OP(SPI_MEM_OP_CMD(0x0d, 1),                             \
                   SPI_MEM_DTR_OP_ADDR(2, addr, 1),                     \
                   SPI_MEM_DTR_OP_DUMMY(ndummy, 1),                     \