Go to the documentation of this file.
45 #define AXI_DMAC_REG_IRQ_MASK 0x80
46 #define AXI_DMAC_REG_IRQ_PENDING 0x84
47 #define AXI_DMAC_IRQ_SOT NO_OS_BIT(0)
48 #define AXI_DMAC_IRQ_EOT NO_OS_BIT(1)
50 #define AXI_DMAC_REG_INTF_DESC 0x010
51 #define AXI_DMAC_DMA_BPB_DEST NO_OS_GENMASK(3,0)
52 #define AXI_DMAC_DMA_TYPE_DEST NO_OS_GENMASK(5,4)
53 #define AXI_DMAC_DMA_BPB_SRC NO_OS_GENMASK(11,8)
54 #define AXI_DMAC_DMA_TYPE_SRC NO_OS_GENMASK(13,12)
57 #define AXI_DMAC_REG_CTRL 0x400
58 #define AXI_DMAC_CTRL_ENABLE NO_OS_BIT(0)
59 #define AXI_DMAC_CTRL_DISABLE 0u
60 #define AXI_DMAC_CTRL_PAUSE NO_OS_BIT(1)
62 #define AXI_DMAC_REG_TRANSFER_ID 0x404
63 #define AXI_DMAC_REG_TRANSFER_SUBMIT 0x408
64 #define AXI_DMAC_TRANSFER_SUBMIT NO_OS_BIT(0)
65 #define AXI_DMAC_QUEUE_FULL NO_OS_BIT(0)
66 #define AXI_DMAC_REG_FLAGS 0x40c
67 #define AXI_DMAC_REG_DEST_ADDRESS 0x410
68 #define AXI_DMAC_REG_SRC_ADDRESS 0x414
69 #define AXI_DMAC_REG_X_LENGTH 0x418
70 #define AXI_DMAC_REG_Y_LENGTH 0x41c
71 #define AXI_DMAC_REG_DEST_STRIDE 0x420
72 #define AXI_DMAC_REG_SRC_STRIDE 0x424
73 #define AXI_DMAC_REG_TRANSFER_DONE 0x428
151 uint32_t timeout_ms);
#define AXI_DMAC_CTRL_ENABLE
Definition: axi_dmac.h:58
@ DMA_MEM_TO_MEM
Definition: axi_dmac.h:87
int32_t axi_dmac_is_transfer_ready(struct axi_dmac *dmac, bool *rdy)
Definition: axi_dmac.c:263
#define AXI_DMAC_REG_INTF_DESC
Definition: axi_dmac.h:50
uint32_t timeout
Definition: ad413x.c:49
uint32_t base
Definition: axi_dmac.h:129
#define AXI_DMAC_REG_X_LENGTH
Definition: axi_dmac.h:69
volatile struct axi_dma_transfer transfer
Definition: axi_dmac.h:119
uint32_t max_length
Definition: axi_dmac.h:116
enum dma_direction direction
Definition: axi_dmac.h:114
void axi_dmac_mem_to_dev_isr(void *instance)
Definition: axi_dmac.c:106
int32_t axi_dmac_transfer_start(struct axi_dmac *dmac, struct axi_dma_transfer *dma_transfer)
Definition: axi_dmac.c:385
Definition: axi_dmac.h:127
uint32_t next_dest_addr
Definition: axi_dmac.h:124
const char * name
Definition: axi_dmac.h:128
uint32_t width_dst
Definition: axi_dmac.h:117
void axi_dmac_write_isr(void *instance)
#define AXI_DMAC_REG_SRC_ADDRESS
Definition: axi_dmac.h:68
@ DMA_PARTIAL_REPORTING_EN
Definition: axi_dmac.h:93
int32_t axi_dmac_transfer_wait_completion(struct axi_dmac *dmac, uint32_t timeout_ms)
Definition: axi_dmac.c:525
volatile bool transfer_done
Definition: axi_dmac.h:104
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:244
void axi_dmac_transfer_stop(struct axi_dmac *dmac)
Definition: axi_dmac.c:564
#define AXI_DMAC_DMA_BPB_DEST
Definition: axi_dmac.h:51
void * no_os_calloc(size_t nitems, size_t size)
Allocate memory and return a pointer to it, set memory to 0.
Definition: chibios_alloc.c:54
void axi_dmac_mem_to_dev_isr(void *instance)
Definition: axi_dmac.c:106
#define AXI_DMAC_REG_SRC_STRIDE
Definition: axi_dmac.h:72
uint32_t next_src_addr
Definition: axi_dmac.h:123
#define AXI_DMAC_QUEUE_FULL
Definition: axi_dmac.h:65
int32_t axi_dmac_remove(struct axi_dmac *dmac)
Definition: axi_dmac.c:367
@ DMA_MEM_TO_DEV
Definition: axi_dmac.h:86
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:126
Definition: axi_dmac.h:102
use_irq
Definition: axi_dmac.h:78
int32_t axi_dmac_transfer_wait_completion(struct axi_dmac *dmac, uint32_t timeout_ms)
Definition: axi_dmac.c:525
@ IRQ_DISABLED
Definition: axi_dmac.h:79
int32_t axi_dmac_read(struct axi_dmac *dmac, uint32_t reg_addr, uint32_t *reg_data)
Definition: axi_dmac.c:226
#define AXI_DMAC_REG_IRQ_PENDING
Definition: axi_dmac.h:46
#define AXI_DMAC_REG_TRANSFER_SUBMIT
Definition: axi_dmac.h:63
#define AXI_DMAC_CTRL_DISABLE
Definition: axi_dmac.h:59
@ IRQ_ENABLED
Definition: axi_dmac.h:80
int32_t axi_dmac_init(struct axi_dmac **adc_core, const struct axi_dmac_init *init)
Definition: axi_dmac.c:334
dma_direction
Definition: axi_dmac.h:83
Driver for the Analog Devices AXI-DMAC core.
#define AXI_DMAC_REG_IRQ_MASK
Definition: axi_dmac.h:45
uint32_t src_addr
Definition: axi_dmac.h:106
dma_flags
Definition: axi_dmac.h:90
uint32_t dest_addr
Definition: axi_dmac.h:107
#define AXI_DMAC_IRQ_EOT
Definition: axi_dmac.h:48
uint32_t width_src
Definition: axi_dmac.h:118
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:53
cyclic_transfer
Definition: axi_dmac.h:97
int32_t axi_dmac_remove(struct axi_dmac *dmac)
Definition: axi_dmac.c:367
#define AXI_DMAC_IRQ_SOT
Definition: axi_dmac.h:47
enum use_irq irq_option
Definition: axi_dmac.h:130
void axi_dmac_dev_to_mem_isr(void *instance)
Definition: axi_dmac.c:55
enum cyclic_transfer cyclic
Definition: axi_dmac.h:105
int32_t axi_dmac_is_transfer_ready(struct axi_dmac *dmac, bool *rdy)
Definition: axi_dmac.c:263
int32_t axi_dmac_write(struct axi_dmac *dmac, uint32_t reg_addr, uint32_t reg_data)
Definition: axi_dmac.c:244
#define AXI_DMAC_TRANSFER_SUBMIT
Definition: axi_dmac.h:64
#define AXI_DMAC_REG_DEST_ADDRESS
Definition: axi_dmac.h:67
void axi_dmac_transfer_stop(struct axi_dmac *dmac)
Definition: axi_dmac.c:564
uint32_t no_os_field_get(uint32_t mask, uint32_t word)
#define AXI_DMAC_REG_FLAGS
Definition: axi_dmac.h:66
@ INVALID_DIR
Definition: axi_dmac.h:84
@ NO
Definition: axi_dmac.h:98
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:69
@ DMA_CYCLIC
Definition: axi_dmac.h:91
int32_t axi_dmac_init(struct axi_dmac **dmac_core, const struct axi_dmac_init *init)
Definition: axi_dmac.c:334
@ CYCLIC
Definition: axi_dmac.h:99
void axi_dmac_mem_to_mem_isr(void *instance)
Definition: axi_dmac.c:163
bool hw_cyclic
Definition: axi_dmac.h:115
uint32_t base
Definition: axi_dmac.h:112
void axi_dmac_dev_to_mem_isr(void *instance)
Definition: axi_dmac.c:55
uint32_t init_addr
Definition: axi_dmac.h:121
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:67
#define AXI_DMAC_REG_CTRL
Definition: axi_dmac.h:57
int32_t axi_dmac_read(struct axi_dmac *dmac, uint32_t reg_addr, uint32_t *reg_data)
Definition: axi_dmac.c:226
int32_t axi_dmac_transfer_start(struct axi_dmac *dmac, struct axi_dma_transfer *dma_transfer)
Definition: axi_dmac.c:385
@ DMA_LAST
Definition: axi_dmac.h:92
Header file of utility functions.
@ DMA_DEV_TO_MEM
Definition: axi_dmac.h:85
#define AXI_DMAC_REG_DEST_STRIDE
Definition: axi_dmac.h:71
#define AXI_DMAC_DMA_BPB_SRC
Definition: axi_dmac.h:53
uint32_t remaining_size
Definition: axi_dmac.h:122
uint32_t size
Definition: axi_dmac.h:103
#define AXI_DMAC_REG_Y_LENGTH
Definition: axi_dmac.h:70
enum use_irq irq_option
Definition: axi_dmac.h:113
const char * name
Definition: axi_dmac.h:111
Definition: axi_dmac.h:110
void axi_dmac_mem_to_mem_isr(void *instance)
Definition: axi_dmac.c:163