spi: spi-mem: Create a repeated address operation
authorMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 9 Jan 2026 17:18:00 +0000 (18:18 +0100)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Thu, 29 Jan 2026 19:21:38 +0000 (20:21 +0100)
In octal DTR mode addresses may either be long enough to cover at least
two bytes (in which case the existing macro works), or otherwise for
single byte addresses, the byte must also be duplicated and sent twice:
on each front of the clock.

Create a macro for this common case.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
include/linux/spi/spi-mem.h

index e4db092..5774e55 100644 (file)
                .dtr = true,                                    \
        }
 
+#define SPI_MEM_DTR_OP_RPT_ADDR(__val, __buswidth)             \
+       {                                                       \
+               .nbytes = 2,                                    \
+               .val = __val | __val << 8,                      \
+               .buswidth = __buswidth,                         \
+               .dtr = true,                                    \
+       }
+
 #define SPI_MEM_OP_NO_ADDR     { }
 
 #define SPI_MEM_OP_DUMMY(__nbytes, __buswidth)                 \