From: Brian Norris <computersforpeace@gmail.com>
To: <linux-mtd@lists.infradead.org>
Cc: Marek Vasut <marex@denx.de>, Huang Shijie <b32955@freescale.com>,
Brian Norris <computersforpeace@gmail.com>,
Lee Jones <lee.jones@linaro.org>,
linux-spi@vger.kernel.org
Subject: [PATCH 3/9] mtd: spi-nor: unify read opcode variants with ST SPI FSM
Date: Wed, 9 Apr 2014 10:32:48 -0700 [thread overview]
Message-ID: <1397064774-31784-3-git-send-email-computersforpeace@gmail.com> (raw)
In-Reply-To: <1397064774-31784-1-git-send-email-computersforpeace@gmail.com>
serial_flash_cmds.h defines our opcodes a little differently. Let's
borrow its naming, since it's borrowed from the SFDP standard, and it's
more extensible.
This prepares us for merging serial_flash_cmds.h and spi-nor.h opcode
listing.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
---
drivers/mtd/spi-nor/spi-nor.c | 16 ++++++++--------
include/linux/mtd/spi-nor.h | 24 ++++++++++++++++--------
2 files changed, 24 insertions(+), 16 deletions(-)
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 462f1c8c3a7d..de04d6e2cf02 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -1010,16 +1010,16 @@ int spi_nor_scan(struct spi_nor *nor, const struct spi_device_id *id,
/* Default commands */
switch (nor->flash_read) {
case SPI_NOR_QUAD:
- nor->read_opcode = SPINOR_OP_QUAD_READ;
+ nor->read_opcode = SPINOR_OP_READ_1_1_4;
break;
case SPI_NOR_DUAL:
- nor->read_opcode = SPINOR_OP_DUAL_READ;
+ nor->read_opcode = SPINOR_OP_READ_1_1_2;
break;
case SPI_NOR_FAST:
- nor->read_opcode = SPINOR_OP_FAST_READ;
+ nor->read_opcode = SPINOR_OP_READ_FAST;
break;
case SPI_NOR_NORMAL:
- nor->read_opcode = SPINOR_OP_NORM_READ;
+ nor->read_opcode = SPINOR_OP_READ;
break;
default:
dev_err(dev, "No Read opcode defined\n");
@@ -1037,16 +1037,16 @@ int spi_nor_scan(struct spi_nor *nor, const struct spi_device_id *id,
/* Dedicated 4-byte command set */
switch (nor->flash_read) {
case SPI_NOR_QUAD:
- nor->read_opcode = SPINOR_OP_QUAD_READ_4B;
+ nor->read_opcode = SPINOR_OP_READ4_1_1_4;
break;
case SPI_NOR_DUAL:
- nor->read_opcode = SPINOR_OP_DUAL_READ_4B;
+ nor->read_opcode = SPINOR_OP_READ4_1_1_2;
break;
case SPI_NOR_FAST:
- nor->read_opcode = SPINOR_OP_FAST_READ_4B;
+ nor->read_opcode = SPINOR_OP_READ4_FAST;
break;
case SPI_NOR_NORMAL:
- nor->read_opcode = SPINOR_OP_NORM_READ_4B;
+ nor->read_opcode = SPINOR_OP_READ4;
break;
}
nor->program_opcode = SPINOR_OP_PP_4B;
diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h
index 2c827b5bf773..2a5c30196749 100644
--- a/include/linux/mtd/spi-nor.h
+++ b/include/linux/mtd/spi-nor.h
@@ -1,14 +1,22 @@
#ifndef __LINUX_MTD_SPI_NOR_H
#define __LINUX_MTD_SPI_NOR_H
+/*
+ * Note on opcode nomenclature: some opcodes have a format like
+ * SPINOR_OP_FUNCTION{4,}_x_y_z. The numbers x, y, and z stand for the number
+ * of I/O lines used for the opcode, address, and data (respectively). The
+ * FUNCTION has an optional suffix of '4', to represent an opcode which
+ * requires a 4-byte (32-bit) address.
+ */
+
/* Flash opcodes. */
#define SPINOR_OP_WREN 0x06 /* Write enable */
#define SPINOR_OP_RDSR 0x05 /* Read status register */
#define SPINOR_OP_WRSR 0x01 /* Write status register 1 byte */
-#define SPINOR_OP_NORM_READ 0x03 /* Read data bytes (low frequency) */
-#define SPINOR_OP_FAST_READ 0x0b /* Read data bytes (high frequency) */
-#define SPINOR_OP_DUAL_READ 0x3b /* Read data bytes (Dual SPI) */
-#define SPINOR_OP_QUAD_READ 0x6b /* Read data bytes (Quad SPI) */
+#define SPINOR_OP_READ 0x03 /* Read data bytes (low frequency) */
+#define SPINOR_OP_READ_FAST 0x0b /* Read data bytes (high frequency) */
+#define SPINOR_OP_READ_1_1_2 0x3b /* Read data bytes (Dual SPI) */
+#define SPINOR_OP_READ_1_1_4 0x6b /* Read data bytes (Quad SPI) */
#define SPINOR_OP_PP 0x02 /* Page program (up to 256 bytes) */
#define SPINOR_OP_BE_4K 0x20 /* Erase 4KiB block */
#define SPINOR_OP_BE_4K_PMC 0xd7 /* Erase 4KiB block on PMC chips */
@@ -19,10 +27,10 @@
#define SPINOR_OP_RDCR 0x35 /* Read configuration register */
/* 4-byte address opcodes - used on Spansion and some Macronix flashes. */
-#define SPINOR_OP_NORM_READ_4B 0x13 /* Read data bytes (low frequency) */
-#define SPINOR_OP_FAST_READ_4B 0x0c /* Read data bytes (high frequency) */
-#define SPINOR_OP_DUAL_READ_4B 0x3c /* Read data bytes (Dual SPI) */
-#define SPINOR_OP_QUAD_READ_4B 0x6c /* Read data bytes (Quad SPI) */
+#define SPINOR_OP_READ4 0x13 /* Read data bytes (low frequency) */
+#define SPINOR_OP_READ4_FAST 0x0c /* Read data bytes (high frequency) */
+#define SPINOR_OP_READ4_1_1_2 0x3c /* Read data bytes (Dual SPI) */
+#define SPINOR_OP_READ4_1_1_4 0x6c /* Read data bytes (Quad SPI) */
#define SPINOR_OP_PP_4B 0x12 /* Page program (up to 256 bytes) */
#define SPINOR_OP_SE_4B 0xdc /* Sector erase (usually 64KiB) */
--
1.8.3.2
next prev parent reply other threads:[~2014-04-09 17:33 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-09 17:32 [PATCH 1/9] mtd: spi-nor: drop \t after #define Brian Norris
2014-04-09 17:32 ` [PATCH 2/9] mtd: spi-nor: re-name OPCODE_* to SPINOR_OP_* Brian Norris
2014-04-09 17:41 ` Marek Vasut
2014-04-10 7:42 ` Huang Shijie
2014-04-09 17:32 ` Brian Norris [this message]
2014-04-09 17:41 ` [PATCH 3/9] mtd: spi-nor: unify read opcode variants with ST SPI FSM Marek Vasut
2014-04-10 7:43 ` Huang Shijie
2014-04-10 7:47 ` Huang Shijie
2014-04-10 19:34 ` Brian Norris
2014-04-09 17:32 ` [PATCH 4/9] Documentation: spi-nor: rewrite some portions Brian Norris
2014-04-09 17:44 ` Marek Vasut
2014-04-09 18:14 ` Brian Norris
2014-04-09 17:32 ` [PATCH 5/9] mtd: spi-nor: shorten Kconfig naming Brian Norris
2014-04-09 17:44 ` Marek Vasut
2014-04-10 7:39 ` Huang Shijie
2014-04-09 17:32 ` [PATCH 6/9] mtd: st_spi_fsm: fixup Kconfig dependency Brian Norris
2014-04-10 7:57 ` Lee Jones
2014-04-09 17:32 ` [PATCH 7/9] mtd: st_spi_fsm: kill duplicate CMD definitions Brian Norris
2014-04-10 7:56 ` Lee Jones
2014-04-10 18:58 ` Brian Norris
2014-04-10 18:01 ` Geert Uytterhoeven
2014-04-10 18:59 ` Brian Norris
2014-04-09 17:32 ` [PATCH 8/9] mtd: st_spi_fsm: replace FLACH_CMD_* with SPINOR_OP_* Brian Norris
2014-04-10 7:52 ` Lee Jones
2014-04-09 17:32 ` [PATCH 9/9] mtd: st_spi_fsm: begin using spi-nor.h opcodes Brian Norris
2014-04-10 7:50 ` Lee Jones
2014-04-09 17:40 ` [PATCH 1/9] mtd: spi-nor: drop \t after #define Marek Vasut
2014-04-09 17:56 ` Brian Norris
2014-04-10 7:34 ` Huang Shijie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1397064774-31784-3-git-send-email-computersforpeace@gmail.com \
--to=computersforpeace@gmail.com \
--cc=b32955@freescale.com \
--cc=lee.jones@linaro.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-spi@vger.kernel.org \
--cc=marex@denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).