Commit 135ac3b8 authored by Miquel Raynal's avatar Miquel Raynal
Browse files

mtd: spinand: winbond: Fix ODTR write VCR on W35NxxJW



In most scenarios this variant is actually unused (VCR is written in
SSDR mode), but we need to provide an octal variant. The address is 24
bits but is sent over 4 bytes MSB first. This means we need to shift the
register address by one extra byte for the address to be correct.

I didn't catch this initially because the volatile register region is
256 bytes wide, so the write-then-read procedure did work with the small
register addresses I was using at that time: 0 and 1.

Fixes: 44a2f49b ("mtd: spinand: winbond: W35N octal DTR support")
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
parent 8d655748
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ static SPINAND_OP_VARIANTS(update_cache_variants,

#define SPINAND_WINBOND_WRITE_VCR_8D_8D_8D(reg, buf)			\
	SPI_MEM_OP(SPI_MEM_DTR_OP_RPT_CMD(0x81, 8),			\
		   SPI_MEM_DTR_OP_ADDR(4, reg, 8),			\
		   SPI_MEM_DTR_OP_ADDR(4, reg << 8, 8),			\
		   SPI_MEM_OP_NO_DUMMY,					\
		   SPI_MEM_DTR_OP_DATA_OUT(2, buf, 8))