Go to the documentation of this file.
51 #define AXI_DMAC_REG_IRQ_MASK 0x80
52 #define AXI_DMAC_REG_IRQ_PENDING 0x84
53 #define AXI_DMAC_IRQ_SOT NO_OS_BIT(0)
54 #define AXI_DMAC_IRQ_EOT NO_OS_BIT(1)
56 #define AXI_DMAC_REG_INTF_DESC 0x010
57 #define AXI_DMAC_DMA_TYPE_DEST NO_OS_GENMASK(5,4)
58 #define AXI_DMAC_DMA_TYPE_SRC NO_OS_GENMASK(13,12)
61 #define AXI_DMAC_REG_CTRL 0x400
62 #define AXI_DMAC_CTRL_ENABLE NO_OS_BIT(0)
63 #define AXI_DMAC_CTRL_DISABLE 0u
64 #define AXI_DMAC_CTRL_PAUSE NO_OS_BIT(1)
66 #define AXI_DMAC_REG_TRANSFER_ID 0x404
67 #define AXI_DMAC_REG_TRANSFER_SUBMIT 0x408
68 #define AXI_DMAC_TRANSFER_SUBMIT NO_OS_BIT(0)
69 #define AXI_DMAC_QUEUE_FULL NO_OS_BIT(0)
70 #define AXI_DMAC_REG_FLAGS 0x40c
71 #define AXI_DMAC_REG_DEST_ADDRESS 0x410
72 #define AXI_DMAC_REG_SRC_ADDRESS 0x414
73 #define AXI_DMAC_REG_X_LENGTH 0x418
74 #define AXI_DMAC_REG_Y_LENGTH 0x41c
75 #define AXI_DMAC_REG_DEST_STRIDE 0x420
76 #define AXI_DMAC_REG_SRC_STRIDE 0x424
77 #define AXI_DMAC_REG_TRANSFER_DONE 0x428
153 uint32_t timeout_ms);
#define AXI_DMAC_CTRL_ENABLE
Definition: axi_dmac.h:62
@ DMA_MEM_TO_MEM
Definition: axi_dmac.h:91
int32_t axi_dmac_is_transfer_ready(struct axi_dmac *dmac, bool *rdy)
Definition: axi_dmac.c:269
uint32_t timeout
Definition: ad413x.c:55
uint32_t base
Definition: axi_dmac.h:131
#define AXI_DMAC_REG_X_LENGTH
Definition: axi_dmac.h:73
volatile struct axi_dma_transfer transfer
Definition: axi_dmac.h:121
uint32_t max_length
Definition: axi_dmac.h:120
enum dma_direction direction
Definition: axi_dmac.h:118
void axi_dmac_mem_to_dev_isr(void *instance)
Definition: axi_dmac.c:112
int32_t axi_dmac_transfer_start(struct axi_dmac *dmac, struct axi_dma_transfer *dma_transfer)
Definition: axi_dmac.c:379
Definition: axi_dmac.h:129
uint32_t next_dest_addr
Definition: axi_dmac.h:126
const char * name
Definition: axi_dmac.h:130
void axi_dmac_write_isr(void *instance)
#define AXI_DMAC_REG_SRC_ADDRESS
Definition: axi_dmac.h:72
@ DMA_PARTIAL_REPORTING_EN
Definition: axi_dmac.h:97
int32_t axi_dmac_transfer_wait_completion(struct axi_dmac *dmac, uint32_t timeout_ms)
Definition: axi_dmac.c:507
volatile bool transfer_done
Definition: axi_dmac.h:108
Header file of Delay functions.
int32_t axi_dmac_write(struct axi_dmac *dmac, uint32_t reg_addr, uint32_t reg_data)
Definition: axi_dmac.c:250
void axi_dmac_transfer_stop(struct axi_dmac *dmac)
Definition: axi_dmac.c:545
void * no_os_calloc(size_t nitems, size_t size)
void axi_dmac_mem_to_dev_isr(void *instance)
Definition: axi_dmac.c:112
#define AXI_DMAC_REG_SRC_STRIDE
Definition: axi_dmac.h:76
uint32_t next_src_addr
Definition: axi_dmac.h:125
#define AXI_DMAC_QUEUE_FULL
Definition: axi_dmac.h:69
int32_t axi_dmac_remove(struct axi_dmac *dmac)
Definition: axi_dmac.c:361
@ DMA_MEM_TO_DEV
Definition: axi_dmac.h:90
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:132
Definition: axi_dmac.h:106
use_irq
Definition: axi_dmac.h:82
int32_t axi_dmac_transfer_wait_completion(struct axi_dmac *dmac, uint32_t timeout_ms)
Definition: axi_dmac.c:507
@ IRQ_DISABLED
Definition: axi_dmac.h:83
int32_t axi_dmac_read(struct axi_dmac *dmac, uint32_t reg_addr, uint32_t *reg_data)
Definition: axi_dmac.c:232
#define AXI_DMAC_REG_IRQ_PENDING
Definition: axi_dmac.h:52
#define AXI_DMAC_REG_TRANSFER_SUBMIT
Definition: axi_dmac.h:67
#define AXI_DMAC_CTRL_DISABLE
Definition: axi_dmac.h:63
@ IRQ_ENABLED
Definition: axi_dmac.h:84
int32_t axi_dmac_init(struct axi_dmac **adc_core, const struct axi_dmac_init *init)
Definition: axi_dmac.c:332
dma_direction
Definition: axi_dmac.h:87
Driver for the Analog Devices AXI-DMAC core.
#define AXI_DMAC_REG_IRQ_MASK
Definition: axi_dmac.h:51
uint32_t src_addr
Definition: axi_dmac.h:110
dma_flags
Definition: axi_dmac.h:94
uint32_t dest_addr
Definition: axi_dmac.h:111
#define AXI_DMAC_IRQ_EOT
Definition: axi_dmac.h:54
int32_t no_os_axi_io_read(uint32_t base, uint32_t offset, uint32_t *data)
AXI IO Altera specific read function.
Definition: altera_axi_io.c:59
cyclic_transfer
Definition: axi_dmac.h:101
int32_t axi_dmac_remove(struct axi_dmac *dmac)
Definition: axi_dmac.c:361
#define AXI_DMAC_IRQ_SOT
Definition: axi_dmac.h:53
enum use_irq irq_option
Definition: axi_dmac.h:132
void axi_dmac_dev_to_mem_isr(void *instance)
Definition: axi_dmac.c:61
enum cyclic_transfer cyclic
Definition: axi_dmac.h:109
int32_t axi_dmac_is_transfer_ready(struct axi_dmac *dmac, bool *rdy)
Definition: axi_dmac.c:269
int32_t axi_dmac_write(struct axi_dmac *dmac, uint32_t reg_addr, uint32_t reg_data)
Definition: axi_dmac.c:250
#define AXI_DMAC_TRANSFER_SUBMIT
Definition: axi_dmac.h:68
#define AXI_DMAC_REG_DEST_ADDRESS
Definition: axi_dmac.h:71
void axi_dmac_transfer_stop(struct axi_dmac *dmac)
Definition: axi_dmac.c:545
#define AXI_DMAC_REG_FLAGS
Definition: axi_dmac.h:70
@ INVALID_DIR
Definition: axi_dmac.h:88
@ NO
Definition: axi_dmac.h:102
void no_os_free(void *ptr)
@ DMA_CYCLIC
Definition: axi_dmac.h:95
int32_t axi_dmac_init(struct axi_dmac **dmac_core, const struct axi_dmac_init *init)
Definition: axi_dmac.c:332
@ CYCLIC
Definition: axi_dmac.h:103
void axi_dmac_mem_to_mem_isr(void *instance)
Definition: axi_dmac.c:169
bool hw_cyclic
Definition: axi_dmac.h:119
uint32_t base
Definition: axi_dmac.h:116
void axi_dmac_dev_to_mem_isr(void *instance)
Definition: axi_dmac.c:61
uint32_t init_addr
Definition: axi_dmac.h:123
int32_t no_os_axi_io_write(uint32_t base, uint32_t offset, uint32_t data)
AXI IO Altera specific write function.
Definition: altera_axi_io.c:73
#define AXI_DMAC_REG_CTRL
Definition: axi_dmac.h:61
int32_t axi_dmac_read(struct axi_dmac *dmac, uint32_t reg_addr, uint32_t *reg_data)
Definition: axi_dmac.c:232
int32_t axi_dmac_transfer_start(struct axi_dmac *dmac, struct axi_dma_transfer *dma_transfer)
Definition: axi_dmac.c:379
@ DMA_LAST
Definition: axi_dmac.h:96
Header file of utility functions.
@ DMA_DEV_TO_MEM
Definition: axi_dmac.h:89
#define AXI_DMAC_REG_DEST_STRIDE
Definition: axi_dmac.h:75
uint32_t remaining_size
Definition: axi_dmac.h:124
uint32_t size
Definition: axi_dmac.h:107
#define AXI_DMAC_REG_Y_LENGTH
Definition: axi_dmac.h:74
enum use_irq irq_option
Definition: axi_dmac.h:117
const char * name
Definition: axi_dmac.h:115
Definition: axi_dmac.h:114
void axi_dmac_mem_to_mem_isr(void *instance)
Definition: axi_dmac.c:169