48 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
49 return SPI_DEV_STATUS_EINVAL;
59 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
60 return SPI_DEV_STATUS_EINVAL;
71 return SPI_DEV_STATUS_BUS_NOT_OWNED;
76 return SPI_DEV_STATUS_OK;
84 return SPI_DEV_STATUS_OK;
90 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
100 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
101 return SPI_DEV_STATUS_EINVAL;
105 return SPI_DEV_STATUS_BUS_LOCKED;
114 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
115 return SPI_DEV_STATUS_EINVAL;
119 return SPI_DEV_STATUS_BUS_LOCKED;
128 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
129 return SPI_DEV_STATUS_EINVAL;
133 return SPI_DEV_STATUS_BUS_LOCKED;
142 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
143 return SPI_DEV_STATUS_EINVAL;
147 return SPI_DEV_STATUS_BUS_LOCKED;
156 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
157 return SPI_DEV_STATUS_EINVAL;
161 return SPI_DEV_STATUS_BUS_LOCKED;
169 const uint8_t *wdata,
int wsize,
170 uint8_t *rbuf,
int rsize,
int ignore)
172 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
173 return SPI_DEV_STATUS_EINVAL;
177 return SPI_DEV_STATUS_BUS_LOCKED;
180 if(wdata == NULL && wsize > 0) {
181 return SPI_DEV_STATUS_EINVAL;
184 if(rbuf == NULL && rsize > 0) {
185 return SPI_DEV_STATUS_EINVAL;
195 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
196 return SPI_DEV_STATUS_EINVAL;
201 if(status != SPI_DEV_STATUS_OK) {
207 if(status != SPI_DEV_STATUS_OK) {
217 if(dev == NULL || dev->spi_controller >= SPI_CONTROLLER_COUNT) {
218 return SPI_DEV_STATUS_EINVAL;
222 return SPI_DEV_STATUS_BUS_LOCKED;
bool spi_arch_has_lock(const spi_device_t *dev)
Checks if a device has locked an SPI controller.
spi_status_t spi_select(const spi_device_t *dev)
Selects the SPI peripheral.
spi_status_t spi_read(const spi_device_t *dev, uint8_t *buf, int size)
Reads a buffer from an SPI device.
spi_status_t spi_write_byte(const spi_device_t *dev, uint8_t data)
Writes a single byte to an SPI device.
spi_status_t spi_arch_transfer(const spi_device_t *dev, const uint8_t *write_buf, int wlen, uint8_t *inbuf, int rlen, int ignore_len)
Performs an SPI transfer.
spi_status_t spi_transfer(const spi_device_t *dev, const uint8_t *wdata, int wsize, uint8_t *rbuf, int rsize, int ignore)
Performs a generic SPI transfer.
Header file for the SPI HAL.
spi_status_t spi_read_skip(const spi_device_t *dev, int size)
Reads and ignores data from an SPI device.
spi_status_t
SPI return codes.
spi_status_t spi_arch_lock_and_open(const spi_device_t *dev)
Locks and opens an SPI controller to the configuration specified.
spi_status_t spi_strobe(const spi_device_t *dev, uint8_t strobe, uint8_t *result)
Reads and Writes one byte from/to an SPI device.
spi_status_t spi_read_register(const spi_device_t *dev, uint8_t reg, uint8_t *data, int size)
Reads a buffer of bytes from a register of an SPI device.
bool spi_has_bus(const spi_device_t *dev)
Checks if a device has locked an SPI controller.
spi_status_t spi_read_byte(const spi_device_t *dev, uint8_t *buf)
Reads a single byte from an SPI device.
spi_status_t spi_write(const spi_device_t *dev, const uint8_t *data, int size)
Writes a buffer to an SPI device.
spi_status_t spi_acquire(const spi_device_t *dev)
Locks and then opens an SPI controller.
spi_status_t spi_deselect(const spi_device_t *dev)
Deselects the SPI peripheral.
SPI Device Configuration.
spi_status_t spi_release(const spi_device_t *dev)
Closes and then unlocks an SPI controller.
#define SPI_DEVICE_PORT(member, device)
Retrieve the SPI device's port number if applicable.
spi_status_t spi_arch_close_and_unlock(const spi_device_t *dev)
Closes and unlocks an SPI controller.