diff options
| author | Huang Shijie <b32955@freescale.com> | 2014-02-24 05:37:35 -0500 |
|---|---|---|
| committer | Brian Norris <computersforpeace@gmail.com> | 2014-04-14 14:22:57 -0400 |
| commit | f39d2fa0122e6abd8505a3598f3aa535d0d5aade (patch) | |
| tree | 353647090f5573b2fab9f26747be9a1d2a5cbf1a /include/linux/mtd | |
| parent | c9eaa447e77efe77b7fa4c953bd62de8297fd6c5 (diff) | |
mtd: spi-nor: copy the SPI NOR commands to a new header file
This patch adds a new header :spi-nor.h,
and copies all the SPI NOR commands and relative macros into this new header.
This hearder can be used by the m25p80.c and other spi-nor controller,
such as Freescale's Quadspi.
Signed-off-by: Huang Shijie <b32955@freescale.com>
Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Diffstat (limited to 'include/linux/mtd')
| -rw-r--r-- | include/linux/mtd/spi-nor.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h new file mode 100644 index 000000000000..483fc2a086c4 --- /dev/null +++ b/include/linux/mtd/spi-nor.h | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | #ifndef __LINUX_MTD_SPI_NOR_H | ||
| 2 | #define __LINUX_MTD_SPI_NOR_H | ||
| 3 | |||
| 4 | /* Flash opcodes. */ | ||
| 5 | #define OPCODE_WREN 0x06 /* Write enable */ | ||
| 6 | #define OPCODE_RDSR 0x05 /* Read status register */ | ||
| 7 | #define OPCODE_WRSR 0x01 /* Write status register 1 byte */ | ||
| 8 | #define OPCODE_NORM_READ 0x03 /* Read data bytes (low frequency) */ | ||
| 9 | #define OPCODE_FAST_READ 0x0b /* Read data bytes (high frequency) */ | ||
| 10 | #define OPCODE_DUAL_READ 0x3b /* Read data bytes (Dual SPI) */ | ||
| 11 | #define OPCODE_QUAD_READ 0x6b /* Read data bytes (Quad SPI) */ | ||
| 12 | #define OPCODE_PP 0x02 /* Page program (up to 256 bytes) */ | ||
| 13 | #define OPCODE_BE_4K 0x20 /* Erase 4KiB block */ | ||
| 14 | #define OPCODE_BE_4K_PMC 0xd7 /* Erase 4KiB block on PMC chips */ | ||
| 15 | #define OPCODE_BE_32K 0x52 /* Erase 32KiB block */ | ||
| 16 | #define OPCODE_CHIP_ERASE 0xc7 /* Erase whole flash chip */ | ||
| 17 | #define OPCODE_SE 0xd8 /* Sector erase (usually 64KiB) */ | ||
| 18 | #define OPCODE_RDID 0x9f /* Read JEDEC ID */ | ||
| 19 | #define OPCODE_RDCR 0x35 /* Read configuration register */ | ||
| 20 | |||
| 21 | /* 4-byte address opcodes - used on Spansion and some Macronix flashes. */ | ||
| 22 | #define OPCODE_NORM_READ_4B 0x13 /* Read data bytes (low frequency) */ | ||
| 23 | #define OPCODE_FAST_READ_4B 0x0c /* Read data bytes (high frequency) */ | ||
| 24 | #define OPCODE_DUAL_READ_4B 0x3c /* Read data bytes (Dual SPI) */ | ||
| 25 | #define OPCODE_QUAD_READ_4B 0x6c /* Read data bytes (Quad SPI) */ | ||
| 26 | #define OPCODE_PP_4B 0x12 /* Page program (up to 256 bytes) */ | ||
| 27 | #define OPCODE_SE_4B 0xdc /* Sector erase (usually 64KiB) */ | ||
| 28 | |||
| 29 | /* Used for SST flashes only. */ | ||
| 30 | #define OPCODE_BP 0x02 /* Byte program */ | ||
| 31 | #define OPCODE_WRDI 0x04 /* Write disable */ | ||
| 32 | #define OPCODE_AAI_WP 0xad /* Auto address increment word program */ | ||
| 33 | |||
| 34 | /* Used for Macronix and Winbond flashes. */ | ||
| 35 | #define OPCODE_EN4B 0xb7 /* Enter 4-byte mode */ | ||
| 36 | #define OPCODE_EX4B 0xe9 /* Exit 4-byte mode */ | ||
| 37 | |||
| 38 | /* Used for Spansion flashes only. */ | ||
| 39 | #define OPCODE_BRWR 0x17 /* Bank register write */ | ||
| 40 | |||
| 41 | /* Status Register bits. */ | ||
| 42 | #define SR_WIP 1 /* Write in progress */ | ||
| 43 | #define SR_WEL 2 /* Write enable latch */ | ||
| 44 | /* meaning of other SR_* bits may differ between vendors */ | ||
| 45 | #define SR_BP0 4 /* Block protect 0 */ | ||
| 46 | #define SR_BP1 8 /* Block protect 1 */ | ||
| 47 | #define SR_BP2 0x10 /* Block protect 2 */ | ||
| 48 | #define SR_SRWD 0x80 /* SR write protect */ | ||
| 49 | |||
| 50 | #define SR_QUAD_EN_MX 0x40 /* Macronix Quad I/O */ | ||
| 51 | |||
| 52 | /* Configuration Register bits. */ | ||
| 53 | #define CR_QUAD_EN_SPAN 0x2 /* Spansion Quad I/O */ | ||
| 54 | |||
| 55 | #endif | ||
