Skip to content

Commit 475aade

Browse files
zmlin1998miquelraynal
authored andcommitted
mtd: spinand: macronix: Flag parts needing explicit plane select
Macronix serial NAND flash with a two-plane structure requires insertion of the Plane Select bit into the column address during the write_to_cache operation. Additionally, for MX35{U,F}2G14AC and MX35LF2GE4AB, insertion of the Plane Select bit into the column address is required during the read_from_cache operation. Signed-off-by: Cheng Ming Lin <[email protected]> Signed-off-by: Miquel Raynal <[email protected]> Link: https://lore.kernel.org/linux-mtd/[email protected]
1 parent ca229bd commit 475aade

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

drivers/mtd/nand/spi/macronix.c

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,9 @@ static const struct spinand_info macronix_spinand_table[] = {
154154
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
155155
&write_cache_variants,
156156
&update_cache_variants),
157-
SPINAND_HAS_QE_BIT,
157+
SPINAND_HAS_QE_BIT |
158+
SPINAND_HAS_PROG_PLANE_SELECT_BIT |
159+
SPINAND_HAS_READ_PLANE_SELECT_BIT,
158160
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
159161
SPINAND_INFO("MX35LF2GE4AD",
160162
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x26, 0x03),
@@ -194,7 +196,8 @@ static const struct spinand_info macronix_spinand_table[] = {
194196
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
195197
&write_cache_variants,
196198
&update_cache_variants),
197-
SPINAND_HAS_QE_BIT,
199+
SPINAND_HAS_QE_BIT |
200+
SPINAND_HAS_PROG_PLANE_SELECT_BIT,
198201
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
199202
SPINAND_INFO("MX35LF2G24AD-Z4I8",
200203
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x64, 0x03),
@@ -212,7 +215,8 @@ static const struct spinand_info macronix_spinand_table[] = {
212215
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
213216
&write_cache_variants,
214217
&update_cache_variants),
215-
SPINAND_HAS_QE_BIT,
218+
SPINAND_HAS_QE_BIT |
219+
SPINAND_HAS_PROG_PLANE_SELECT_BIT,
216220
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
217221
SPINAND_INFO("MX35LF4G24AD-Z4I8",
218222
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x75, 0x03),
@@ -251,7 +255,9 @@ static const struct spinand_info macronix_spinand_table[] = {
251255
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
252256
&write_cache_variants,
253257
&update_cache_variants),
254-
SPINAND_HAS_QE_BIT,
258+
SPINAND_HAS_QE_BIT |
259+
SPINAND_HAS_PROG_PLANE_SELECT_BIT |
260+
SPINAND_HAS_READ_PLANE_SELECT_BIT,
255261
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
256262
macronix_ecc_get_status)),
257263
SPINAND_INFO("MX35UF4G24AD",
@@ -261,7 +267,8 @@ static const struct spinand_info macronix_spinand_table[] = {
261267
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
262268
&write_cache_variants,
263269
&update_cache_variants),
264-
SPINAND_HAS_QE_BIT,
270+
SPINAND_HAS_QE_BIT |
271+
SPINAND_HAS_PROG_PLANE_SELECT_BIT,
265272
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
266273
macronix_ecc_get_status)),
267274
SPINAND_INFO("MX35UF4G24AD-Z4I8",
@@ -292,7 +299,9 @@ static const struct spinand_info macronix_spinand_table[] = {
292299
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
293300
&write_cache_variants,
294301
&update_cache_variants),
295-
SPINAND_HAS_QE_BIT,
302+
SPINAND_HAS_QE_BIT |
303+
SPINAND_HAS_PROG_PLANE_SELECT_BIT |
304+
SPINAND_HAS_READ_PLANE_SELECT_BIT,
296305
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
297306
macronix_ecc_get_status)),
298307
SPINAND_INFO("MX35UF2G24AD",
@@ -302,7 +311,8 @@ static const struct spinand_info macronix_spinand_table[] = {
302311
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
303312
&write_cache_variants,
304313
&update_cache_variants),
305-
SPINAND_HAS_QE_BIT,
314+
SPINAND_HAS_QE_BIT |
315+
SPINAND_HAS_PROG_PLANE_SELECT_BIT,
306316
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
307317
macronix_ecc_get_status)),
308318
SPINAND_INFO("MX35UF2G24AD-Z4I8",

0 commit comments

Comments
 (0)