mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-02-13 20:01:55 +00:00
53 lines
1.6 KiB
Diff
53 lines
1.6 KiB
Diff
--- a/drivers/mtd/nand/spi/winbond.c
|
|
+++ b/drivers/mtd/nand/spi/winbond.c
|
|
@@ -75,7 +75,7 @@
|
|
}
|
|
|
|
static const struct spinand_info winbond_spinand_table[] = {
|
|
- SPINAND_INFO("W25M02GV", 0xAB,
|
|
+ SPINAND_INFO("W25M02GV", 0xAB21,
|
|
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 2),
|
|
NAND_ECCREQ(1, 512),
|
|
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
|
@@ -84,8 +84,16 @@
|
|
0,
|
|
SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL),
|
|
SPINAND_SELECT_TARGET(w25m02gv_select_target)),
|
|
- SPINAND_INFO("W25N01GV", 0xAA,
|
|
+ SPINAND_INFO("W25N01GV", 0xAA21,
|
|
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
|
+ NAND_ECCREQ(1, 512),
|
|
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
|
+ &write_cache_variants,
|
|
+ &update_cache_variants),
|
|
+ 0,
|
|
+ SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)),
|
|
+ SPINAND_INFO("W25N02KV", 0xAA22,
|
|
+ NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1),
|
|
NAND_ECCREQ(1, 512),
|
|
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
|
&write_cache_variants,
|
|
@@ -102,17 +110,21 @@
|
|
static int winbond_spinand_detect(struct spinand_device *spinand)
|
|
{
|
|
u8 *id = spinand->id.data;
|
|
+ u16 did;
|
|
int ret;
|
|
|
|
/*
|
|
* Winbond SPI NAND read ID need a dummy byte,
|
|
* so the first byte in raw_id is dummy.
|
|
+ * Second and also third byte are device id
|
|
*/
|
|
if (id[1] != SPINAND_MFR_WINBOND)
|
|
return 0;
|
|
+ else
|
|
+ did = (id[2] << 8) + id[3];
|
|
|
|
ret = spinand_match_and_init(spinand, winbond_spinand_table,
|
|
- ARRAY_SIZE(winbond_spinand_table), id[2]);
|
|
+ ARRAY_SIZE(winbond_spinand_table), did);
|
|
if (ret)
|
|
return ret;
|
|
|
|
|