]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
spi: spi-mem: Add a packed command operation
authorMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 10 Apr 2026 17:41:02 +0000 (19:41 +0200)
committerMark Brown <broonie@kernel.org>
Sat, 11 Apr 2026 10:53:54 +0000 (11:53 +0100)
Instead of repeating the command opcode twice, some flash devices try to
pack command and address bits. In this case, the second opcode byte
being sent (LSB) is free to be used. The input data must be ANDed to
only provide the relevant bits.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://patch.msgid.link/20260410-winbond-6-19-rc1-oddr-v1-2-2ac4827a3868@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/linux/spi/spi-mem.h

index 37f709784350fcb6cc020ef6421050210869f882..c8e207522223f2285174b9c584e6c6558415d6d5 100644 (file)
                .dtr = true,                                    \
        }
 
+#define SPI_MEM_DTR_OP_PACKED_CMD(__opcode, __addr, __buswidth)        \
+       {                                                       \
+               .nbytes = 2,                                    \
+               .opcode = __opcode << 8 | __addr,               \
+               .buswidth = __buswidth,                         \
+               .dtr = true,                                    \
+       }
+
 #define SPI_MEM_OP_ADDR(__nbytes, __val, __buswidth)           \
        {                                                       \
                .nbytes = __nbytes,                             \