9 #include "qm_soc_regs.h"
115 QM_SPI_UPDATE_RX = BIT(0),
116 QM_SPI_UPDATE_TX = BIT(1),
133 uint16_t clk_divider;
316 const qm_spi_update_t update);
int qm_spi_set_config(const qm_spi_t spi, const qm_spi_config_t *const cfg)
Set SPI configuration.
qm_spi_slave_select_t
SPI slave select type.
qm_spi_frame_size_t
QM SPI frame size type.
int qm_spi_irq_transfer(const qm_spi_t spi, volatile const qm_spi_async_transfer_t *const xfer)
Interrupt based transfer on SPI.
int qm_spi_dma_channel_config(const qm_spi_t spi, const qm_dma_t dma_ctrl_id, const qm_dma_channel_id_t dma_channel_id, const qm_dma_channel_direction_t dma_channel_direction)
Configure a DMA channel with a specific transfer direction.
int qm_spi_dma_transfer_terminate(const qm_spi_t spi)
Terminate the current DMA transfer on the SPI bus.
uint16_t tx_len
Number of data frames to write.
int qm_spi_transfer(const qm_spi_t spi, const qm_spi_transfer_t *const xfer, qm_spi_status_t *const status)
Multi-frame read / write on SPI.
SPI synchronous transfer type.
int qm_spi_slave_select(const qm_spi_t spi, const qm_spi_slave_select_t ss)
Select which slave to perform SPI transmissions on.
Clock Polarity = 0, Clock Phase = 1.
Clock Polarity = 1, Clock Phase = 1.
int qm_spi_irq_transfer_terminate(const qm_spi_t spi)
Terminate SPI IRQ transfer.
Clock Polarity = 1, Clock Phase = 0.
bool keep_enabled
Keep device on once transfer is done.
qm_spi_t
Number of SPI controllers.
uint16_t tx_len
Number of data frames to write.
qm_spi_status_t
SPI status.
int qm_spi_dma_transfer(const qm_spi_t spi, const qm_spi_async_transfer_t *const xfer)
Perform a DMA-based transfer on the SPI bus.
SPI aynchronous transfer type.
qm_spi_tmode_t
SPI transfer mode type.
Clock Polarity = 0, Clock Phase = 0.
int qm_spi_save_context(const qm_spi_t spi, qm_spi_context_t *const ctx)
Save SPI context.
qm_dma_channel_direction_t
DMA channel direction.
SPI device is not in use.
qm_spi_bmode_t
SPI bus mode type.
void * callback_data
Callback user data.
int qm_spi_get_status(const qm_spi_t spi, qm_spi_status_t *const status)
Get SPI bus status.
uint16_t rx_len
Number of data frames to read.
qm_spi_frame_format_t
QM SPI Frame Format.
int qm_spi_irq_update(const qm_spi_t spi, volatile const qm_spi_async_transfer_t *const xfer, const qm_spi_update_t update)
Update parameters of Interrupt based transfer on SPI.
qm_dma_channel_id_t
DMA channel IDs.
uint16_t rx_len
Number of data frames to read.
int qm_spi_restore_context(const qm_spi_t spi, const qm_spi_context_t *const ctx)
Restore SPI context.
RX transfer has overflown.