Skip to content

Commit

Permalink
spi: spi-mem: Create macros for DTR operation
Browse files Browse the repository at this point in the history
We do have macros for defining command, address, dummy and data
cycles. We also have a .dtr flag that implies sampling the bus on both
edges, but there are currently no macros enabling it. We might make use
of such macros, so let's create:
- SPI_MEM_DTR_OP_CMD
- SPI_MEM_DTR_OP_ADDR
- SPI_MEM_DTR_OP_DUMMY
- SPI_MEM_DTR_OP_DATA_OUT
- SPI_MEM_DTR_OP_DATA_OUT

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://patch.msgid.link/20241224-winbond-6-11-rc1-quad-support-v2-19-ad218dbc406f@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Miquel Raynal authored and Mark Brown committed Jan 9, 2025
1 parent d1f8587 commit f000689
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions include/linux/spi/spi-mem.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,29 @@
.opcode = __opcode, \
}

#define SPI_MEM_DTR_OP_CMD(__opcode, __buswidth) \
{ \
.nbytes = 1, \
.opcode = __opcode, \
.buswidth = __buswidth, \
.dtr = true, \
}

#define SPI_MEM_OP_ADDR(__nbytes, __val, __buswidth) \
{ \
.nbytes = __nbytes, \
.buswidth = __buswidth, \
.val = __val, \
}

#define SPI_MEM_DTR_OP_ADDR(__nbytes, __val, __buswidth) \
{ \
.nbytes = __nbytes, \
.val = __val, \
.buswidth = __buswidth, \
.dtr = true, \
}

#define SPI_MEM_OP_NO_ADDR { }

#define SPI_MEM_OP_DUMMY(__nbytes, __buswidth) \
Expand All @@ -35,6 +51,13 @@
.buswidth = __buswidth, \
}

#define SPI_MEM_DTR_OP_DUMMY(__nbytes, __buswidth) \
{ \
.nbytes = __nbytes, \
.buswidth = __buswidth, \
.dtr = true, \
}

#define SPI_MEM_OP_NO_DUMMY { }

#define SPI_MEM_OP_DATA_IN(__nbytes, __buf, __buswidth) \
Expand All @@ -45,6 +68,15 @@
.buf.in = __buf, \
}

#define SPI_MEM_DTR_OP_DATA_IN(__nbytes, __buf, __buswidth) \
{ \
.dir = SPI_MEM_DATA_IN, \
.nbytes = __nbytes, \
.buf.in = __buf, \
.buswidth = __buswidth, \
.dtr = true, \
}

#define SPI_MEM_OP_DATA_OUT(__nbytes, __buf, __buswidth) \
{ \
.buswidth = __buswidth, \
Expand All @@ -53,6 +85,15 @@
.buf.out = __buf, \
}

#define SPI_MEM_DTR_OP_DATA_OUT(__nbytes, __buf, __buswidth) \
{ \
.dir = SPI_MEM_DATA_OUT, \
.nbytes = __nbytes, \
.buf.out = __buf, \
.buswidth = __buswidth, \
.dtr = true, \
}

#define SPI_MEM_OP_NO_DATA { }

/**
Expand Down

0 comments on commit f000689

Please sign in to comment.