• Philippe Gerum's avatar
    spi: dovetail: add generic support for out-of-band transfers · 6d1cf1a3
    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
    - 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's avatarPhilippe Gerum <rpm@xenomai.org>