-
Philippe Gerum authored
These changes introduce a kernel API for running out-of-band SPI transfer loops. In order to guarantee very low and bounded latency, along with supporting high-frequency loops, the following requirements apply: - the SPI controller must support DMA transfers, which also requires the corresponding DMA engine to support out-of-band transactions. - data goes to an I/O area allocated from coherent memory at prep time. This area is split into two buffers (RX and TX), laid out at fixed offsets from its start. The I/O area can be memory-mapped to user-space (see spi_mmap_oob_transfer()). - an out-of-band transfer loop exchanges data with the same SPI slave while active. - no other SPI transfer can take place on the same bus while an out-of-band transfer is active. This feature is intended as a building block for implementing closed-loop control software based on a SPI interface. Signed-off-by: Philippe Gerum <rpm@xenomai.org>
6d1cf1a3