SPI(9) | Kernel Developer's Manual | SPI(9) |
spi_configure
, spi_transfer
,
spi_transfer_init
,
spi_chunk_init
,
spi_transfer_add
, spi_wait
,
spi_done
, spi_send
,
spi_recv
, spi_send_recv
—
#include <dev/spi/spivar.h>
int
spi_configure
(struct spi_handle
*sh, int mode, int
speed);
int
spi_transfer
(struct spi_handle
*sh, struct spi_transfer *st);
void
spi_transfer_init
(struct spi_transfer
*st);
void
spi_chunk_init
(struct spi_chunk
*chunk, int cnt, const uint8_t
*wptr, uint8_t *rptr);
void
spi_transfer_add
(struct spi_transfer
*st, struct spi_chunk *chunk);
void
spi_wait
(struct spi_transfer
*st);
void
spi_done
(struct spi_transfer
*st, int err);
int
spi_recv
(struct spi_handle *sh,
int cnt, uint8_t *data);
int
spi_send
(struct spi_handle *sh,
int cnt, const uint8_t
*data);
int
spi_send_recv
(struct spi_handle
*sh, int scnt, const uint8_t
*snd, int rcnt, const uint8_t
*rcv);
spi
interface provides a means of
communicating with SPI-connected devices.
The struct spi_handle corresponding to the device is passed in the driver attachment.
spi_configure
(sh,
mode, speed)spi_transfer
(sh,
st)spi_transfer
()
returns an errno value when the transfer couldn't be queued.spi_transfer_init
(st)spi_chunk_init
(chunk,
cnt, wptr,
rptr")spi_transfer_add
(st,
chunk)spi_wait
(st)spi_done
(st,
err)For simplicity there are convenience functions that combine common operations. These functions return an errno value when the transfer failed.
spi_recv
(sh,
cnt, data)spi_send
(sh,
cnt, data)spi_send_recv
(sh,
scnt, snd,
rcnt, rcv)spi
API first appeared in NetBSD
4.0.
February 23, 2019 | NetBSD 9.0 |