table of contents
STRUCT SPI_MESSAGE(9) | Serial Peripheral Interface (S | STRUCT SPI_MESSAGE(9) |
NAME¶
struct_spi_message - one multi-segment SPI transaction
SYNOPSIS¶
struct spi_message {
struct list_head transfers;
struct spi_device * spi;
unsigned is_dma_mapped:1;
void (* complete) (void *context);
void * context;
unsigned frame_length;
unsigned actual_length;
int status;
struct list_head queue;
void * state;
struct list_head resources; };
MEMBERS¶
transfers
spi
is_dma_mapped
complete
context
frame_length
actual_length
status
queue
state
resources
DESCRIPTION¶
A spi_message is used to execute an atomic sequence of data transfers, each represented by a struct spi_transfer. The sequence is “atomic” in the sense that no other spi_message may use that SPI bus until that sequence completes. On some systems, many such sequences can execute as as single programmed DMA transfer. On all systems, these messages are queued, and might complete after transactions to other devices. Messages sent to a given spi_device are always executed in FIFO order.
The code that submits an spi_message (and its spi_transfers) to the lower layers is responsible for managing its memory. Zero-initialize every field you don't set up explicitly, to insulate against future API updates. After you submit a message and its transfers, ignore them until its completion callback.
COPYRIGHT¶
January 2017 | Kernel Hackers Manual 4.8. |