From e90f7bde15358125d1fd6555b6ce3ae69c7efb70 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Tue, 28 Aug 2012 15:13:37 +0000 Subject: sf: spansion: Add Spansion S25FL064P IDs This is a S25FL064A successor. It supports up to 104MHz bus speed. Signed-off-by: Marek Vasut Cc: Heiko Schocher Cc: Mike Frysinger Cc: Scott Wood Cc: Wolfgang Denk Reviewed-by: Jagannadha Sutradharudu Teki --- drivers/mtd/spi/spansion.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'drivers/mtd') diff --git a/drivers/mtd/spi/spansion.c b/drivers/mtd/spi/spansion.c index bc558c4..307b852 100644 --- a/drivers/mtd/spi/spansion.c +++ b/drivers/mtd/spi/spansion.c @@ -90,6 +90,13 @@ static const struct spansion_spi_flash_params spansion_spi_flash_table[] = { .name = "S25FL032P", }, { + .idcode1 = 0x0216, + .idcode2 = 0x4d00, + .pages_per_sector = 256, + .nr_sectors = 128, + .name = "S25FL064P", + }, + { .idcode1 = 0x2018, .idcode2 = 0x4d01, .pages_per_sector = 256, -- cgit v1.1 From 47ccaa2e7d8c5eab10bf108337fda52fb68bb430 Mon Sep 17 00:00:00 2001 From: Jagannadha Sutradharudu Teki Date: Sat, 23 Feb 2013 01:39:01 +0000 Subject: sf: winbond: Add support for W25Q256 Add support for Winbond W25Q256 SPI flash. Signed-off-by: Jagannadha Sutradharudu Teki Reviewed-by: Jagannadha Sutradharudu Teki --- drivers/mtd/spi/winbond.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'drivers/mtd') diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c index 2716209..3b39ba7 100644 --- a/drivers/mtd/spi/winbond.c +++ b/drivers/mtd/spi/winbond.c @@ -63,6 +63,11 @@ 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", -- cgit v1.1 From ed03f41778c7a11adf81816278c92dfae23d6d77 Mon Sep 17 00:00:00 2001 From: Kuo-Jung Su Date: Thu, 23 May 2013 15:09:49 +0000 Subject: sf: winbond: Add support for W25PXX SPI flash Add support for Winbond's W25PXX SPI flash. These devices is used on Faraday A369 evaluation board. Signed-off-by: Kuo-Jung Su CC: Jagannadha Sutradharudu Teki CC: Tom Rini Reviewed-by: Jagannadha Sutradharudu Teki --- drivers/mtd/spi/winbond.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'drivers/mtd') diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c index 3b39ba7..cb57ce0 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", @@ -109,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; -- cgit v1.1 From 0d3b596aa35fd828f2147c6d3c86d4e2730f7b29 Mon Sep 17 00:00:00 2001 From: Jagannadha Sutradharudu Teki Date: Mon, 27 May 2013 10:14:14 +0000 Subject: sf: Fix sf read for memory-mapped SPI flashes Missing return after memcpy is done for memory-mapped SPI flashes, hence added retun 0 after memcpy done. The return is missing in below patch "sf: Enable FDT-based configuration and memory mapping" (sha1: bb8215f437a7c948eec82a6abe754c226978bd6d) Signed-off-by: Jagannadha Sutradharudu Teki Acked-by: Simon Glass --- drivers/mtd/spi/spi_flash.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'drivers/mtd') diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index 111185a..6fa932c 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -150,8 +150,10 @@ int spi_flash_cmd_read_fast(struct spi_flash *flash, u32 offset, u8 cmd[5]; /* Handle memory-mapped SPI */ - if (flash->memory_map) + if (flash->memory_map) { memcpy(data, flash->memory_map + offset, len); + return 0; + } cmd[0] = CMD_READ_ARRAY_FAST; spi_flash_addr(offset, cmd); -- cgit v1.1 From 96bbf55651fc2bedc175830d22179e384d640d99 Mon Sep 17 00:00:00 2001 From: Jagannadha Sutradharudu Teki Date: Sun, 26 May 2013 01:35:21 +0530 Subject: cmd_sf: Add print mesg for 'sf erase' command This patch adds a print messages while using 'sf erase' command to make sure that how many bytes erased in flash device. Signed-off-by: Jagannadha Sutradharudu Teki Acked-by: Tom Rini --- drivers/mtd/spi/spi_flash.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'drivers/mtd') diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index 6fa932c..de6fd58 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -207,7 +207,7 @@ int spi_flash_cmd_wait_ready(struct spi_flash *flash, unsigned long timeout) int spi_flash_cmd_erase(struct spi_flash *flash, u32 offset, size_t len) { - u32 start, end, erase_size; + u32 end, erase_size; int ret; u8 cmd[4]; @@ -227,8 +227,7 @@ int spi_flash_cmd_erase(struct spi_flash *flash, u32 offset, size_t len) cmd[0] = CMD_ERASE_4K; else cmd[0] = CMD_ERASE_64K; - start = offset; - end = start + len; + end = offset + len; while (offset < end) { spi_flash_addr(offset, cmd); @@ -250,8 +249,6 @@ int spi_flash_cmd_erase(struct spi_flash *flash, u32 offset, size_t len) goto out; } - debug("SF: Successfully erased %zu bytes @ %#x\n", len, start); - out: spi_release_bus(flash->spi); return ret; -- cgit v1.1 From 60b6614ac8d189b8e31b9a7564fe5babb374bffa Mon Sep 17 00:00:00 2001 From: Jagannadha Sutradharudu Teki Date: Sun, 26 May 2013 14:52:52 +0530 Subject: cmd_sf: Add print mesgs on sf read/write commands This patch adds a print messages while using 'sf read' and 'sf write' commands to make sure that how many bytes read/written from/into flash device. Signed-off-by: Jagannadha Sutradharudu Teki Acked-by: Tom Rini --- drivers/mtd/spi/spi_flash.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'drivers/mtd') diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index de6fd58..0e38f59 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -124,9 +124,6 @@ int spi_flash_cmd_write_multi(struct spi_flash *flash, u32 offset, } } - debug("SF: program %s %zu bytes @ %#x\n", - ret ? "failure" : "success", len, offset); - spi_release_bus(flash->spi); return ret; } -- cgit v1.1 From 59120ca36568cb6c8dfb8c1e427c4432ccbdf894 Mon Sep 17 00:00:00 2001 From: Jagannadha Sutradharudu Teki Date: Sat, 25 May 2013 23:03:11 +0530 Subject: sf: spansion: Update the name for S25FL256S flash As the per the ID tabl the flash is under Uniform 64-kB sector architecture, hence updated with proper name. Signed-off-by: Jagannadha Sutradharudu Teki --- drivers/mtd/spi/spansion.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/mtd') diff --git a/drivers/mtd/spi/spansion.c b/drivers/mtd/spi/spansion.c index 307b852..2218e2f 100644 --- a/drivers/mtd/spi/spansion.c +++ b/drivers/mtd/spi/spansion.c @@ -108,7 +108,7 @@ static const struct spansion_spi_flash_params spansion_spi_flash_table[] = { .idcode2 = 0x4d01, .pages_per_sector = 256, .nr_sectors = 512, - .name = "S25FL256S", + .name = "S25FL256S_64K", }, }; -- cgit v1.1 From fc2d721992269cde9b67fc38ccf9eeda01bd24ef Mon Sep 17 00:00:00 2001 From: Jagannadha Sutradharudu Teki Date: Mon, 27 May 2013 12:50:50 +0530 Subject: sf: winbond: Add support for W25Q80BW Add support for Winbond W25Q80BW SPI flash. This patch corrected the flash name, nr_blocks and also commit message header from below patch. "sf: winbond: add W25Q32" (sha1: c969abc47033d6f810d3c9dbdb994ea9d691d038) Signed-off-by: Jagannadha Sutradharudu Teki --- drivers/mtd/spi/winbond.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/mtd') diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c index cb57ce0..a7cd51f 100644 --- a/drivers/mtd/spi/winbond.c +++ b/drivers/mtd/spi/winbond.c @@ -84,8 +84,8 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { }, { .id = 0x5014, - .nr_blocks = 128, - .name = "W25Q80", + .nr_blocks = 16, + .name = "W25Q80BW", }, { .id = 0x6016, -- cgit v1.1 From ea7fcc5aeb10d2cbb5589e91f36b205dcaf4b7a8 Mon Sep 17 00:00:00 2001 From: Jagannadha Sutradharudu Teki Date: Sat, 25 May 2013 02:13:41 +0530 Subject: sf: winbond: Correct the nr_blocks used for W25Q32DW This patch corrected the nr_blocks used for W25Q32DW SPI flash. nr_blcoks are incorrectly assigned on below patch "sf: winbond: add W25Q32DW" (sha1: 772ba15474f73adc942e817cc072b6e9750836cc) Signed-off-by: Jagannadha Sutradharudu Teki --- drivers/mtd/spi/winbond.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/mtd') diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c index a7cd51f..8457808 100644 --- a/drivers/mtd/spi/winbond.c +++ b/drivers/mtd/spi/winbond.c @@ -89,7 +89,7 @@ static const struct winbond_spi_flash_params winbond_spi_flash_table[] = { }, { .id = 0x6016, - .nr_blocks = 512, + .nr_blocks = 64, .name = "W25Q32DW", }, { -- cgit v1.1