Skip to contentSkip to conversation

mtd: spi-nor: issi: Add IS25WP512 device

PATCH In review [email protected] 2 participants 4 messages Apr 14, 2022 – Apr 27, 2022

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mtd: spi-nor: issi: Add IS25WP512 device

From: Niravkumar L Rabara <[email protected]>

Add is25wp512 info to spi_nor_ids[] table entry.

Rename is25lp256_post_bfpt_fixups to is25xx_post_bfpt_fixups as a common function for all is25xx post_bfpt fixups.

---
 drivers/mtd/spi-nor/issi.c | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)
drivers/mtd/spi-nor/issi.c +16 -9
index c012bc2486e1..14fe07e55f85 100644
@@ -9,24 +9,27 @@
 #include "core.h"
 
 static int
-is25lp256_post_bfpt_fixups(struct spi_nor *nor,
+is25xx_post_bfpt_fixups(struct spi_nor *nor,
 			   const struct sfdp_parameter_header *bfpt_header,
 			   const struct sfdp_bfpt *bfpt)
 {
 	/*
-	 * IS25LP256 supports 4B opcodes, but the BFPT advertises a
-	 * BFPT_DWORD1_ADDRESS_BYTES_3_ONLY address width.
+	 * IS25XX256 & IS25XX512 supports 4B opcodes,
+	 * but the BFPT advertises BFPT_DWORD1_ADDRESS_BYTES_3_ONLY and
+	 * BFPT_DWORD1_ADDRESS_BYTES_3_OR_4 address width repectively.
 	 * Overwrite the address width advertised by the BFPT.
 	 */
-	if ((bfpt->dwords[BFPT_DWORD(1)] & BFPT_DWORD1_ADDRESS_BYTES_MASK) ==
-		BFPT_DWORD1_ADDRESS_BYTES_3_ONLY)
+	if (((bfpt->dwords[BFPT_DWORD(1)] & BFPT_DWORD1_ADDRESS_BYTES_MASK) ==
+		BFPT_DWORD1_ADDRESS_BYTES_3_ONLY) ||
+		((bfpt->dwords[BFPT_DWORD(1)] & BFPT_DWORD1_ADDRESS_BYTES_MASK) ==
+		BFPT_DWORD1_ADDRESS_BYTES_3_OR_4))
 		nor->addr_width = 4;
 
 	return 0;
 }
 
-static const struct spi_nor_fixups is25lp256_fixups = {
-	.post_bfpt = is25lp256_post_bfpt_fixups,
+static struct spi_nor_fixups is25xx_fixups = {
+	.post_bfpt = is25xx_post_bfpt_fixups,
 };
 
 static const struct flash_info issi_nor_parts[] = {
@@ -48,7 +51,7 @@ static const struct flash_info issi_nor_parts[] = {
 	{ "is25lp256",  INFO(0x9d6019, 0, 64 * 1024, 512)
 		PARSE_SFDP
 		FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
-		.fixups = &is25lp256_fixups },
+		.fixups = &is25xx_fixups },
 	{ "is25wp032",  INFO(0x9d7016, 0, 64 * 1024,  64)
 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
 	{ "is25wp064",  INFO(0x9d7017, 0, 64 * 1024, 128)
@@ -58,7 +61,11 @@ static const struct flash_info issi_nor_parts[] = {
 	{ "is25wp256", INFO(0x9d7019, 0, 64 * 1024, 512)
 		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
 		FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
-		.fixups = &is25lp256_fixups },
+		.fixups = &is25xx_fixups },
+	{ "is25wp512", INFO(0x9d701a, 0, 64 * 1024, 1024)
+		NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)
+		FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
+		.fixups = &is25xx_fixups },
 
 	/* PMC */
 	{ "pm25lv512",   INFO(0,        0, 32 * 1024,    2)
Signature · 1 line
2.25.1
#1 lore raw
Quoted 6 lines

Add is25wp512 info to spi_nor_ids[] table entry.

Rename is25lp256_post_bfpt_fixups to is25xx_post_bfpt_fixups as a common function for all is25xx post_bfpt fixups.

We require SFDP dumps of new flashes. Therefore, you can only add flashes which you actually have (and have tested). See [1] how to provide such a dump.

Quoted 9 lines
---
 drivers/mtd/spi-nor/issi.c | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)
drivers/mtd/spi-nor/issi.c +0 -0
index c012bc2486e1..14fe07e55f85 100644

drivers/mtd/spi-nor/issi.c line 12

Quoted 5 lines
drivers/mtd/spi-nor/issi.c +1 -1
@@ -9,24 +9,27 @@
 #include "core.h"
 
 static int
-is25lp256_post_bfpt_fixups(struct spi_nor *nor,
+is25xx_post_bfpt_fixups(struct spi_nor *nor,

Please use is25_post_bfpt_fixups. But how sure are you that this affects their whole nor flash line? is25 is the prefix for all their SPI NOR flashes, no?

I'm not arguing against using this name and it can certainly be changed in the future if we know more.

-michael

[1] https://lore.kernel.org/linux-mtd/[email protected]/

#2 lore raw

Am 2022-04-14 12:09, schrieb Michael Walle:

Quoted 3 lines
Quoted 1 line

+is25xx_post_bfpt_fixups(struct spi_nor *nor,

Please use is25_post_bfpt_fixups.

Sorry, this should be is25_nor_post_bfpt_fixups.

-michael

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

#3 lore raw
Quoted 9 lines

-----Original Message-----
From: Michael Walle <[email protected]>
Sent: Monday, 18 April, 2022 3:31 AM
To: Rabara, Niravkumar L <[email protected]>
Cc: Tudor Ambarus <[email protected]>; Pratyush Yadav <[email protected]>; Miquel Raynal <[email protected]>; Richard >Weinberger <[email protected]>; Vignesh Raghavendra <[email protected]>; [email protected]; [email protected]
Subject: Re: [PATCH] mtd: spi-nor: issi: Add IS25WP512 device

Quoted 6 lines

Am 2022-04-14 12:09, schrieb Michael Walle:

Quoted 3 lines
Quoted 1 line

+is25xx_post_bfpt_fixups(struct spi_nor *nor,

Please use is25_post_bfpt_fixups.

Sorry, this should be is25_nor_post_bfpt_fixups.

I will change the function name to is25_nor_post_bfpt_fixups in the next patch and provide the SFDP dump of flash.

Thanks,
Nirav

Quoted 1 line

-michael