|
8 | 8 |
|
9 | 9 | #include "core.h" |
10 | 10 |
|
| 11 | +/* flash_info mfr_flag. Used to clear sticky prorietary SR bits. */ |
| 12 | +#define USE_CLSR BIT(0) |
| 13 | + |
11 | 14 | #define SPINOR_OP_CLSR 0x30 /* Clear status register 1 */ |
12 | 15 | #define SPINOR_OP_RD_ANY_REG 0x65 /* Read any register */ |
13 | 16 | #define SPINOR_OP_WR_ANY_REG 0x71 /* Write any register */ |
@@ -212,43 +215,53 @@ static const struct flash_info spansion_nor_parts[] = { |
212 | 215 | { "s25sl064p", INFO(0x010216, 0x4d00, 64 * 1024, 128) |
213 | 216 | NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, |
214 | 217 | { "s25fl128s0", INFO6(0x012018, 0x4d0080, 256 * 1024, 64) |
215 | | - FLAGS(USE_CLSR) |
216 | | - NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, |
| 218 | + NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| 219 | + MFR_FLAGS(USE_CLSR) |
| 220 | + }, |
217 | 221 | { "s25fl128s1", INFO6(0x012018, 0x4d0180, 64 * 1024, 256) |
218 | | - FLAGS(USE_CLSR) |
219 | | - NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, |
| 222 | + NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| 223 | + MFR_FLAGS(USE_CLSR) |
| 224 | + }, |
220 | 225 | { "s25fl256s0", INFO6(0x010219, 0x4d0080, 256 * 1024, 128) |
221 | | - FLAGS(USE_CLSR) |
222 | 226 | NO_SFDP_FLAGS(SPI_NOR_SKIP_SFDP | SPI_NOR_DUAL_READ | |
223 | | - SPI_NOR_QUAD_READ) }, |
| 227 | + SPI_NOR_QUAD_READ) |
| 228 | + MFR_FLAGS(USE_CLSR) |
| 229 | + }, |
224 | 230 | { "s25fl256s1", INFO6(0x010219, 0x4d0180, 64 * 1024, 512) |
225 | | - FLAGS(USE_CLSR) |
226 | | - NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, |
| 231 | + NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| 232 | + MFR_FLAGS(USE_CLSR) |
| 233 | + }, |
227 | 234 | { "s25fl512s", INFO6(0x010220, 0x4d0080, 256 * 1024, 256) |
228 | | - FLAGS(SPI_NOR_HAS_LOCK | USE_CLSR) |
229 | | - NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, |
| 235 | + FLAGS(SPI_NOR_HAS_LOCK) |
| 236 | + NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| 237 | + MFR_FLAGS(USE_CLSR) |
| 238 | + }, |
230 | 239 | { "s25fs128s1", INFO6(0x012018, 0x4d0181, 64 * 1024, 256) |
231 | | - FLAGS(USE_CLSR) |
232 | 240 | NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| 241 | + MFR_FLAGS(USE_CLSR) |
233 | 242 | .fixups = &s25fs_s_nor_fixups, }, |
234 | 243 | { "s25fs256s0", INFO6(0x010219, 0x4d0081, 256 * 1024, 128) |
235 | | - FLAGS(USE_CLSR) |
236 | | - NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, |
| 244 | + NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| 245 | + MFR_FLAGS(USE_CLSR) |
| 246 | + }, |
237 | 247 | { "s25fs256s1", INFO6(0x010219, 0x4d0181, 64 * 1024, 512) |
238 | | - FLAGS(USE_CLSR) |
239 | | - NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, |
| 248 | + NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| 249 | + MFR_FLAGS(USE_CLSR) |
| 250 | + }, |
240 | 251 | { "s25fs512s", INFO6(0x010220, 0x4d0081, 256 * 1024, 256) |
241 | | - FLAGS(USE_CLSR) |
242 | 252 | NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| 253 | + MFR_FLAGS(USE_CLSR) |
243 | 254 | .fixups = &s25fs_s_nor_fixups, }, |
244 | 255 | { "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64) }, |
245 | 256 | { "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256) }, |
246 | 257 | { "s25fl129p0", INFO(0x012018, 0x4d00, 256 * 1024, 64) |
247 | | - FLAGS(USE_CLSR) |
248 | | - NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, |
| 258 | + NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| 259 | + MFR_FLAGS(USE_CLSR) |
| 260 | + }, |
249 | 261 | { "s25fl129p1", INFO(0x012018, 0x4d01, 64 * 1024, 256) |
250 | | - FLAGS(USE_CLSR) |
251 | | - NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, |
| 262 | + NO_SFDP_FLAGS(SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) |
| 263 | + MFR_FLAGS(USE_CLSR) |
| 264 | + }, |
252 | 265 | { "s25sl004a", INFO(0x010212, 0, 64 * 1024, 8) }, |
253 | 266 | { "s25sl008a", INFO(0x010213, 0, 64 * 1024, 16) }, |
254 | 267 | { "s25sl016a", INFO(0x010214, 0, 64 * 1024, 32) }, |
@@ -370,7 +383,7 @@ static void spansion_nor_late_init(struct spi_nor *nor) |
370 | 383 | nor->mtd.erasesize = nor->info->sector_size; |
371 | 384 | } |
372 | 385 |
|
373 | | - if (nor->flags & SNOR_F_USE_CLSR) |
| 386 | + if (nor->info->mfr_flags & USE_CLSR) |
374 | 387 | nor->params->ready = spi_nor_sr_ready_and_clear; |
375 | 388 | } |
376 | 389 |
|
|
0 commit comments