1*5549fbd5SLee Jones /* 2*5549fbd5SLee Jones * Generic/SFDP Flash Commands and Device Capabilities 3*5549fbd5SLee Jones * 4*5549fbd5SLee Jones * Copyright (C) 2013 Lee Jones <lee.jones@lianro.org> 5*5549fbd5SLee Jones * 6*5549fbd5SLee Jones * This code is free software; you can redistribute it and/or modify 7*5549fbd5SLee Jones * it under the terms of the GNU General Public License version 2 as 8*5549fbd5SLee Jones * published by the Free Software Foundation. 9*5549fbd5SLee Jones * 10*5549fbd5SLee Jones */ 11*5549fbd5SLee Jones 12*5549fbd5SLee Jones #ifndef _MTD_SERIAL_FLASH_CMDS_H 13*5549fbd5SLee Jones #define _MTD_SERIAL_FLASH_CMDS_H 14*5549fbd5SLee Jones 15*5549fbd5SLee Jones /* Generic Flash Commands/OPCODEs */ 16*5549fbd5SLee Jones #define FLASH_CMD_WREN 0x06 17*5549fbd5SLee Jones #define FLASH_CMD_WRDI 0x04 18*5549fbd5SLee Jones #define FLASH_CMD_RDID 0x9f 19*5549fbd5SLee Jones #define FLASH_CMD_RDSR 0x05 20*5549fbd5SLee Jones #define FLASH_CMD_RDSR2 0x35 21*5549fbd5SLee Jones #define FLASH_CMD_WRSR 0x01 22*5549fbd5SLee Jones #define FLASH_CMD_SE_4K 0x20 23*5549fbd5SLee Jones #define FLASH_CMD_SE_32K 0x52 24*5549fbd5SLee Jones #define FLASH_CMD_SE 0xd8 25*5549fbd5SLee Jones #define FLASH_CMD_CHIPERASE 0xc7 26*5549fbd5SLee Jones #define FLASH_CMD_WRVCR 0x81 27*5549fbd5SLee Jones #define FLASH_CMD_RDVCR 0x85 28*5549fbd5SLee Jones 29*5549fbd5SLee Jones /* JEDEC Standard - Serial Flash Discoverable Parmeters (SFDP) Commands */ 30*5549fbd5SLee Jones #define FLASH_CMD_READ 0x03 /* READ */ 31*5549fbd5SLee Jones #define FLASH_CMD_READ_FAST 0x0b /* FAST READ */ 32*5549fbd5SLee Jones #define FLASH_CMD_READ_1_1_2 0x3b /* DUAL OUTPUT READ */ 33*5549fbd5SLee Jones #define FLASH_CMD_READ_1_2_2 0xbb /* DUAL I/O READ */ 34*5549fbd5SLee Jones #define FLASH_CMD_READ_1_1_4 0x6b /* QUAD OUTPUT READ */ 35*5549fbd5SLee Jones #define FLASH_CMD_READ_1_4_4 0xeb /* QUAD I/O READ */ 36*5549fbd5SLee Jones 37*5549fbd5SLee Jones #define FLASH_CMD_WRITE 0x02 /* PAGE PROGRAM */ 38*5549fbd5SLee Jones #define FLASH_CMD_WRITE_1_1_2 0xa2 /* DUAL INPUT PROGRAM */ 39*5549fbd5SLee Jones #define FLASH_CMD_WRITE_1_2_2 0xd2 /* DUAL INPUT EXT PROGRAM */ 40*5549fbd5SLee Jones #define FLASH_CMD_WRITE_1_1_4 0x32 /* QUAD INPUT PROGRAM */ 41*5549fbd5SLee Jones #define FLASH_CMD_WRITE_1_4_4 0x12 /* QUAD INPUT EXT PROGRAM */ 42*5549fbd5SLee Jones 43*5549fbd5SLee Jones #define FLASH_CMD_EN4B_ADDR 0xb7 /* Enter 4-byte address mode */ 44*5549fbd5SLee Jones #define FLASH_CMD_EX4B_ADDR 0xe9 /* Exit 4-byte address mode */ 45*5549fbd5SLee Jones 46*5549fbd5SLee Jones /* READ commands with 32-bit addressing */ 47*5549fbd5SLee Jones #define FLASH_CMD_READ4 0x13 48*5549fbd5SLee Jones #define FLASH_CMD_READ4_FAST 0x0c 49*5549fbd5SLee Jones #define FLASH_CMD_READ4_1_1_2 0x3c 50*5549fbd5SLee Jones #define FLASH_CMD_READ4_1_2_2 0xbc 51*5549fbd5SLee Jones #define FLASH_CMD_READ4_1_1_4 0x6c 52*5549fbd5SLee Jones #define FLASH_CMD_READ4_1_4_4 0xec 53*5549fbd5SLee Jones 54*5549fbd5SLee Jones /* Configuration flags */ 55*5549fbd5SLee Jones #define FLASH_FLAG_SINGLE 0x000000ff 56*5549fbd5SLee Jones #define FLASH_FLAG_READ_WRITE 0x00000001 57*5549fbd5SLee Jones #define FLASH_FLAG_READ_FAST 0x00000002 58*5549fbd5SLee Jones #define FLASH_FLAG_SE_4K 0x00000004 59*5549fbd5SLee Jones #define FLASH_FLAG_SE_32K 0x00000008 60*5549fbd5SLee Jones #define FLASH_FLAG_CE 0x00000010 61*5549fbd5SLee Jones #define FLASH_FLAG_32BIT_ADDR 0x00000020 62*5549fbd5SLee Jones #define FLASH_FLAG_RESET 0x00000040 63*5549fbd5SLee Jones #define FLASH_FLAG_DYB_LOCKING 0x00000080 64*5549fbd5SLee Jones 65*5549fbd5SLee Jones #define FLASH_FLAG_DUAL 0x0000ff00 66*5549fbd5SLee Jones #define FLASH_FLAG_READ_1_1_2 0x00000100 67*5549fbd5SLee Jones #define FLASH_FLAG_READ_1_2_2 0x00000200 68*5549fbd5SLee Jones #define FLASH_FLAG_READ_2_2_2 0x00000400 69*5549fbd5SLee Jones #define FLASH_FLAG_WRITE_1_1_2 0x00001000 70*5549fbd5SLee Jones #define FLASH_FLAG_WRITE_1_2_2 0x00002000 71*5549fbd5SLee Jones #define FLASH_FLAG_WRITE_2_2_2 0x00004000 72*5549fbd5SLee Jones 73*5549fbd5SLee Jones #define FLASH_FLAG_QUAD 0x00ff0000 74*5549fbd5SLee Jones #define FLASH_FLAG_READ_1_1_4 0x00010000 75*5549fbd5SLee Jones #define FLASH_FLAG_READ_1_4_4 0x00020000 76*5549fbd5SLee Jones #define FLASH_FLAG_READ_4_4_4 0x00040000 77*5549fbd5SLee Jones #define FLASH_FLAG_WRITE_1_1_4 0x00100000 78*5549fbd5SLee Jones #define FLASH_FLAG_WRITE_1_4_4 0x00200000 79*5549fbd5SLee Jones #define FLASH_FLAG_WRITE_4_4_4 0x00400000 80*5549fbd5SLee Jones 81*5549fbd5SLee Jones #endif /* _MTD_SERIAL_FLASH_CMDS_H */ 82