[PATCH v9 1/3] mtd: spi-nor: spansion: Add support for Read Any Register

tkuw584924 at gmail.com tkuw584924 at gmail.com
Mon Feb 28 21:21:53 PST 2022


From: Takahiro Kuwano <Takahiro.Kuwano at infineon.com>

The Read Any Register instruction (65h) is followed by register address
and dummy cycles, then the selected register byte is returned. This patch
adds a spi_mem_op template for that.

Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano at infineon.com>
Reviewed-by: Pratyush Yadav <p.yadav at ti.com>
---
Change in v9:
  - Rename macro per mwalle's series
  - Rely on https://patchwork.ozlabs.org/project/linux-mtd/patch/20220228111712.111737-7-tudor.ambarus@microchip.com/

Changes in v8:
  - Remove controller_ops
  - Remove spansion_read/write_any_reg()
  - Add spi_mem_op macro for Read Any Register
  
Changes in v7:
  - No change

Changes in v6:
  - Add helper functions for controller_ops
  - Add 'reg_addr_width' parameter to spansion_read/write_any_reg()
  - Remove spi_nor_write_enable() from spansion_write_any_reg() and modified
    function header comment

Changes in v5:
  - Fix 'if (ret == 1)' to 'if (ret < 0)' in spansion_read_any_reg()

Changes in v4:
  - Fix dummy cycle calculation in spansion_read_any_reg()
  - Modify comment for spansion_write_any_reg()
  
Changes in v3:
  - Cleanup implementation

 drivers/mtd/spi-nor/spansion.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/mtd/spi-nor/spansion.c b/drivers/mtd/spi-nor/spansion.c
index 34ca3538a0f9..ba0f79bfe859 100644
--- a/drivers/mtd/spi-nor/spansion.c
+++ b/drivers/mtd/spi-nor/spansion.c
@@ -24,6 +24,11 @@
 #define SPINOR_OP_CYPRESS_RD_FAST		0xee
 
 /* Cypress SPI NOR flash operations. */
+#define CYPRESS_NOR_RD_ANY_REG_OP(naddr, addr, ndummy, ndata, buf)	\
+	SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_RD_ANY_REG, 0),		\
+		   SPI_MEM_OP_ADDR(naddr, addr, 0),			\
+		   SPI_MEM_OP_DUMMY(ndummy, 0),				\
+		   SPI_MEM_OP_DATA_IN(ndata, buf, 0))
 #define CYPRESS_NOR_WR_ANY_REG_OP(naddr, addr, ndata, buf)		\
 	SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WR_ANY_REG, 0),		\
 		   SPI_MEM_OP_ADDR(naddr, addr, 0),			\
-- 
2.25.1




More information about the linux-mtd mailing list