diff options
Diffstat (limited to 'drivers/mtd/spi/winbond.c')
-rw-r--r-- | drivers/mtd/spi/winbond.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c index 27162091c5..8457808492 100644 --- a/drivers/mtd/spi/winbond.c +++ b/drivers/mtd/spi/winbond.c @@ -18,6 +18,21 @@ struct winbond_spi_flash_params { static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { { + .id = 0x2014, + .nr_blocks = 16, + .name = "W25P80", + }, + { + .id = 0x2015, + .nr_blocks = 32, + .name = "W25P16", + }, + { + .id = 0x2016, + .nr_blocks = 64, + .name = "W25P32", + }, + { .id = 0x3013, .nr_blocks = 8, .name = "W25X40", @@ -63,13 +78,18 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { .name = "W25Q128", }, { + .id = 0x4019, + .nr_blocks = 512, + .name = "W25Q256", + }, + { .id = 0x5014, - .nr_blocks = 128, - .name = "W25Q80", + .nr_blocks = 16, + .name = "W25Q80BW", }, { .id = 0x6016, - .nr_blocks = 512, + .nr_blocks = 64, .name = "W25Q32DW", }, { @@ -104,7 +124,7 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode) } flash->page_size = 256; - flash->sector_size = 4096; + flash->sector_size = (idcode[1] == 0x20) ? 65536 : 4096; flash->size = 4096 * 16 * params->nr_blocks; return flash; |