sf: winbond: add support for W25Q16/32/128 parts

While we're here, cut out the useless id defines too.

Signed-off-by: Wojtek Skulski <skulski@pas.rochester.edu>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Wojtek Skulski 2010-12-07 01:07:45 -05:00 committed by Mike Frysinger
parent d1d9065647
commit 93eab86bfd
1 changed files with 29 additions and 10 deletions

View File

@ -24,11 +24,6 @@
#define CMD_W25_DP 0xb9 /* Deep Power-down */ #define CMD_W25_DP 0xb9 /* Deep Power-down */
#define CMD_W25_RES 0xab /* Release from DP, and Read Signature */ #define CMD_W25_RES 0xab /* Release from DP, and Read Signature */
#define WINBOND_ID_W25X16 0x3015
#define WINBOND_ID_W25X32 0x3016
#define WINBOND_ID_W25X64 0x3017
#define WINBOND_ID_W25Q64 0x4017
#define WINBOND_SR_WIP (1 << 0) /* Write-in-Progress */ #define WINBOND_SR_WIP (1 << 0) /* Write-in-Progress */
struct winbond_spi_flash_params { struct winbond_spi_flash_params {
@ -37,7 +32,7 @@ struct winbond_spi_flash_params {
uint8_t l2_page_size; uint8_t l2_page_size;
uint16_t pages_per_sector; uint16_t pages_per_sector;
uint16_t sectors_per_block; uint16_t sectors_per_block;
uint8_t nr_blocks; uint16_t nr_blocks;
const char *name; const char *name;
}; };
@ -55,7 +50,7 @@ to_winbond_spi_flash(struct spi_flash *flash)
static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
{ {
.id = WINBOND_ID_W25X16, .id = 0x3015,
.l2_page_size = 8, .l2_page_size = 8,
.pages_per_sector = 16, .pages_per_sector = 16,
.sectors_per_block = 16, .sectors_per_block = 16,
@ -63,7 +58,7 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
.name = "W25X16", .name = "W25X16",
}, },
{ {
.id = WINBOND_ID_W25X32, .id = 0x3016,
.l2_page_size = 8, .l2_page_size = 8,
.pages_per_sector = 16, .pages_per_sector = 16,
.sectors_per_block = 16, .sectors_per_block = 16,
@ -71,7 +66,7 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
.name = "W25X32", .name = "W25X32",
}, },
{ {
.id = WINBOND_ID_W25X64, .id = 0x3017,
.l2_page_size = 8, .l2_page_size = 8,
.pages_per_sector = 16, .pages_per_sector = 16,
.sectors_per_block = 16, .sectors_per_block = 16,
@ -79,13 +74,37 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = {
.name = "W25X64", .name = "W25X64",
}, },
{ {
.id = WINBOND_ID_W25Q64, .id = 0x4015,
.l2_page_size = 8,
.pages_per_sector = 16,
.sectors_per_block = 16,
.nr_blocks = 32,
.name = "W25Q16",
},
{
.id = 0x4016,
.l2_page_size = 8,
.pages_per_sector = 16,
.sectors_per_block = 16,
.nr_blocks = 64,
.name = "W25Q32",
},
{
.id = 0x4017,
.l2_page_size = 8, .l2_page_size = 8,
.pages_per_sector = 16, .pages_per_sector = 16,
.sectors_per_block = 16, .sectors_per_block = 16,
.nr_blocks = 128, .nr_blocks = 128,
.name = "W25Q64", .name = "W25Q64",
}, },
{
.id = 0x4018,
.l2_page_size = 8,
.pages_per_sector = 16,
.sectors_per_block = 16,
.nr_blocks = 256,
.name = "W25Q128",
},
}; };
static int winbond_wait_ready(struct spi_flash *flash, unsigned long timeout) static int winbond_wait_ready(struct spi_flash *flash, unsigned long timeout)