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 27162091c..845780849 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; |