@@ -102,24 +102,27 @@ const struct spi_flash_params spi_flash_params_table[] = {
{"SST25WF080", 0xbf2505, 0x0, 4 * 1024, 256, RD_NORM, SECT_4K | SST_WR},
#endif
#ifdef CONFIG_SPI_FLASH_WINBOND /* WINBOND */
- {"W25P80", 0xef2014, 0x0, 64 * 1024, 16, RD_NORM, 0},
- {"W25P16", 0xef2015, 0x0, 64 * 1024, 32, RD_NORM, 0},
- {"W25P32", 0xef2016, 0x0, 64 * 1024, 64, RD_NORM, 0},
- {"W25X40", 0xef3013, 0x0, 64 * 1024, 8, RD_NORM, SECT_4K},
- {"W25X16", 0xef3015, 0x0, 64 * 1024, 32, RD_NORM, SECT_4K},
- {"W25X32", 0xef3016, 0x0, 64 * 1024, 64, RD_NORM, SECT_4K},
- {"W25X64", 0xef3017, 0x0, 64 * 1024, 128, RD_NORM, SECT_4K},
- {"W25Q80BL", 0xef4014, 0x0, 64 * 1024, 16, RD_FULL, WR_QPP | SECT_4K},
- {"W25Q16CL", 0xef4015, 0x0, 64 * 1024, 32, RD_FULL, WR_QPP | SECT_4K},
- {"W25Q32BV", 0xef4016, 0x0, 64 * 1024, 64, RD_FULL, WR_QPP | SECT_4K},
- {"W25Q64CV", 0xef4017, 0x0, 64 * 1024, 128, RD_FULL, WR_QPP | SECT_4K},
- {"W25Q128BV", 0xef4018, 0x0, 64 * 1024, 256, RD_FULL, WR_QPP | SECT_4K},
- {"W25Q256", 0xef4019, 0x0, 64 * 1024, 512, RD_FULL, WR_QPP | SECT_4K},
- {"W25Q80BW", 0xef5014, 0x0, 64 * 1024, 16, RD_FULL, WR_QPP | SECT_4K},
- {"W25Q16DW", 0xef6015, 0x0, 64 * 1024, 32, RD_FULL, WR_QPP | SECT_4K},
- {"W25Q32DW", 0xef6016, 0x0, 64 * 1024, 64, RD_FULL, WR_QPP | SECT_4K},
- {"W25Q64DW", 0xef6017, 0x0, 64 * 1024, 128, RD_FULL, WR_QPP | SECT_4K},
- {"W25Q128FW", 0xef6018, 0x0, 64 * 1024, 256, RD_FULL, WR_QPP | SECT_4K},
+ {"W25P80", 0xef2014, 0x0, 64 * 1024, 16, RD_NORM, 0},
+ {"W25P16", 0xef2015, 0x0, 64 * 1024, 32, RD_NORM, 0},
+ {"W25P32", 0xef2016, 0x0, 64 * 1024, 64, RD_NORM, 0},
+ {"W25X10", 0xef3011, 0x0, 4 * 1024, 32, RD_NORM | DUAL_OUTPUT_FAST, SECT_4K},
+ {"W25X20", 0xef3012, 0x0, 4 * 1024, 64, RD_NORM | DUAL_OUTPUT_FAST, SECT_4K},
+ {"W25X40", 0xef3013, 0x0, 4 * 1024, 128, RD_NORM | DUAL_OUTPUT_FAST, SECT_4K},
+ {"W25X80", 0xef3014, 0x0, 4 * 1024, 256, RD_NORM | DUAL_OUTPUT_FAST, SECT_4K},
+ {"W25X16", 0xef3015, 0x0, 4 * 1024, 512, RD_NORM | DUAL_OUTPUT_FAST, SECT_4K},
+ {"W25X32", 0xef3016, 0x0, 4 * 1024, 1024, RD_NORM | DUAL_OUTPUT_FAST, SECT_4K},
+ {"W25X64", 0xef3017, 0x0, 4 * 1024, 2048, RD_NORM | DUAL_OUTPUT_FAST, SECT_4K},
+ {"W25Q80BL", 0xef4014, 0x0, 4 * 1024, 256, RD_FULL, WR_QPP | SECT_4K},
+ {"W25Q16CL", 0xef4015, 0x0, 4 * 1024, 512, RD_FULL, WR_QPP | SECT_4K},
+ {"W25Q32BV", 0xef4016, 0x0, 4 * 1024, 1024, RD_FULL, WR_QPP | SECT_4K},
+ {"W25Q64CV", 0xef4017, 0x0, 4 * 1024, 2048, RD_FULL, WR_QPP | SECT_4K},
+ {"W25Q128BV", 0xef4018, 0x0, 4 * 1024, 4096, RD_FULL, WR_QPP | SECT_4K},
+ {"W25Q256", 0xef4019, 0x0, 4 * 1024, 8192, RD_FULL, WR_QPP | SECT_4K},
+ {"W25Q80BW", 0xef5014, 0x0, 4 * 1024, 256, RD_FULL, WR_QPP | SECT_4K},
+ {"W25Q16DW", 0xef6015, 0x0, 4 * 1024, 512, RD_FULL, WR_QPP | SECT_4K},
+ {"W25Q32DW", 0xef6016, 0x0, 4 * 1024, 1024, RD_FULL, WR_QPP | SECT_4K},
+ {"W25Q64DW", 0xef6017, 0x0, 4 * 1024, 2048, RD_FULL, WR_QPP | SECT_4K},
+ {"W25Q128FW", 0xef6018, 0x0, 4 * 1024, 4096, RD_FULL, WR_QPP | SECT_4K},
#endif
{}, /* Empty entry to terminate the list */
/*
Update supported read commands for Winbond flash parts per datasheet. Also update flash sector size to 4KiB as long as flash supports sector erase (20h) command. Add W25X10, W25X20, W25X80 params per datasheet. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> --- drivers/mtd/spi/sf_params.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-)