mtd: spinand: winbond: add support for W25N01KV
Subsystems (2)
PATCH 1/1 mtd: spinand: winbond: add support for W25N01KV
Add support for Winbond W25N01KV 1Gbit SPI-NAND.
It has 4-bit on-die ECC.
Signed-off-by Robert Marko <[email protected]>
--- drivers/mtd/nand/spi/winbond.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
drivers/mtd/nand/spi/winbond.c +26 -0
@@ -76,6 +76,18 @@ static int w25m02gv_select_target(struct spinand_device *spinand,return spi_mem_exec_op (spinand->spimem, &op); } +static int w25n01kv_ooblayout_ecc (struct mtd_info *mtd,int section, +struct mtd_oob_region *region) +{ +if (section >3 ) +return -ERANGE ; + + region->offset =64 + (8 * section); + region->length =7 ; + +return 0 ; +} +static int w25n02kv_ooblayout_ecc (struct mtd_info *mtd,int section,struct mtd_oob_region *region) {
@@ -100,6 +112,11 @@ static int w25n02kv_ooblayout_free(struct mtd_info *mtd, int section,return 0 ; } +static const struct mtd_ooblayout_ops w25n01kv_ooblayout = { + .ecc = w25n01kv_ooblayout_ecc, + .free = w25n02kv_ooblayout_free, +}; +static const struct mtd_ooblayout_ops w25n02kv_ooblayout = { .ecc = w25n02kv_ooblayout_ecc, .free = w25n02kv_ooblayout_free,
@@ -163,6 +180,15 @@ static const struct spinand_info winbond_spinand_table[] = { &update_cache_variants), 0, SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)), +SPINAND_INFO ("W25N01KV" , +SPINAND_ID (SPINAND_READID_METHOD_OPCODE_DUMMY ,0xae ,0x21 ), +NAND_MEMORG (1 ,2048 ,96 ,64 ,1024 ,20 ,1 ,1 ,1 ), +NAND_ECCREQ (4 ,512 ), +SPINAND_INFO_OP_VARIANTS (&read_cache_variants, + &write_cache_variants, + &update_cache_variants), +0 , +SPINAND_ECCINFO (&w25n01kv_ooblayout, w25n02kv_ecc_get_status)), SPINAND_INFO("W25N02KV", SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xaa, 0x22), NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
Signature · 1 line
2.45.2
Quoted 5 lines · Robert Marko
Add support for Winbond W25N01KV 1Gbit SPI-NAND.
It has 4-bit on-die ECC.
Signed-off-by Robert Marko <[email protected]>
Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next, thanks.
Miquel