Skip to content

Commit 348d772

Browse files
mwalleambarus
authored andcommitted
mtd: spi-nor: winbond: convert flash_info to new format
The INFOx() macros are going away. Convert the flash_info database to the new format. Signed-off-by: Michael Walle <mwalle@kernel.org> Link: https://lore.kernel.org/r/20230807-mtd-flash-info-db-rework-v3-28-e60548861b10@kernel.org Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
1 parent 47541a6 commit 348d772

1 file changed

Lines changed: 185 additions & 96 deletions

File tree

drivers/mtd/spi-nor/winbond.c

Lines changed: 185 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -42,102 +42,191 @@ static const struct spi_nor_fixups w25q256_fixups = {
4242
};
4343

4444
static const struct flash_info winbond_nor_parts[] = {
45-
{ "w25x05", INFO(0xef3010, 0, 64 * 1024, 1)
46-
NO_SFDP_FLAGS(SECT_4K) },
47-
{ "w25x10", INFO(0xef3011, 0, 64 * 1024, 2)
48-
NO_SFDP_FLAGS(SECT_4K) },
49-
{ "w25x20", INFO(0xef3012, 0, 64 * 1024, 4)
50-
NO_SFDP_FLAGS(SECT_4K) },
51-
{ "w25x40", INFO(0xef3013, 0, 64 * 1024, 8)
52-
NO_SFDP_FLAGS(SECT_4K) },
53-
{ "w25x80", INFO(0xef3014, 0, 64 * 1024, 16)
54-
NO_SFDP_FLAGS(SECT_4K) },
55-
{ "w25x16", INFO(0xef3015, 0, 64 * 1024, 32)
56-
NO_SFDP_FLAGS(SECT_4K) },
57-
{ "w25q16dw", INFO(0xef6015, 0, 64 * 1024, 32)
58-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
59-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
60-
SPI_NOR_QUAD_READ) },
61-
{ "w25x32", INFO(0xef3016, 0, 64 * 1024, 64)
62-
NO_SFDP_FLAGS(SECT_4K) },
63-
{ "w25q16jv-im/jm", INFO(0xef7015, 0, 64 * 1024, 32)
64-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
65-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
66-
SPI_NOR_QUAD_READ) },
67-
{ "w25q20cl", INFO(0xef4012, 0, 64 * 1024, 4)
68-
NO_SFDP_FLAGS(SECT_4K) },
69-
{ "w25q20bw", INFO(0xef5012, 0, 64 * 1024, 4)
70-
NO_SFDP_FLAGS(SECT_4K) },
71-
{ "w25q20ew", INFO(0xef6012, 0, 64 * 1024, 4)
72-
NO_SFDP_FLAGS(SECT_4K) },
73-
{ "w25q32", INFO(0xef4016, 0, 64 * 1024, 64)
74-
NO_SFDP_FLAGS(SECT_4K) },
75-
{ "w25q32dw", INFO(0xef6016, 0, 64 * 1024, 64)
76-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
77-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
78-
OTP_INFO(256, 3, 0x1000, 0x1000) },
79-
{ "w25q32jv", INFO(0xef7016, 0, 64 * 1024, 64)
80-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
81-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
82-
SPI_NOR_QUAD_READ) },
83-
{ "w25q32jwm", INFO(0xef8016, 0, 64 * 1024, 64)
84-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
85-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
86-
OTP_INFO(256, 3, 0x1000, 0x1000) },
87-
{ "w25q64jwm", INFO(0xef8017, 0, 64 * 1024, 128)
88-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
89-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
90-
SPI_NOR_QUAD_READ) },
91-
{ "w25q128jwm", INFO(0xef8018, 0, 64 * 1024, 256)
92-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
93-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
94-
SPI_NOR_QUAD_READ) },
95-
{ "w25q256jwm", INFO(0xef8019, 0, 64 * 1024, 512)
96-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
97-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
98-
SPI_NOR_QUAD_READ) },
99-
{ "w25x64", INFO(0xef3017, 0, 64 * 1024, 128)
100-
NO_SFDP_FLAGS(SECT_4K) },
101-
{ "w25q64", INFO(0xef4017, 0, 64 * 1024, 128)
102-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
103-
SPI_NOR_QUAD_READ) },
104-
{ "w25q64dw", INFO(0xef6017, 0, 64 * 1024, 128)
105-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
106-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
107-
SPI_NOR_QUAD_READ) },
108-
{ "w25q64jvm", INFO(0xef7017, 0, 64 * 1024, 128)
109-
NO_SFDP_FLAGS(SECT_4K) },
110-
{ "w25q128fw", INFO(0xef6018, 0, 64 * 1024, 256)
111-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
112-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
113-
SPI_NOR_QUAD_READ) },
114-
{ "w25q128jv", INFO(0xef7018, 0, 64 * 1024, 256)
115-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
116-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
117-
SPI_NOR_QUAD_READ) },
118-
{ "w25q80", INFO(0xef5014, 0, 64 * 1024, 16)
119-
NO_SFDP_FLAGS(SECT_4K) },
120-
{ "w25q80bl", INFO(0xef4014, 0, 64 * 1024, 16)
121-
NO_SFDP_FLAGS(SECT_4K) },
122-
{ "w25q128", INFO(0xef4018, 0, 0, 0)
123-
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) },
124-
{ "w25q256", INFO(0xef4019, 0, 64 * 1024, 512)
125-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
126-
.fixups = &w25q256_fixups },
127-
{ "w25q256jvm", INFO(0xef7019, 0, 64 * 1024, 0) },
128-
{ "w25q256jw", INFO(0xef6019, 0, 64 * 1024, 512)
129-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
130-
SPI_NOR_QUAD_READ) },
131-
{ "w25m512jv", INFO(0xef7119, 0, 64 * 1024, 1024)
132-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_QUAD_READ |
133-
SPI_NOR_DUAL_READ) },
134-
{ "w25q512nwq", INFO(0xef6020, 0, 0, 0)
135-
OTP_INFO(256, 3, 0x1000, 0x1000) },
136-
{ "w25q512nwm", INFO(0xef8020, 0, 64 * 1024, 0)
137-
OTP_INFO(256, 3, 0x1000, 0x1000) },
138-
{ "w25q512jvq", INFO(0xef4020, 0, 64 * 1024, 1024)
139-
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
140-
SPI_NOR_QUAD_READ) },
45+
{
46+
.id = SNOR_ID(0xef, 0x30, 0x10),
47+
.name = "w25x05",
48+
.size = SZ_64K,
49+
.no_sfdp_flags = SECT_4K,
50+
}, {
51+
.id = SNOR_ID(0xef, 0x30, 0x11),
52+
.name = "w25x10",
53+
.size = SZ_128K,
54+
.no_sfdp_flags = SECT_4K,
55+
}, {
56+
.id = SNOR_ID(0xef, 0x30, 0x12),
57+
.name = "w25x20",
58+
.size = SZ_256K,
59+
.no_sfdp_flags = SECT_4K,
60+
}, {
61+
.id = SNOR_ID(0xef, 0x30, 0x13),
62+
.name = "w25x40",
63+
.size = SZ_512K,
64+
.no_sfdp_flags = SECT_4K,
65+
}, {
66+
.id = SNOR_ID(0xef, 0x30, 0x14),
67+
.name = "w25x80",
68+
.size = SZ_1M,
69+
.no_sfdp_flags = SECT_4K,
70+
}, {
71+
.id = SNOR_ID(0xef, 0x30, 0x15),
72+
.name = "w25x16",
73+
.size = SZ_2M,
74+
.no_sfdp_flags = SECT_4K,
75+
}, {
76+
.id = SNOR_ID(0xef, 0x60, 0x15),
77+
.name = "w25q16dw",
78+
.size = SZ_2M,
79+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
80+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
81+
}, {
82+
.id = SNOR_ID(0xef, 0x30, 0x16),
83+
.name = "w25x32",
84+
.size = SZ_4M,
85+
.no_sfdp_flags = SECT_4K,
86+
}, {
87+
.id = SNOR_ID(0xef, 0x70, 0x15),
88+
.name = "w25q16jv-im/jm",
89+
.size = SZ_2M,
90+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
91+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
92+
}, {
93+
.id = SNOR_ID(0xef, 0x40, 0x12),
94+
.name = "w25q20cl",
95+
.size = SZ_256K,
96+
.no_sfdp_flags = SECT_4K,
97+
}, {
98+
.id = SNOR_ID(0xef, 0x50, 0x12),
99+
.name = "w25q20bw",
100+
.size = SZ_256K,
101+
.no_sfdp_flags = SECT_4K,
102+
}, {
103+
.id = SNOR_ID(0xef, 0x60, 0x12),
104+
.name = "w25q20ew",
105+
.size = SZ_256K,
106+
.no_sfdp_flags = SECT_4K,
107+
}, {
108+
.id = SNOR_ID(0xef, 0x40, 0x16),
109+
.name = "w25q32",
110+
.size = SZ_4M,
111+
.no_sfdp_flags = SECT_4K,
112+
}, {
113+
.id = SNOR_ID(0xef, 0x60, 0x16),
114+
.name = "w25q32dw",
115+
.size = SZ_4M,
116+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
117+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
118+
.otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
119+
}, {
120+
.id = SNOR_ID(0xef, 0x70, 0x16),
121+
.name = "w25q32jv",
122+
.size = SZ_4M,
123+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
124+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
125+
}, {
126+
.id = SNOR_ID(0xef, 0x80, 0x16),
127+
.name = "w25q32jwm",
128+
.size = SZ_4M,
129+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
130+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
131+
.otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
132+
}, {
133+
.id = SNOR_ID(0xef, 0x80, 0x17),
134+
.name = "w25q64jwm",
135+
.size = SZ_8M,
136+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
137+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
138+
}, {
139+
.id = SNOR_ID(0xef, 0x80, 0x18),
140+
.name = "w25q128jwm",
141+
.size = SZ_16M,
142+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
143+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
144+
}, {
145+
.id = SNOR_ID(0xef, 0x80, 0x19),
146+
.name = "w25q256jwm",
147+
.size = SZ_32M,
148+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
149+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
150+
}, {
151+
.id = SNOR_ID(0xef, 0x30, 0x17),
152+
.name = "w25x64",
153+
.size = SZ_8M,
154+
.no_sfdp_flags = SECT_4K,
155+
}, {
156+
.id = SNOR_ID(0xef, 0x40, 0x17),
157+
.name = "w25q64",
158+
.size = SZ_8M,
159+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
160+
}, {
161+
.id = SNOR_ID(0xef, 0x60, 0x17),
162+
.name = "w25q64dw",
163+
.size = SZ_8M,
164+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
165+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
166+
}, {
167+
.id = SNOR_ID(0xef, 0x70, 0x17),
168+
.name = "w25q64jvm",
169+
.size = SZ_8M,
170+
.no_sfdp_flags = SECT_4K,
171+
}, {
172+
.id = SNOR_ID(0xef, 0x60, 0x18),
173+
.name = "w25q128fw",
174+
.size = SZ_16M,
175+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
176+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
177+
}, {
178+
.id = SNOR_ID(0xef, 0x70, 0x18),
179+
.name = "w25q128jv",
180+
.size = SZ_16M,
181+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
182+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
183+
}, {
184+
.id = SNOR_ID(0xef, 0x50, 0x14),
185+
.name = "w25q80",
186+
.size = SZ_1M,
187+
.no_sfdp_flags = SECT_4K,
188+
}, {
189+
.id = SNOR_ID(0xef, 0x40, 0x14),
190+
.name = "w25q80bl",
191+
.size = SZ_1M,
192+
.no_sfdp_flags = SECT_4K,
193+
}, {
194+
.id = SNOR_ID(0xef, 0x40, 0x18),
195+
.name = "w25q128",
196+
.flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
197+
}, {
198+
.id = SNOR_ID(0xef, 0x40, 0x19),
199+
.name = "w25q256",
200+
.size = SZ_32M,
201+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
202+
.fixups = &w25q256_fixups,
203+
}, {
204+
.id = SNOR_ID(0xef, 0x70, 0x19),
205+
.name = "w25q256jvm",
206+
}, {
207+
.id = SNOR_ID(0xef, 0x60, 0x19),
208+
.name = "w25q256jw",
209+
.size = SZ_32M,
210+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
211+
}, {
212+
.id = SNOR_ID(0xef, 0x71, 0x19),
213+
.name = "w25m512jv",
214+
.size = SZ_64M,
215+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
216+
}, {
217+
.id = SNOR_ID(0xef, 0x60, 0x20),
218+
.name = "w25q512nwq",
219+
.otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
220+
}, {
221+
.id = SNOR_ID(0xef, 0x80, 0x20),
222+
.name = "w25q512nwm",
223+
.otp = SNOR_OTP(256, 3, 0x1000, 0x1000),
224+
}, {
225+
.id = SNOR_ID(0xef, 0x40, 0x20),
226+
.name = "w25q512jvq",
227+
.size = SZ_64M,
228+
.no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
229+
},
141230
};
142231

143232
/**

0 commit comments

Comments
 (0)