aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2016-07-01 18:16:22 -0400
committerBrian Norris <computersforpeace@gmail.com>2016-07-13 20:36:01 -0400
commit595f0e101d4c250010ca0763ae15b863f01bb90e (patch)
treef3274cc4504c0e8950f1362822180657fa40c518
parentcebc1fd0690713ec86ab27e606daf9967a2833ab (diff)
mtd: spi-nor: support dual, quad, and WP for Gigadevice
Gigadevice flash support BP{0,1,2,3,4} bits, where BP3 means the same as the existing supported TB (Top/Bottom), and BP4 means the same as the not-yet-supported 4K bit used on other flash (e.g., Winbond). Let's support lock/unlock with the same feature flags as w25q32dw/w25q64dw. Tested on gd25lq64c, but I checked datasheets for the other 3, to make sure. While I was at it, I noticed that these all support dual and quad as well. I noted them, but can't test them at the moment, since my test system only supports standard 1x SPI. Signed-off-by: Brian Norris <computersforpeace@gmail.com>
-rw-r--r--drivers/mtd/spi-nor/spi-nor.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index ddce5fdf9ec7..d0fc165d7d66 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -830,10 +830,26 @@ static const struct flash_info spi_nor_ids[] = {
830 { "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1, SPI_NOR_NO_ERASE) }, 830 { "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1, SPI_NOR_NO_ERASE) },
831 831
832 /* GigaDevice */ 832 /* GigaDevice */
833 { "gd25q32", INFO(0xc84016, 0, 64 * 1024, 64, SECT_4K) }, 833 {
834 { "gd25q64", INFO(0xc84017, 0, 64 * 1024, 128, SECT_4K) }, 834 "gd25q32", INFO(0xc84016, 0, 64 * 1024, 64,
835 { "gd25lq64c", INFO(0xc86017, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, 835 SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
836 { "gd25q128", INFO(0xc84018, 0, 64 * 1024, 256, SECT_4K) }, 836 SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
837 },
838 {
839 "gd25q64", INFO(0xc84017, 0, 64 * 1024, 128,
840 SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
841 SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
842 },
843 {
844 "gd25lq64c", INFO(0xc86017, 0, 64 * 1024, 128,
845 SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
846 SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
847 },
848 {
849 "gd25q128", INFO(0xc84018, 0, 64 * 1024, 256,
850 SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
851 SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
852 },
837 853
838 /* Intel/Numonyx -- xxxs33b */ 854 /* Intel/Numonyx -- xxxs33b */
839 { "160s33b", INFO(0x898911, 0, 64 * 1024, 32, 0) }, 855 { "160s33b", INFO(0x898911, 0, 64 * 1024, 32, 0) },