31#include "ove_config.h"
141 size_t len, uint64_t timeout_ns);
154 uint64_t timeout_ns);
167 uint64_t timeout_ns);
184 const struct ove_spi_xfer *xfers,
unsigned int num_xfers,
185 uint64_t timeout_ns);
248 void *rx,
size_t l, uint64_t t)
279 const struct ove_spi_xfer *x,
unsigned int n, uint64_t t)
int ove_spi_transfer_seq(ove_spi_t spi, const struct ove_spi_cs *cs, const struct ove_spi_xfer *xfers, unsigned int num_xfers, uint64_t timeout_ns)
Multi-segment SPI transfer under a single CS assertion.
int ove_spi_create(ove_spi_t *spi, const struct ove_spi_cfg *cfg)
Heap-mode counterpart of ove_spi_init() — allocates storage internally.
int ove_spi_init(ove_spi_t *spi, ove_spi_storage_t *storage, const struct ove_spi_cfg *cfg)
Initialise an SPI bus controller with caller-provided storage.
ove_spi_bit_order_t
SPI bit order.
Definition spi.h:53
void ove_spi_deinit(ove_spi_t spi)
Release an SPI bus handle previously created with ove_spi_init.
int ove_spi_transfer(ove_spi_t spi, const struct ove_spi_cs *cs, const void *tx, void *rx, size_t len, uint64_t timeout_ns)
Full-duplex SPI transfer.
ove_spi_mode_t
SPI clock polarity / phase mode.
Definition spi.h:43
int ove_spi_read(ove_spi_t spi, const struct ove_spi_cs *cs, void *buf, size_t len, uint64_t timeout_ns)
Read-only SPI transfer (clock out zeros, capture RX).
int ove_spi_transfer_async(ove_spi_t spi, const struct ove_spi_cs *cs, const void *tx, void *rx, size_t len, ove_dma_complete_cb cb, void *user_data)
Submit an SPI transfer asynchronously and return immediately.
int ove_spi_write(ove_spi_t spi, const struct ove_spi_cs *cs, const void *data, size_t len, uint64_t timeout_ns)
Write-only SPI transfer (TX only, ignore RX).
void ove_spi_destroy(ove_spi_t spi)
Destroy an SPI bus handle previously created with ove_spi_create.
@ OVE_SPI_MSB_FIRST
Definition spi.h:54
@ OVE_SPI_LSB_FIRST
Definition spi.h:55
@ OVE_SPI_MODE_3
Definition spi.h:47
@ OVE_SPI_MODE_0
Definition spi.h:44
@ OVE_SPI_MODE_2
Definition spi.h:46
@ OVE_SPI_MODE_1
Definition spi.h:45
struct ove_spi * ove_spi_t
Opaque handle for an SPI bus controller.
Definition types.h:265
void(* ove_dma_complete_cb)(int result, void *user_data)
DMA / async transfer completion callback signature.
Definition types.h:312
@ OVE_ERR_NOT_SUPPORTED
Definition types.h:98
SPI bus configuration descriptor.
Definition spi.h:63
unsigned int instance
Definition spi.h:64
uint8_t word_size
Definition spi.h:68
ove_spi_mode_t mode
Definition spi.h:66
uint32_t clock_hz
Definition spi.h:65
ove_spi_bit_order_t bit_order
Definition spi.h:67
SPI chip-select descriptor.
Definition spi.h:78
unsigned int gpio_port
Definition spi.h:79
unsigned int gpio_pin
Definition spi.h:80
int active_low
Definition spi.h:81
SPI transfer segment for multi-segment transactions.
Definition spi.h:90
size_t len
Definition spi.h:93
void * rx
Definition spi.h:92
const void * tx
Definition spi.h:91