39#define AXI_DMAC_REG_IRQ_MASK 0x80
40#define AXI_DMAC_REG_IRQ_PENDING 0x84
41#define AXI_DMAC_IRQ_SOT NO_OS_BIT(0)
42#define AXI_DMAC_IRQ_EOT NO_OS_BIT(1)
44#define AXI_DMAC_REG_INTF_DESC 0x010
45#define AXI_DMAC_DMA_BPB_DEST NO_OS_GENMASK(3,0)
46#define AXI_DMAC_DMA_TYPE_DEST NO_OS_GENMASK(5,4)
47#define AXI_DMAC_DMA_BPB_SRC NO_OS_GENMASK(11,8)
48#define AXI_DMAC_DMA_TYPE_SRC NO_OS_GENMASK(13,12)
51#define AXI_DMAC_REG_CTRL 0x400
52#define AXI_DMAC_CTRL_ENABLE NO_OS_BIT(0)
53#define AXI_DMAC_CTRL_DISABLE 0u
54#define AXI_DMAC_CTRL_PAUSE NO_OS_BIT(1)
56#define AXI_DMAC_REG_TRANSFER_ID 0x404
57#define AXI_DMAC_REG_TRANSFER_SUBMIT 0x408
58#define AXI_DMAC_TRANSFER_SUBMIT NO_OS_BIT(0)
59#define AXI_DMAC_QUEUE_FULL NO_OS_BIT(0)
60#define AXI_DMAC_REG_FLAGS 0x40c
61#define AXI_DMAC_REG_DEST_ADDRESS 0x410
62#define AXI_DMAC_REG_SRC_ADDRESS 0x414
63#define AXI_DMAC_REG_X_LENGTH 0x418
64#define AXI_DMAC_REG_Y_LENGTH 0x41c
65#define AXI_DMAC_REG_DEST_STRIDE 0x420
66#define AXI_DMAC_REG_SRC_STRIDE 0x424
67#define AXI_DMAC_REG_TRANSFER_DONE 0x428
139 uint32_t timeout_ms);
void axi_dmac_mem_to_dev_isr(void *instance)
Definition axi_dmac.c:99
int32_t axi_dmac_is_transfer_ready(struct axi_dmac *dmac, bool *rdy)
Definition axi_dmac.c:254
void axi_dmac_dev_to_mem_isr(void *instance)
Definition axi_dmac.c:50
int32_t axi_dmac_remove(struct axi_dmac *dmac)
Definition axi_dmac.c:358
int32_t axi_dmac_transfer_wait_completion(struct axi_dmac *dmac, uint32_t timeout_ms)
Definition axi_dmac.c:516
void axi_dmac_mem_to_mem_isr(void *instance)
Definition axi_dmac.c:154
int32_t axi_dmac_init(struct axi_dmac **adc_core, const struct axi_dmac_init *init)
Definition axi_dmac.c:325
void axi_dmac_transfer_stop(struct axi_dmac *dmac)
Definition axi_dmac.c:554
void axi_dmac_write_isr(void *instance)
int32_t axi_dmac_transfer_start(struct axi_dmac *dmac, struct axi_dma_transfer *dma_transfer)
Definition axi_dmac.c:376
use_irq
Definition axi_dmac.h:69
@ IRQ_DISABLED
Definition axi_dmac.h:70
@ IRQ_ENABLED
Definition axi_dmac.h:71
dma_flags
Definition axi_dmac.h:81
@ DMA_PARTIAL_REPORTING_EN
Definition axi_dmac.h:84
@ DMA_CYCLIC
Definition axi_dmac.h:82
@ DMA_LAST
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:217
dma_direction
Definition axi_dmac.h:74
@ DMA_DEV_TO_MEM
Definition axi_dmac.h:76
@ INVALID_DIR
Definition axi_dmac.h:75
@ DMA_MEM_TO_DEV
Definition axi_dmac.h:77
@ DMA_MEM_TO_MEM
Definition axi_dmac.h:78
cyclic_transfer
Definition axi_dmac.h:88
@ NO
Definition axi_dmac.h:89
@ CYCLIC
Definition axi_dmac.h:90
int32_t axi_dmac_write(struct axi_dmac *dmac, uint32_t reg_addr, uint32_t reg_data)
Definition axi_dmac.c:235
Header file of utility functions.
volatile bool transfer_done
Definition axi_dmac.h:95
enum cyclic_transfer cyclic
Definition axi_dmac.h:96
uint32_t src_addr
Definition axi_dmac.h:97
uint32_t size
Definition axi_dmac.h:94
uint32_t dest_addr
Definition axi_dmac.h:98
Definition axi_dmac.h:118
const char * name
Definition axi_dmac.h:119
enum use_irq irq_option
Definition axi_dmac.h:121
uint32_t base
Definition axi_dmac.h:120
Definition axi_dmac.h:101
enum use_irq irq_option
Definition axi_dmac.h:104
enum dma_direction direction
Definition axi_dmac.h:105
uint32_t base
Definition axi_dmac.h:103
uint32_t max_length
Definition axi_dmac.h:107
uint32_t init_addr
Definition axi_dmac.h:112
uint32_t remaining_size
Definition axi_dmac.h:113
uint32_t width_src
Definition axi_dmac.h:109
uint32_t width_dst
Definition axi_dmac.h:108
uint32_t next_src_addr
Definition axi_dmac.h:114
bool hw_cyclic
Definition axi_dmac.h:106
uint32_t next_dest_addr
Definition axi_dmac.h:115
const char * name
Definition axi_dmac.h:102
volatile struct axi_dma_transfer transfer
Definition axi_dmac.h:110