@ -45,136 +45,136 @@
const struct spi_flash_info spi_flash_ids [ ] = {
# ifdef CONFIG_SPI_FLASH_ATMEL /* ATMEL */
{ " AT45DB011D " , INFO ( 0x1f2200 , 0x0 , 64 * 1024 , 4 , SECT_4K ) } ,
{ " AT45DB021D " , INFO ( 0x1f2300 , 0x0 , 64 * 1024 , 8 , SECT_4K ) } ,
{ " AT45DB041D " , INFO ( 0x1f2400 , 0x0 , 64 * 1024 , 8 , SECT_4K ) } ,
{ " AT45DB081D " , INFO ( 0x1f2500 , 0x0 , 64 * 1024 , 16 , SECT_4K ) } ,
{ " AT45DB161D " , INFO ( 0x1f2600 , 0x0 , 64 * 1024 , 32 , SECT_4K ) } ,
{ " AT45DB321D " , INFO ( 0x1f2700 , 0x0 , 64 * 1024 , 64 , SECT_4K ) } ,
{ " AT45DB641D " , INFO ( 0x1f2800 , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " AT25DF321A " , INFO ( 0x1f4701 , 0x0 , 64 * 1024 , 64 , SECT_4K ) } ,
{ " AT25DF 321" , INFO ( 0x1f4700 , 0x0 , 64 * 1024 , 64 , SECT_4K ) } ,
{ " AT26DF081A " , INFO ( 0x1f4501 , 0x0 , 64 * 1024 , 16 , SECT_4K ) } ,
{ " at45db011d " , INFO ( 0x1f2200 , 0x0 , 64 * 1024 , 4 , SECT_4K ) } ,
{ " at45db021d " , INFO ( 0x1f2300 , 0x0 , 64 * 1024 , 8 , SECT_4K ) } ,
{ " at45db041d " , INFO ( 0x1f2400 , 0x0 , 64 * 1024 , 8 , SECT_4K ) } ,
{ " at45db081d " , INFO ( 0x1f2500 , 0x0 , 64 * 1024 , 16 , SECT_4K ) } ,
{ " at45db161d " , INFO ( 0x1f2600 , 0x0 , 64 * 1024 , 32 , SECT_4K ) } ,
{ " at45db321d " , INFO ( 0x1f2700 , 0x0 , 64 * 1024 , 64 , SECT_4K ) } ,
{ " at45db641d " , INFO ( 0x1f2800 , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " at25df321a " , INFO ( 0x1f4701 , 0x0 , 64 * 1024 , 64 , SECT_4K ) } ,
{ " at25df 321" , INFO ( 0x1f4700 , 0x0 , 64 * 1024 , 64 , SECT_4K ) } ,
{ " at26df081a " , INFO ( 0x1f4501 , 0x0 , 64 * 1024 , 16 , SECT_4K ) } ,
# endif
# ifdef CONFIG_SPI_FLASH_EON /* EON */
{ " EN25Q32B " , INFO ( 0x1c3016 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " EN25Q 64" , INFO ( 0x1c3017 , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " EN25Q128B " , INFO ( 0x1c3018 , 0x0 , 64 * 1024 , 256 , 0 ) } ,
{ " EN25S 64" , INFO ( 0x1c3817 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " en25q32b " , INFO ( 0x1c3016 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " en25q 64" , INFO ( 0x1c3017 , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " en25q128b " , INFO ( 0x1c3018 , 0x0 , 64 * 1024 , 256 , 0 ) } ,
{ " en25s 64" , INFO ( 0x1c3817 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
# endif
# ifdef CONFIG_SPI_FLASH_GIGADEVICE /* GIGADEVICE */
{ " GD25Q64B " , INFO ( 0xc84017 , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " GD25LQ 32" , INFO ( 0xc86016 , 0x0 , 64 * 1024 , 64 , SECT_4K ) } ,
{ " gd25q64b " , INFO ( 0xc84017 , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " gd25lq 32" , INFO ( 0xc86016 , 0x0 , 64 * 1024 , 64 , SECT_4K ) } ,
# endif
# ifdef CONFIG_SPI_FLASH_ISSI /* ISSI */
{ " IS25LP 032" , INFO ( 0x9d6016 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " IS25LP 064" , INFO ( 0x9d6017 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " IS25LP 128" , INFO ( 0x9d6018 , 0x0 , 64 * 1024 , 256 , 0 ) } ,
{ " is25lp 032" , INFO ( 0x9d6016 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " is25lp 064" , INFO ( 0x9d6017 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " is25lp 128" , INFO ( 0x9d6018 , 0x0 , 64 * 1024 , 256 , 0 ) } ,
# endif
# ifdef CONFIG_SPI_FLASH_MACRONIX /* MACRONIX */
{ " MX25L2006E " , INFO ( 0xc22012 , 0x0 , 64 * 1024 , 4 , 0 ) } ,
{ " MX25L 4005" , INFO ( 0xc22013 , 0x0 , 64 * 1024 , 8 , 0 ) } ,
{ " MX25L 8005" , INFO ( 0xc22014 , 0x0 , 64 * 1024 , 16 , 0 ) } ,
{ " MX25L1605D " , INFO ( 0xc22015 , 0x0 , 64 * 1024 , 32 , 0 ) } ,
{ " MX25L3205D " , INFO ( 0xc22016 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " MX25L6405D " , INFO ( 0xc22017 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " MX25L 12805" , INFO ( 0xc22018 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " MX25L25635F " , INFO ( 0xc22019 , 0x0 , 64 * 1024 , 512 , RD_FULL | WR_QPP ) } ,
{ " MX25L51235F " , INFO ( 0xc2201a , 0x0 , 64 * 1024 , 1024 , RD_FULL | WR_QPP ) } ,
{ " MX25L12855E " , INFO ( 0xc22618 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " mx25l2006e " , INFO ( 0xc22012 , 0x0 , 64 * 1024 , 4 , 0 ) } ,
{ " mx25l 4005" , INFO ( 0xc22013 , 0x0 , 64 * 1024 , 8 , 0 ) } ,
{ " mx25l 8005" , INFO ( 0xc22014 , 0x0 , 64 * 1024 , 16 , 0 ) } ,
{ " mx25l1605d " , INFO ( 0xc22015 , 0x0 , 64 * 1024 , 32 , 0 ) } ,
{ " mx25l3205d " , INFO ( 0xc22016 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " mx25l6405d " , INFO ( 0xc22017 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " mx25l 12805" , INFO ( 0xc22018 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " mx25l25635f " , INFO ( 0xc22019 , 0x0 , 64 * 1024 , 512 , RD_FULL | WR_QPP ) } ,
{ " mx25l51235f " , INFO ( 0xc2201a , 0x0 , 64 * 1024 , 1024 , RD_FULL | WR_QPP ) } ,
{ " mx25l12855e " , INFO ( 0xc22618 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
# endif
# ifdef CONFIG_SPI_FLASH_SPANSION /* SPANSION */
{ " S25FL008A " , INFO ( 0x010213 , 0x0 , 64 * 1024 , 16 , 0 ) } ,
{ " S25FL016A " , INFO ( 0x010214 , 0x0 , 64 * 1024 , 32 , 0 ) } ,
{ " S25FL032A " , INFO ( 0x010215 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " S25FL064A " , INFO ( 0x010216 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " S25FL116K " , INFO ( 0x014015 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " S25FL164K " , INFO ( 0x014017 , 0x0140 , 64 * 1024 , 128 , 0 ) } ,
{ " S25FL128P_256K " , INFO ( 0x012018 , 0x0300 , 256 * 1024 , 64 , RD_FULL | WR_QPP ) } ,
{ " S25FL128P_64K " , INFO ( 0x012018 , 0x0301 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " S25FL032P " , INFO ( 0x010215 , 0x4d00 , 64 * 1024 , 64 , RD_FULL | WR_QPP ) } ,
{ " S25FL064P " , INFO ( 0x010216 , 0x4d00 , 64 * 1024 , 128 , RD_FULL | WR_QPP ) } ,
{ " S25FL128S_256K " , INFO ( 0x012018 , 0x4d00 , 256 * 1024 , 64 , RD_FULL | WR_QPP ) } ,
{ " S25FL128S_64K " , INFO ( 0x012018 , 0x4d01 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " S25FL256S_256K " , INFO ( 0x010219 , 0x4d00 , 256 * 1024 , 128 , RD_FULL | WR_QPP ) } ,
{ " S25FL256S_64K " , INFO ( 0x010219 , 0x4d01 , 64 * 1024 , 512 , RD_FULL | WR_QPP ) } ,
{ " S25FS256S_64K " , INFO6 ( 0x010219 , 0x4d0181 , 64 * 1024 , 512 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " S25FS512S " , INFO ( 0x010220 , 0x4D00 , 128 * 1024 , 512 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " S25FL512S_256K " , INFO ( 0x010220 , 0x4d00 , 256 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " S25FL512S_64K " , INFO ( 0x010220 , 0x4d01 , 64 * 1024 , 1024 , RD_FULL | WR_QPP ) } ,
{ " S25FL512S_512K " , INFO ( 0x010220 , 0x4f00 , 256 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " s25fl008a " , INFO ( 0x010213 , 0x0 , 64 * 1024 , 16 , 0 ) } ,
{ " s25fl016a " , INFO ( 0x010214 , 0x0 , 64 * 1024 , 32 , 0 ) } ,
{ " s25fl032a " , INFO ( 0x010215 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " s25fl064a " , INFO ( 0x010216 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " s25fl116k " , INFO ( 0x014015 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " s25fl164k " , INFO ( 0x014017 , 0x0140 , 64 * 1024 , 128 , 0 ) } ,
{ " s25fl128p_256k " , INFO ( 0x012018 , 0x0300 , 256 * 1024 , 64 , RD_FULL | WR_QPP ) } ,
{ " s25fl128p_64k " , INFO ( 0x012018 , 0x0301 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " s25fl032p " , INFO ( 0x010215 , 0x4d00 , 64 * 1024 , 64 , RD_FULL | WR_QPP ) } ,
{ " s25fl064p " , INFO ( 0x010216 , 0x4d00 , 64 * 1024 , 128 , RD_FULL | WR_QPP ) } ,
{ " s25fl128s_256k " , INFO ( 0x012018 , 0x4d00 , 256 * 1024 , 64 , RD_FULL | WR_QPP ) } ,
{ " s25fl128s_64k " , INFO ( 0x012018 , 0x4d01 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " s25fl256s_256k " , INFO ( 0x010219 , 0x4d00 , 256 * 1024 , 128 , RD_FULL | WR_QPP ) } ,
{ " s25fl256s_64k " , INFO ( 0x010219 , 0x4d01 , 64 * 1024 , 512 , RD_FULL | WR_QPP ) } ,
{ " s25fs256s_64k " , INFO6 ( 0x010219 , 0x4d0181 , 64 * 1024 , 512 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " s25fs512s " , INFO ( 0x010220 , 0x4D00 , 128 * 1024 , 512 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " s25fl512s_256k " , INFO ( 0x010220 , 0x4d00 , 256 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " s25fl512s_64k " , INFO ( 0x010220 , 0x4d01 , 64 * 1024 , 1024 , RD_FULL | WR_QPP ) } ,
{ " s25fl512s_512k " , INFO ( 0x010220 , 0x4f00 , 256 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
# endif
# ifdef CONFIG_SPI_FLASH_STMICRO /* STMICRO */
{ " M25P 10" , INFO ( 0x202011 , 0x0 , 32 * 1024 , 4 , 0 ) } ,
{ " M25P 20" , INFO ( 0x202012 , 0x0 , 64 * 1024 , 4 , 0 ) } ,
{ " M25P 40" , INFO ( 0x202013 , 0x0 , 64 * 1024 , 8 , 0 ) } ,
{ " M25P 80" , INFO ( 0x202014 , 0x0 , 64 * 1024 , 16 , 0 ) } ,
{ " M25P 16" , INFO ( 0x202015 , 0x0 , 64 * 1024 , 32 , 0 ) } ,
{ " M25P E16" , INFO ( 0x208015 , 0x1000 , 64 * 1024 , 32 , 0 ) } ,
{ " M25P X16" , INFO ( 0x207115 , 0x1000 , 64 * 1024 , 32 , RD_QUAD | RD_DUAL ) } ,
{ " M25P 32" , INFO ( 0x202016 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " M25P 64" , INFO ( 0x202017 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " M25P 128" , INFO ( 0x202018 , 0x0 , 256 * 1024 , 64 , 0 ) } ,
{ " M25P X64" , INFO ( 0x207117 , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " N25Q016A " , INFO ( 0x20bb15 , 0x0 , 64 * 1024 , 32 , SECT_4K ) } ,
{ " N25Q 32" , INFO ( 0x20ba16 , 0x0 , 64 * 1024 , 64 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " N25Q32A " , INFO ( 0x20bb16 , 0x0 , 64 * 1024 , 64 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " N25Q 64" , INFO ( 0x20ba17 , 0x0 , 64 * 1024 , 128 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " N25Q64A " , INFO ( 0x20bb17 , 0x0 , 64 * 1024 , 128 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " N25Q 128" , INFO ( 0x20ba18 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " N25Q128A " , INFO ( 0x20bb18 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " N25Q 256" , INFO ( 0x20ba19 , 0x0 , 64 * 1024 , 512 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " N25Q256A " , INFO ( 0x20bb19 , 0x0 , 64 * 1024 , 512 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " N25Q 512" , INFO ( 0x20ba20 , 0x0 , 64 * 1024 , 1024 , RD_FULL | WR_QPP | E_FSR | SECT_4K ) } ,
{ " N25Q512A " , INFO ( 0x20bb20 , 0x0 , 64 * 1024 , 1024 , RD_FULL | WR_QPP | E_FSR | SECT_4K ) } ,
{ " N25Q 1024" , INFO ( 0x20ba21 , 0x0 , 64 * 1024 , 2048 , RD_FULL | WR_QPP | E_FSR | SECT_4K ) } ,
{ " N25Q1024A " , INFO ( 0x20bb21 , 0x0 , 64 * 1024 , 2048 , RD_FULL | WR_QPP | E_FSR | SECT_4K ) } ,
{ " m25p 10" , INFO ( 0x202011 , 0x0 , 32 * 1024 , 4 , 0 ) } ,
{ " m25p 20" , INFO ( 0x202012 , 0x0 , 64 * 1024 , 4 , 0 ) } ,
{ " m25p 40" , INFO ( 0x202013 , 0x0 , 64 * 1024 , 8 , 0 ) } ,
{ " m25p 80" , INFO ( 0x202014 , 0x0 , 64 * 1024 , 16 , 0 ) } ,
{ " m25p 16" , INFO ( 0x202015 , 0x0 , 64 * 1024 , 32 , 0 ) } ,
{ " m25p E16" , INFO ( 0x208015 , 0x1000 , 64 * 1024 , 32 , 0 ) } ,
{ " m25p X16" , INFO ( 0x207115 , 0x1000 , 64 * 1024 , 32 , RD_QUAD | RD_DUAL ) } ,
{ " m25p 32" , INFO ( 0x202016 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " m25p 64" , INFO ( 0x202017 , 0x0 , 64 * 1024 , 128 , 0 ) } ,
{ " m25p 128" , INFO ( 0x202018 , 0x0 , 256 * 1024 , 64 , 0 ) } ,
{ " m25p X64" , INFO ( 0x207117 , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " n25q016a " , INFO ( 0x20bb15 , 0x0 , 64 * 1024 , 32 , SECT_4K ) } ,
{ " n25q 32" , INFO ( 0x20ba16 , 0x0 , 64 * 1024 , 64 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " n25q32a " , INFO ( 0x20bb16 , 0x0 , 64 * 1024 , 64 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " n25q 64" , INFO ( 0x20ba17 , 0x0 , 64 * 1024 , 128 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " n25q64a " , INFO ( 0x20bb17 , 0x0 , 64 * 1024 , 128 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " n25q 128" , INFO ( 0x20ba18 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " n25q128a " , INFO ( 0x20bb18 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP ) } ,
{ " n25q 256" , INFO ( 0x20ba19 , 0x0 , 64 * 1024 , 512 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " n25q256a " , INFO ( 0x20bb19 , 0x0 , 64 * 1024 , 512 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " n25q 512" , INFO ( 0x20ba20 , 0x0 , 64 * 1024 , 1024 , RD_FULL | WR_QPP | E_FSR | SECT_4K ) } ,
{ " n25q512a " , INFO ( 0x20bb20 , 0x0 , 64 * 1024 , 1024 , RD_FULL | WR_QPP | E_FSR | SECT_4K ) } ,
{ " n25q 1024" , INFO ( 0x20ba21 , 0x0 , 64 * 1024 , 2048 , RD_FULL | WR_QPP | E_FSR | SECT_4K ) } ,
{ " n25q1024a " , INFO ( 0x20bb21 , 0x0 , 64 * 1024 , 2048 , RD_FULL | WR_QPP | E_FSR | SECT_4K ) } ,
# endif
# ifdef CONFIG_SPI_FLASH_SST /* SST */
{ " SST25VF040B " , INFO ( 0xbf258d , 0x0 , 64 * 1024 , 8 , SECT_4K | SST_WR ) } ,
{ " SST25VF080B " , INFO ( 0xbf258e , 0x0 , 64 * 1024 , 16 , SECT_4K | SST_WR ) } ,
{ " SST25VF016B " , INFO ( 0xbf2541 , 0x0 , 64 * 1024 , 32 , SECT_4K | SST_WR ) } ,
{ " SST25VF032B " , INFO ( 0xbf254a , 0x0 , 64 * 1024 , 64 , SECT_4K | SST_WR ) } ,
{ " SST25VF064C " , INFO ( 0xbf254b , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " SST25WF 512" , INFO ( 0xbf2501 , 0x0 , 64 * 1024 , 1 , SECT_4K | SST_WR ) } ,
{ " SST25WF 010" , INFO ( 0xbf2502 , 0x0 , 64 * 1024 , 2 , SECT_4K | SST_WR ) } ,
{ " SST25WF 020" , INFO ( 0xbf2503 , 0x0 , 64 * 1024 , 4 , SECT_4K | SST_WR ) } ,
{ " SST25WF 040" , INFO ( 0xbf2504 , 0x0 , 64 * 1024 , 8 , SECT_4K | SST_WR ) } ,
{ " SST25WF040B " , INFO ( 0x621613 , 0x0 , 64 * 1024 , 8 , SECT_4K ) } ,
{ " SST25WF 080" , INFO ( 0xbf2505 , 0x0 , 64 * 1024 , 16 , SECT_4K | SST_WR ) } ,
{ " sst25vf040b " , INFO ( 0xbf258d , 0x0 , 64 * 1024 , 8 , SECT_4K | SST_WR ) } ,
{ " sst25vf080b " , INFO ( 0xbf258e , 0x0 , 64 * 1024 , 16 , SECT_4K | SST_WR ) } ,
{ " sst25vf016b " , INFO ( 0xbf2541 , 0x0 , 64 * 1024 , 32 , SECT_4K | SST_WR ) } ,
{ " sst25vf032b " , INFO ( 0xbf254a , 0x0 , 64 * 1024 , 64 , SECT_4K | SST_WR ) } ,
{ " sst25vf064c " , INFO ( 0xbf254b , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " sst25wf 512" , INFO ( 0xbf2501 , 0x0 , 64 * 1024 , 1 , SECT_4K | SST_WR ) } ,
{ " sst25wf 010" , INFO ( 0xbf2502 , 0x0 , 64 * 1024 , 2 , SECT_4K | SST_WR ) } ,
{ " sst25wf 020" , INFO ( 0xbf2503 , 0x0 , 64 * 1024 , 4 , SECT_4K | SST_WR ) } ,
{ " sst25wf 040" , INFO ( 0xbf2504 , 0x0 , 64 * 1024 , 8 , SECT_4K | SST_WR ) } ,
{ " sst25wf040b " , INFO ( 0x621613 , 0x0 , 64 * 1024 , 8 , SECT_4K ) } ,
{ " sst25wf 080" , INFO ( 0xbf2505 , 0x0 , 64 * 1024 , 16 , SECT_4K | SST_WR ) } ,
# endif
# ifdef CONFIG_SPI_FLASH_WINBOND /* WINBOND */
{ " W25P 80" , INFO ( 0xef2014 , 0x0 , 64 * 1024 , 16 , 0 ) } ,
{ " W25P 16" , INFO ( 0xef2015 , 0x0 , 64 * 1024 , 32 , 0 ) } ,
{ " W25P 32" , INFO ( 0xef2016 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " W25X 40" , INFO ( 0xef3013 , 0x0 , 64 * 1024 , 8 , SECT_4K ) } ,
{ " W25X 16" , INFO ( 0xef3015 , 0x0 , 64 * 1024 , 32 , SECT_4K ) } ,
{ " W25X 32" , INFO ( 0xef3016 , 0x0 , 64 * 1024 , 64 , SECT_4K ) } ,
{ " W25X 64" , INFO ( 0xef3017 , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " W25Q80BL " , INFO ( 0xef4014 , 0x0 , 64 * 1024 , 16 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " W25Q16CL " , INFO ( 0xef4015 , 0x0 , 64 * 1024 , 32 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " W25Q32BV " , INFO ( 0xef4016 , 0x0 , 64 * 1024 , 64 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " W25Q64CV " , INFO ( 0xef4017 , 0x0 , 64 * 1024 , 128 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " W25Q128BV " , INFO ( 0xef4018 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " W25Q 256" , INFO ( 0xef4019 , 0x0 , 64 * 1024 , 512 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " W25Q80BW " , INFO ( 0xef5014 , 0x0 , 64 * 1024 , 16 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " W25Q16DW " , INFO ( 0xef6015 , 0x0 , 64 * 1024 , 32 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " W25Q32DW " , INFO ( 0xef6016 , 0x0 , 64 * 1024 , 64 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " W25Q64DW " , INFO ( 0xef6017 , 0x0 , 64 * 1024 , 128 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " W25Q128FW " , INFO ( 0xef6018 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25p 80" , INFO ( 0xef2014 , 0x0 , 64 * 1024 , 16 , 0 ) } ,
{ " w25p 16" , INFO ( 0xef2015 , 0x0 , 64 * 1024 , 32 , 0 ) } ,
{ " w25p 32" , INFO ( 0xef2016 , 0x0 , 64 * 1024 , 64 , 0 ) } ,
{ " w25x 40" , INFO ( 0xef3013 , 0x0 , 64 * 1024 , 8 , SECT_4K ) } ,
{ " w25x 16" , INFO ( 0xef3015 , 0x0 , 64 * 1024 , 32 , SECT_4K ) } ,
{ " w25x 32" , INFO ( 0xef3016 , 0x0 , 64 * 1024 , 64 , SECT_4K ) } ,
{ " w25x 64" , INFO ( 0xef3017 , 0x0 , 64 * 1024 , 128 , SECT_4K ) } ,
{ " w25q80bl " , INFO ( 0xef4014 , 0x0 , 64 * 1024 , 16 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25q16cl " , INFO ( 0xef4015 , 0x0 , 64 * 1024 , 32 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25q32bv " , INFO ( 0xef4016 , 0x0 , 64 * 1024 , 64 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25q64cv " , INFO ( 0xef4017 , 0x0 , 64 * 1024 , 128 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25q128bv " , INFO ( 0xef4018 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25q 256" , INFO ( 0xef4019 , 0x0 , 64 * 1024 , 512 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25q80bw " , INFO ( 0xef5014 , 0x0 , 64 * 1024 , 16 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25q16dw " , INFO ( 0xef6015 , 0x0 , 64 * 1024 , 32 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25q32dw " , INFO ( 0xef6016 , 0x0 , 64 * 1024 , 64 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25q64dw " , INFO ( 0xef6017 , 0x0 , 64 * 1024 , 128 , RD_FULL | WR_QPP | SECT_4K ) } ,
{ " w25q128fw " , INFO ( 0xef6018 , 0x0 , 64 * 1024 , 256 , RD_FULL | WR_QPP | SECT_4K ) } ,
# endif
{ } , /* Empty entry to terminate the list */
/*
* Note :
* Below paired flash devices has similar spi_flash params .
* ( S25FL129P_64K , S25FL128S_64K )
* ( W25Q80BL , W25Q80BV )
* ( W25Q16CL , W25Q16DV )
* ( W25Q32BV , W25Q32FV_SPI )
* ( W25Q64CV , W25Q64FV_SPI )
* ( W25Q128BV , W25Q128FV_SPI )
* ( W25Q32DW , W25Q32FV_QPI )
* ( W25Q64DW , W25Q64FV_QPI )
* ( W25Q128FW , W25Q128FV_QPI )
* ( s25fl129p_64k , s25fl128s_64k )
* ( w25q80bl , w25q80bv )
* ( w25q16cl , w25q16dv )
* ( w25q32bv , w25q32fv_spi )
* ( w25q64cv , w25q64fv_spi )
* ( w25q128bv , w25q128fv_spi )
* ( w25q32dw , w25q32fv_qpi )
* ( w25q64dw , w25q64fv_qpi )
* ( w25q128fw , w25q128fv_qpi )
*/
} ;