From: Miquel Raynal Date: Fri, 10 Apr 2026 17:41:02 +0000 (+0200) Subject: spi: spi-mem: Add a packed command operation X-Git-Url: http://git.ipfire.org/index.cgi?a=commitdiff_plain;h=f79ee9e4b23244e77b28d176ce99a2d84d813ac5;p=thirdparty%2Fkernel%2Flinux.git spi: spi-mem: Add a packed command operation 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 Link: https://patch.msgid.link/20260410-winbond-6-19-rc1-oddr-v1-2-2ac4827a3868@bootlin.com Signed-off-by: Mark Brown --- diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h index 37f709784350f..c8e207522223f 100644 --- a/include/linux/spi/spi-mem.h +++ b/include/linux/spi/spi-mem.h @@ -28,6 +28,14 @@ .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, \