Skip to content

Commit 6a804fb

Browse files
Sridharan S Nmiquelraynal
authored andcommitted
mtd: spinand: winbond: add support for serial NAND flash
Add support for W25N01JW, W25N02JWZEIF, W25N512GW, W25N02KWZEIR and W25N01GWZEIG. W25N02KWZEIR has 8b/512b on-die ECC capability and other four has 4b/512b on-die ECC capability. Signed-off-by: Sridharan S N <[email protected]> Signed-off-by: Md Sadre Alam <[email protected]> Signed-off-by: Miquel Raynal <[email protected]> Link: https://lore.kernel.org/linux-mtd/[email protected]
1 parent 4c1f363 commit 6a804fb

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

drivers/mtd/nand/spi/winbond.c

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,51 @@ static const struct spinand_info winbond_spinand_table[] = {
169169
&update_cache_variants),
170170
0,
171171
SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)),
172+
SPINAND_INFO("W25N01JW",
173+
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xbc, 0x21),
174+
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
175+
NAND_ECCREQ(4, 512),
176+
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
177+
&write_cache_variants,
178+
&update_cache_variants),
179+
0,
180+
SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)),
181+
SPINAND_INFO("W25N02JWZEIF",
182+
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xbf, 0x22),
183+
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 2, 1),
184+
NAND_ECCREQ(4, 512),
185+
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
186+
&write_cache_variants,
187+
&update_cache_variants),
188+
0,
189+
SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)),
190+
SPINAND_INFO("W25N512GW",
191+
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x20),
192+
NAND_MEMORG(1, 2048, 64, 64, 512, 10, 1, 1, 1),
193+
NAND_ECCREQ(4, 512),
194+
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
195+
&write_cache_variants,
196+
&update_cache_variants),
197+
0,
198+
SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)),
199+
SPINAND_INFO("W25N02KWZEIR",
200+
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x22),
201+
NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
202+
NAND_ECCREQ(8, 512),
203+
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
204+
&write_cache_variants,
205+
&update_cache_variants),
206+
0,
207+
SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)),
208+
SPINAND_INFO("W25N01GWZEIG",
209+
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x21),
210+
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
211+
NAND_ECCREQ(4, 512),
212+
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
213+
&write_cache_variants,
214+
&update_cache_variants),
215+
0,
216+
SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)),
172217
};
173218

174219
static int winbond_spinand_init(struct spinand_device *spinand)

0 commit comments

Comments
 (0)