xref: /linux/drivers/mtd/devices/serial_flash_cmds.h (revision 702648721db590b3425c31ade294000e18808345)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Generic/SFDP Flash Commands and Device Capabilities
4  *
5  * Copyright (C) 2013 Lee Jones <lee.jones@lianro.org>
6  */
7 
8 #ifndef _MTD_SERIAL_FLASH_CMDS_H
9 #define _MTD_SERIAL_FLASH_CMDS_H
10 
11 /* Generic Flash Commands/OPCODEs */
12 #define SPINOR_OP_WRVCR		0x81
13 #define SPINOR_OP_RDVCR		0x85
14 
15 /* JEDEC Standard - Serial Flash Discoverable Parmeters (SFDP) Commands */
16 #define SPINOR_OP_WRITE		0x02	/* PAGE PROGRAM */
17 #define SPINOR_OP_WRITE_1_1_2	0xa2	/* DUAL INPUT PROGRAM */
18 #define SPINOR_OP_WRITE_1_2_2	0xd2	/* DUAL INPUT EXT PROGRAM */
19 #define SPINOR_OP_WRITE_1_1_4	0x32	/* QUAD INPUT PROGRAM */
20 #define SPINOR_OP_WRITE_1_4_4	0x12	/* QUAD INPUT EXT PROGRAM */
21 
22 /* Configuration flags */
23 #define FLASH_FLAG_SINGLE	0x000000ff
24 #define FLASH_FLAG_READ_WRITE	0x00000001
25 #define FLASH_FLAG_READ_FAST	0x00000002
26 #define FLASH_FLAG_SE_4K	0x00000004
27 #define FLASH_FLAG_SE_32K	0x00000008
28 #define FLASH_FLAG_CE		0x00000010
29 #define FLASH_FLAG_32BIT_ADDR	0x00000020
30 #define FLASH_FLAG_RESET	0x00000040
31 #define FLASH_FLAG_DYB_LOCKING	0x00000080
32 
33 #define FLASH_FLAG_DUAL		0x0000ff00
34 #define FLASH_FLAG_READ_1_1_2	0x00000100
35 #define FLASH_FLAG_READ_1_2_2	0x00000200
36 #define FLASH_FLAG_READ_2_2_2	0x00000400
37 #define FLASH_FLAG_WRITE_1_1_2	0x00001000
38 #define FLASH_FLAG_WRITE_1_2_2	0x00002000
39 #define FLASH_FLAG_WRITE_2_2_2	0x00004000
40 
41 #define FLASH_FLAG_QUAD		0x00ff0000
42 #define FLASH_FLAG_READ_1_1_4	0x00010000
43 #define FLASH_FLAG_READ_1_4_4	0x00020000
44 #define FLASH_FLAG_READ_4_4_4	0x00040000
45 #define FLASH_FLAG_WRITE_1_1_4	0x00100000
46 #define FLASH_FLAG_WRITE_1_4_4	0x00200000
47 #define FLASH_FLAG_WRITE_4_4_4	0x00400000
48 
49 #endif /* _MTD_SERIAL_FLASH_CMDS_H */
50