Skip to content

Commit d29e8e2

Browse files
zmlin1998miquelraynal
authored andcommitted
mtd: spinand: macronix: Add support for serial NAND flash
MX35{U,L}F{2,4}G24AD-Z4I8 are Macronix serial NAND flashes. Their main difference from MX35{U,L}F{2,4}G24AD lies in the plane number. The plane number for those with the postfix Z4I8 is 1. These flashes have been validated on Xilinx zynq-picozed board which include Macronix SPI Host. Signed-off-by: Cheng Ming Lin <chengminglin@mxic.com.tw> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/linux-mtd/20240704024839.241101-3-linchengming884@gmail.com
1 parent aacbb6c commit d29e8e2

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

drivers/mtd/nand/spi/macronix.c

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,15 @@ static const struct spinand_info macronix_spinand_table[] = {
158158
&update_cache_variants),
159159
SPINAND_HAS_QE_BIT,
160160
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
161+
SPINAND_INFO("MX35LF2G24AD-Z4I8",
162+
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x64, 0x03),
163+
NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
164+
NAND_ECCREQ(8, 512),
165+
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
166+
&write_cache_variants,
167+
&update_cache_variants),
168+
SPINAND_HAS_QE_BIT,
169+
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
161170
SPINAND_INFO("MX35LF4G24AD",
162171
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x35, 0x03),
163172
NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1),
@@ -167,6 +176,15 @@ static const struct spinand_info macronix_spinand_table[] = {
167176
&update_cache_variants),
168177
SPINAND_HAS_QE_BIT,
169178
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
179+
SPINAND_INFO("MX35LF4G24AD-Z4I8",
180+
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x75, 0x03),
181+
NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1),
182+
NAND_ECCREQ(8, 512),
183+
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
184+
&write_cache_variants,
185+
&update_cache_variants),
186+
SPINAND_HAS_QE_BIT,
187+
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
170188
SPINAND_INFO("MX31LF1GE4BC",
171189
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x1e),
172190
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
@@ -208,6 +226,16 @@ static const struct spinand_info macronix_spinand_table[] = {
208226
SPINAND_HAS_QE_BIT,
209227
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
210228
mx35lf1ge4ab_ecc_get_status)),
229+
SPINAND_INFO("MX35UF4G24AD-Z4I8",
230+
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xf5, 0x03),
231+
NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1),
232+
NAND_ECCREQ(8, 512),
233+
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
234+
&write_cache_variants,
235+
&update_cache_variants),
236+
SPINAND_HAS_QE_BIT,
237+
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
238+
mx35lf1ge4ab_ecc_get_status)),
211239
SPINAND_INFO("MX35UF4GE4AD",
212240
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb7, 0x03),
213241
NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1),
@@ -238,6 +266,16 @@ static const struct spinand_info macronix_spinand_table[] = {
238266
SPINAND_HAS_QE_BIT,
239267
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
240268
mx35lf1ge4ab_ecc_get_status)),
269+
SPINAND_INFO("MX35UF2G24AD-Z4I8",
270+
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xe4, 0x03),
271+
NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
272+
NAND_ECCREQ(8, 512),
273+
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
274+
&write_cache_variants,
275+
&update_cache_variants),
276+
SPINAND_HAS_QE_BIT,
277+
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
278+
mx35lf1ge4ab_ecc_get_status)),
241279
SPINAND_INFO("MX35UF2GE4AD",
242280
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa6, 0x03),
243281
NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),

0 commit comments

Comments
 (0)