43#define OFFLOAD_DISABLED 0x00
44#define OFFLOAD_TX_EN NO_OS_BIT(0)
45#define OFFLOAD_RX_EN NO_OS_BIT(1)
46#define OFFLOAD_TX_RX_EN OFFLOAD_TX_EN | OFFLOAD_RX_EN
48#define SPI_ENGINE_MSG_QUEUE_END 0xFFFFFFFF
51#define WRITE(no_bytes) ((SPI_ENGINE_INST_TRANSFER << 12) |\
52 (SPI_ENGINE_INSTRUCTION_TRANSFER_W << 8) | no_bytes)
54#define READ(no_bytes) ((SPI_ENGINE_INST_TRANSFER << 12) |\
55 (SPI_ENGINE_INSTRUCTION_TRANSFER_R << 8) | no_bytes)
57#define WRITE_READ(no_bytes) ((SPI_ENGINE_INST_TRANSFER << 12) |\
58 (SPI_ENGINE_INSTRUCTION_TRANSFER_RW << 8) | no_bytes)
60#define SLEEP(time) SPI_ENGINE_CMD_SLEEP(time & 0xF)
64#define CS_HIGH SPI_ENGINE_CMD_ASSERT(0x03, 0xFF)
65#define CS_LOW SPI_ENGINE_CMD_ASSERT(0x03, 0x00)
179 uint16_t bytes_number);
191 uint32_t no_samples);
Driver for the Analog Devices AXI-DMAC core.
cyclic_transfer
Definition axi_dmac.h:88
const struct no_os_spi_platform_ops spi_eng_platform_ops
Spi engine platform specific SPI platform ops structure.
Definition spi_engine.c:58
int32_t spi_engine_offload_init(struct no_os_spi_desc *desc, const struct spi_engine_offload_init_param *param)
Initialize the SPI engine's offload module.
Definition spi_engine.c:755
int32_t spi_engine_offload_transfer(struct no_os_spi_desc *desc, struct spi_engine_offload_message msg, uint32_t no_samples)
Initiate a SPI transfer in offload mode.
Definition spi_engine.c:801
int32_t spi_engine_write(struct spi_engine_desc *desc, uint32_t reg_addr, uint32_t reg_data)
Write SPI Engine's axi registers.
Definition spi_engine.c:79
int32_t spi_engine_set_transfer_width(struct no_os_spi_desc *desc, uint8_t data_wdith)
Set width of the transfered word over SPI.
Definition spi_engine.c:116
int32_t spi_engine_read(struct spi_engine_desc *desc, uint32_t reg_addr, uint32_t *reg_data)
Read SPI Engine's axi registers.
Definition spi_engine.c:97
int32_t spi_engine_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the spi engine.
Definition spi_engine.c:615
int32_t spi_engine_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition spi_engine.c:897
int32_t spi_engine_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write/read on the spi interface.
Definition spi_engine.c:685
void spi_engine_set_speed(struct no_os_spi_desc *desc, uint32_t speed_hz)
Set SPI engine clock frequency.
Definition spi_engine.c:137
Definition axi_dmac.h:101
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
Structure representing an SPI engine device.
Definition spi_engine.h:89
struct axi_dmac * offload_rx_dma
Definition spi_engine.h:95
uint32_t rx_dma_baseaddr
Definition spi_engine.h:107
enum cyclic_transfer cyclic
Definition spi_engine.h:97
uint8_t data_width
Definition spi_engine.h:115
uint8_t offload_tx_len
Definition spi_engine.h:101
uint8_t offload_config
Definition spi_engine.h:99
uint32_t clk_div
Definition spi_engine.h:113
uint32_t tx_dma_baseaddr
Definition spi_engine.h:109
struct axi_dmac * offload_tx_dma
Definition spi_engine.h:93
uint8_t sdo_idle_state
Definition spi_engine.h:119
uint8_t offload_rx_len
Definition spi_engine.h:103
uint32_t ref_clk_hz
Definition spi_engine.h:91
uint8_t max_data_width
Definition spi_engine.h:117
uint8_t cs_delay
Definition spi_engine.h:111
uint32_t spi_engine_baseaddr
Definition spi_engine.h:105
Structure containing the init parameters needed by the SPI engine.
Definition spi_engine.h:71
uint32_t spi_engine_baseaddr
Definition spi_engine.h:75
uint32_t ref_clk_hz
Definition spi_engine.h:73
uint8_t sdo_idle_state
Definition spi_engine.h:81
uint32_t cs_delay
Definition spi_engine.h:77
uint8_t data_width
Definition spi_engine.h:79
Structure containing the init parameters needed by the offload module.
Definition spi_engine.h:127
uint32_t dma_flags
Definition spi_engine.h:133
uint8_t offload_config
Definition spi_engine.h:135
uint32_t tx_dma_baseaddr
Definition spi_engine.h:131
uint32_t rx_dma_baseaddr
Definition spi_engine.h:129
Structure representing an offload message.
Definition spi_engine.h:142
uint32_t tx_addr
Definition spi_engine.h:153
uint32_t * commands
Definition spi_engine.h:147
uint32_t no_commands
Definition spi_engine.h:149
uint32_t * commands_data
Definition spi_engine.h:151
uint32_t rx_addr
Definition spi_engine.h:155