| From 3b7dc97f2ff2d354c7f624d4d04fd5dd8595c923 Mon Sep 17 00:00:00 2001 |
| From: Sam Shih <sam.shih@mediatek.com> |
| Date: Fri, 2 Jun 2023 13:06:11 +0800 |
| Subject: [PATCH] |
| [spi-and-storage][999-2316-mtd-spinand-macronix-Add-support-for-serial-NAND-flash.patch] |
| |
| --- |
| drivers/mtd/nand/spi/macronix.c | 112 ++++++++++++++++++++++++++++++++ |
| 1 file changed, 112 insertions(+) |
| |
| diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c |
| index e0c71c654..ede66b71b 100644 |
| --- a/drivers/mtd/nand/spi/macronix.c |
| +++ b/drivers/mtd/nand/spi/macronix.c |
| @@ -185,6 +185,118 @@ static const struct spinand_info macronix_spinand_table[] = { |
| 0 /*SPINAND_HAS_QE_BIT*/, |
| SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| mx35lf1ge4ab_ecc_get_status)), |
| + |
| + SPINAND_INFO("MX35LF2G14AC", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x20), |
| + NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 2, 1, 1), |
| + NAND_ECCREQ(4, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + SPINAND_INFO("MX35UF4G24AD", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb5), |
| + NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1), |
| + NAND_ECCREQ(8, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + SPINAND_INFO("MX35UF4GE4AD", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb7), |
| + NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1), |
| + NAND_ECCREQ(8, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + SPINAND_INFO("MX35UF2G14AC", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa0), |
| + NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 2, 1, 1), |
| + NAND_ECCREQ(4, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + SPINAND_INFO("MX35UF2G24AD", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa4), |
| + NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 2, 1, 1), |
| + NAND_ECCREQ(8, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + SPINAND_INFO("MX35UF2GE4AD", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa6), |
| + NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1), |
| + NAND_ECCREQ(8, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + SPINAND_INFO("MX35UF2GE4AC", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa2), |
| + NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1), |
| + NAND_ECCREQ(4, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + SPINAND_INFO("MX35UF1G14AC", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x90), |
| + NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), |
| + NAND_ECCREQ(4, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + SPINAND_INFO("MX35UF1G24AD", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x94), |
| + NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), |
| + NAND_ECCREQ(8, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + SPINAND_INFO("MX35UF1GE4AD", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96), |
| + NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1), |
| + NAND_ECCREQ(8, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + SPINAND_INFO("MX35UF1GE4AC", |
| + SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92), |
| + NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1), |
| + NAND_ECCREQ(4, 512), |
| + SPINAND_INFO_OP_VARIANTS(&read_cache_variants, |
| + &write_cache_variants, |
| + &update_cache_variants), |
| + SPINAND_HAS_QE_BIT, |
| + SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, |
| + mx35lf1ge4ab_ecc_get_status)), |
| + |
| }; |
| |
| static const struct spinand_manufacturer_ops macronix_spinand_manuf_ops = { |
| -- |
| 2.34.1 |
| |