aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/devices
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2014-04-08 22:02:14 -0400
committerBrian Norris <computersforpeace@gmail.com>2014-04-14 14:23:01 -0400
commit6c8e1b33aac94c1923b1b5acc54644094a9b6a78 (patch)
tree43ce1e5df4293fcde731b1d8d2d98222288be9fd /drivers/mtd/devices
parent92d3af9ac369faf3bd2c409cf5218510500af214 (diff)
mtd: st_spi_fsm: begin using spi-nor.h opcodes
Many of the serial_flash_cmds.h opcodes are duplicated with spi-nor.h. Let's begin to unify them. Signed-off-by: Brian Norris <computersforpeace@gmail.com> Acked-by: Lee Jones <lee.jones@linaro.org> Reviewed-by: Marek Vasut <marex@denx.de>
Diffstat (limited to 'drivers/mtd/devices')
-rw-r--r--drivers/mtd/devices/serial_flash_cmds.h20
-rw-r--r--drivers/mtd/devices/st_spi_fsm.c9
2 files changed, 5 insertions, 24 deletions
diff --git a/drivers/mtd/devices/serial_flash_cmds.h b/drivers/mtd/devices/serial_flash_cmds.h
index 82fa1687a2d3..f59a125295d0 100644
--- a/drivers/mtd/devices/serial_flash_cmds.h
+++ b/drivers/mtd/devices/serial_flash_cmds.h
@@ -13,25 +13,12 @@
13#define _MTD_SERIAL_FLASH_CMDS_H 13#define _MTD_SERIAL_FLASH_CMDS_H
14 14
15/* Generic Flash Commands/OPCODEs */ 15/* Generic Flash Commands/OPCODEs */
16#define SPINOR_OP_WREN 0x06
17#define SPINOR_OP_WRDI 0x04
18#define SPINOR_OP_RDID 0x9f
19#define SPINOR_OP_RDSR 0x05
20#define SPINOR_OP_RDSR2 0x35 16#define SPINOR_OP_RDSR2 0x35
21#define SPINOR_OP_WRSR 0x01
22#define SPINOR_OP_SE_4K 0x20
23#define SPINOR_OP_SE_32K 0x52
24#define SPINOR_OP_SE 0xd8
25#define SPINOR_OP_CHIPERASE 0xc7
26#define SPINOR_OP_WRVCR 0x81 17#define SPINOR_OP_WRVCR 0x81
27#define SPINOR_OP_RDVCR 0x85 18#define SPINOR_OP_RDVCR 0x85
28 19
29/* JEDEC Standard - Serial Flash Discoverable Parmeters (SFDP) Commands */ 20/* JEDEC Standard - Serial Flash Discoverable Parmeters (SFDP) Commands */
30#define SPINOR_OP_READ 0x03 /* READ */
31#define SPINOR_OP_READ_FAST 0x0b /* FAST READ */
32#define SPINOR_OP_READ_1_1_2 0x3b /* DUAL OUTPUT READ */
33#define SPINOR_OP_READ_1_2_2 0xbb /* DUAL I/O READ */ 21#define SPINOR_OP_READ_1_2_2 0xbb /* DUAL I/O READ */
34#define SPINOR_OP_READ_1_1_4 0x6b /* QUAD OUTPUT READ */
35#define SPINOR_OP_READ_1_4_4 0xeb /* QUAD I/O READ */ 22#define SPINOR_OP_READ_1_4_4 0xeb /* QUAD I/O READ */
36 23
37#define SPINOR_OP_WRITE 0x02 /* PAGE PROGRAM */ 24#define SPINOR_OP_WRITE 0x02 /* PAGE PROGRAM */
@@ -40,15 +27,8 @@
40#define SPINOR_OP_WRITE_1_1_4 0x32 /* QUAD INPUT PROGRAM */ 27#define SPINOR_OP_WRITE_1_1_4 0x32 /* QUAD INPUT PROGRAM */
41#define SPINOR_OP_WRITE_1_4_4 0x12 /* QUAD INPUT EXT PROGRAM */ 28#define SPINOR_OP_WRITE_1_4_4 0x12 /* QUAD INPUT EXT PROGRAM */
42 29
43#define SPINOR_OP_EN4B_ADDR 0xb7 /* Enter 4-byte address mode */
44#define SPINOR_OP_EX4B_ADDR 0xe9 /* Exit 4-byte address mode */
45
46/* READ commands with 32-bit addressing */ 30/* READ commands with 32-bit addressing */
47#define SPINOR_OP_READ4 0x13
48#define SPINOR_OP_READ4_FAST 0x0c
49#define SPINOR_OP_READ4_1_1_2 0x3c
50#define SPINOR_OP_READ4_1_2_2 0xbc 31#define SPINOR_OP_READ4_1_2_2 0xbc
51#define SPINOR_OP_READ4_1_1_4 0x6c
52#define SPINOR_OP_READ4_1_4_4 0xec 32#define SPINOR_OP_READ4_1_4_4 0xec
53 33
54/* Configuration flags */ 34/* Configuration flags */
diff --git a/drivers/mtd/devices/st_spi_fsm.c b/drivers/mtd/devices/st_spi_fsm.c
index fc193a94307d..7cc49ba78f68 100644
--- a/drivers/mtd/devices/st_spi_fsm.c
+++ b/drivers/mtd/devices/st_spi_fsm.c
@@ -19,6 +19,7 @@
19#include <linux/mfd/syscon.h> 19#include <linux/mfd/syscon.h>
20#include <linux/mtd/mtd.h> 20#include <linux/mtd/mtd.h>
21#include <linux/mtd/partitions.h> 21#include <linux/mtd/partitions.h>
22#include <linux/mtd/spi-nor.h>
22#include <linux/sched.h> 23#include <linux/sched.h>
23#include <linux/delay.h> 24#include <linux/delay.h>
24#include <linux/io.h> 25#include <linux/io.h>
@@ -522,7 +523,7 @@ static int stfsm_mx25_en_32bit_addr_seq(struct stfsm_seq *seq)
522{ 523{
523 seq->seq_opc[0] = (SEQ_OPC_PADS_1 | 524 seq->seq_opc[0] = (SEQ_OPC_PADS_1 |
524 SEQ_OPC_CYCLES(8) | 525 SEQ_OPC_CYCLES(8) |
525 SEQ_OPC_OPCODE(SPINOR_OP_EN4B_ADDR) | 526 SEQ_OPC_OPCODE(SPINOR_OP_EN4B) |
526 SEQ_OPC_CSDEASSERT); 527 SEQ_OPC_CSDEASSERT);
527 528
528 seq->seq[0] = STFSM_INST_CMD1; 529 seq->seq[0] = STFSM_INST_CMD1;
@@ -630,7 +631,7 @@ static struct stfsm_seq stfsm_seq_erase_chip = {
630 SEQ_OPC_OPCODE(SPINOR_OP_WREN) | SEQ_OPC_CSDEASSERT), 631 SEQ_OPC_OPCODE(SPINOR_OP_WREN) | SEQ_OPC_CSDEASSERT),
631 632
632 (SEQ_OPC_PADS_1 | SEQ_OPC_CYCLES(8) | 633 (SEQ_OPC_PADS_1 | SEQ_OPC_CYCLES(8) |
633 SEQ_OPC_OPCODE(SPINOR_OP_CHIPERASE) | SEQ_OPC_CSDEASSERT), 634 SEQ_OPC_OPCODE(SPINOR_OP_CHIP_ERASE) | SEQ_OPC_CSDEASSERT),
634 }, 635 },
635 .seq = { 636 .seq = {
636 STFSM_INST_CMD1, 637 STFSM_INST_CMD1,
@@ -665,7 +666,7 @@ static struct stfsm_seq stfsm_seq_write_status = {
665static int stfsm_n25q_en_32bit_addr_seq(struct stfsm_seq *seq) 666static int stfsm_n25q_en_32bit_addr_seq(struct stfsm_seq *seq)
666{ 667{
667 seq->seq_opc[0] = (SEQ_OPC_PADS_1 | SEQ_OPC_CYCLES(8) | 668 seq->seq_opc[0] = (SEQ_OPC_PADS_1 | SEQ_OPC_CYCLES(8) |
668 SEQ_OPC_OPCODE(SPINOR_OP_EN4B_ADDR)); 669 SEQ_OPC_OPCODE(SPINOR_OP_EN4B));
669 seq->seq_opc[1] = (SEQ_OPC_PADS_1 | SEQ_OPC_CYCLES(8) | 670 seq->seq_opc[1] = (SEQ_OPC_PADS_1 | SEQ_OPC_CYCLES(8) |
670 SEQ_OPC_OPCODE(SPINOR_OP_WREN) | 671 SEQ_OPC_OPCODE(SPINOR_OP_WREN) |
671 SEQ_OPC_CSDEASSERT); 672 SEQ_OPC_CSDEASSERT);
@@ -788,7 +789,7 @@ static int stfsm_write_fifo(struct stfsm *fsm, const uint32_t *buf,
788static int stfsm_enter_32bit_addr(struct stfsm *fsm, int enter) 789static int stfsm_enter_32bit_addr(struct stfsm *fsm, int enter)
789{ 790{
790 struct stfsm_seq *seq = &fsm->stfsm_seq_en_32bit_addr; 791 struct stfsm_seq *seq = &fsm->stfsm_seq_en_32bit_addr;
791 uint32_t cmd = enter ? SPINOR_OP_EN4B_ADDR : SPINOR_OP_EX4B_ADDR; 792 uint32_t cmd = enter ? SPINOR_OP_EN4B : SPINOR_OP_EX4B;
792 793
793 seq->seq_opc[0] = (SEQ_OPC_PADS_1 | 794 seq->seq_opc[0] = (SEQ_OPC_PADS_1 |
794 SEQ_OPC_CYCLES(8) | 795 SEQ_OPC_CYCLES(8) |