[RFC][PATCH 1/3] spi-nor: Add SPI_NOR_NO_WIP
Richard Weinberger
richard at nod.at
Sun Oct 18 17:31:01 EDT 2020
Some flashes have their WIP bit hardwired to 0.
They are always ready and there there is no need query the status
register after a write command.
Signed-off-by: Richard Weinberger <richard at nod.at>
---
drivers/mtd/spi-nor/core.c | 6 +++++-
drivers/mtd/spi-nor/core.h | 2 ++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
index 0369d98b2d12..eb01a0798087 100644
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -546,8 +546,12 @@ static void spi_nor_clear_sr(struct spi_nor *nor)
*/
static int spi_nor_sr_ready(struct spi_nor *nor)
{
- int ret = spi_nor_read_sr(nor, nor->bouncebuf);
+ int ret;
+
+ if (nor->flags & SPI_NOR_NO_WIP)
+ return 1;
+ ret = spi_nor_read_sr(nor, nor->bouncebuf);
if (ret)
return ret;
diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h
index 6f2f6b27173f..621202fda5d0 100644
--- a/drivers/mtd/spi-nor/core.h
+++ b/drivers/mtd/spi-nor/core.h
@@ -311,6 +311,8 @@ struct flash_info {
* BP3 is bit 6 of status register.
* Must be used with SPI_NOR_4BIT_BP.
*/
+#define SPI_NOR_NO_WIP BIT(19) /* Flash is always reads, WIP status bit
+ has no meaning. */
/* Part specific fixup hooks. */
const struct spi_nor_fixups *fixups;
--
2.26.1
More information about the linux-mtd
mailing list