{&READ_STD(0, INFINITE, 0), 0}, {&WRITE_STD(0, 256, 0), 0}, {&ERASE_SECTOR(0, SPI_IF_ERASE_SECTOR, 0), 0} }, { "S25FL064P", {0x01, 0x02, 0x16, 0x4d}, 4, (_64K * 128), _64K, 3, { &READ_STD(0, INFINITE, 40), &READ_FAST(1, INFINITE, 104), &READ_DUAL(1, INFINITE, 80), &READ_QUAD(1, INFINITE, 80), 0 }, {&WRITE_STD(0, 256, 104), &WRITE_QUAD(0, 256, 80), 0}, {&ERASE_SECTOR(0, SPI_IF_ERASE_SECTOR, 104), 0} }, { "s25sl064a", {0x01, 0x02, 0x16}, 3, (_64K * 128), _64K, 3, {&READ_STD(0, INFINITE, 0), 0}, {&WRITE_STD(0, 256, 0), 0}, {&ERASE_SECTOR(0, SPI_IF_ERASE_SECTOR, 0), 0} }, /* Spansion */ { "S25FL032P", {0x01, 0x02, 0x15, 0x4d}, 4, (_64K * 64), _64K, 3, { &READ_STD(0, INFINITE, 40),
{ "N25Q032", {0x20, 0xba, 0x16}, 3, (_64K * 64), _64K, 3, { &READ_STD(0, INFINITE, 32/*54*/), &READ_FAST(1, INFINITE, 64/*108*/), &READ_DUAL(1, INFINITE, 64/*108*/), &READ_QUAD(1, INFINITE, 64/*108*/), &READ_DUAL_ADDR(2, INFINITE, 64/*108*/), &READ_QUAD_ADDR(5, INFINITE, 64/*108*/), 0 }, { &WRITE_STD(0, 256, 64/*108*/), &WRITE_DUAL(0, 256, 64/*108*/), &WRITE_QUAD(0, 256, 64/*108*/), &WRITE_DUAL_ADDR(0, 256, 64/*108*/), &WRITE_QUAD_ADDR(0, 256, 64/*108*/), 0 }, { &ERASE_SECTOR_64K(0, _64K, 64), 0 }, &spi_driver_general, }, { "N25Q064", {0x20, 0xba, 0x17}, 3, (_64K * 128), _64K, 3,
{ "S25FL129P1/S25FL128S", {0x01, 0x20, 0x18, 0x4d, 0x01}, 5, (_64K * 256), _64K, 3, { &READ_STD(0, INFINITE, 40), &READ_FAST(1, INFINITE, 104), &READ_DUAL(1, INFINITE, 64), &READ_DUAL_ADDR(1, INFINITE, 80), &READ_QUAD(1, INFINITE, 80), &READ_QUAD_ADDR(3, INFINITE, 80), 0 }, { &WRITE_STD(0, 256, 104), &WRITE_QUAD(0, 256, 80), 0 }, { &ERASE_SECTOR_64K(0, _64K, 104), 0 }, &spi_driver_general, }, { "S25FL256S", {0x01, 0x02, 0x19, 0x4d, 0x01}, 5, _32M, _64K, 4, { &READ_STD(0, INFINITE, 40), &READ_FAST(1, INFINITE, 104),