14#include "../source/dma/sdrv_dma_regdef.h"
18#define SDRV_DMA_LP2_TT(n) ((((n)-1) << 4) & 0xfffff0)
19#define SDRV_DMA_LP2_LPSIZE(n) ((__builtin_ffs(n) - 1) & 0xf)
21#define SDRV_DMA_LP2_LPSIZE_MAX (0x000FFFFF)
24#define SDRV_DMA_LP1_LP_COUNT_MAX (0X00000FFF)
26#define SDRV_DMA_LP1_LPSIZE_MAX (0X00000FFF)
29#define SDRV_DMA_LP0_LPSIZE_MAX (0x00FFFFFF)
31#define SDRV_DMA_MAD_CRC_REGISTERS (7)
577static inline sdrv_dma_channel_ctrl_t *
581 paddr_t ch_base = (paddr_t)(dma_base);
583 return (sdrv_dma_channel_ctrl_t *)(ch_base + SDRV_DMA_CHANNEL_BASE_OFFSET +
584 SDRV_DMA_CHANNEL_SIZE * channel);
597#define SDRV_DMA_LIMIT_TIMES 5
601 if (channel_base->swhs.v == 0) {
606 channel_base->swhs.req = 1;
611 channel_base->swhs.req = 0;
627 sdrv_dma_channel_ctrl_t *ch_base =
630 ch_base->port_cfg.csel = mux_id;
646 sdrv_dma_channel_ctrl_t *ch_base =
649 ch_base->port_cfg.rot = value;
665 sdrv_dma_channel_ctrl_t *ch_base =
668 ch_base->port_cfg.wot = value;
684 sdrv_dma_channel_ctrl_t *ch_base =
687 ch_base->int_en.v = int_type;
699 dma_base->int_cfg.cont_int_clr.v = 0xFFFFFFFF;
700 dma_base->int_cfg.cont_int_clr.v = 0x00000000;
701 dma_base->int_cfg.int_clr.v = 0xFFFFFFFF;
702 dma_base->int_cfg.int_clr.v = 0x00000000;
714 uint32_t *dma_fifo_addr =
715 (uint32_t *)((paddr_t)dma_base + SDRV_DMA_FIFO_OFFSET);
718 for (index = 0; index < (SDRV_DMA_FIFO_SIZE /
sizeof(uint32_t)); index++) {
719 dma_fifo_addr[index] = 0;
735 channel_base->ch_cfg.stop = 1;
736 while (channel_base->ch_cfg.stop)
740 channel_base->ch_cfg.flush = 1;
743 channel_base->ch_cfg.req_flush = 1;
748 channel_base->ch_cfg.halt = 1;
749 else if (channel_base->shadow_op_mod.trigger_mode !=
751 channel_base->ch_cfg.halt = 1;
753 if (channel_base->shadow_op_mod.trigger_mode !=
755 channel_base->ch_cfg.halt = 1;
759 channel_base->ch_cfg.resume = 1;
762 channel_base->ch_cfg.abort = 1;
901 uint32_t xfer_bytes);
SemiDrive driver common header file.
@ SDRV_STATUS_GROUP_DMA
Definition: sdrv_common.h:28
int32_t status_t
Type used for all status and error return values.
Definition: sdrv_common.h:82
#define SDRV_ERROR_STATUS(group, code)
Construct a status code value from a group and code number. All the error statuses are negetive numbe...
Definition: sdrv_common.h:17
#define SDRV_DMA_LIMIT_TIMES
static sdrv_dma_channel_ctrl_t * sdrv_dma_get_channel_ctrl_base(sdrv_dma_ctrl_t *dma_base, sdrv_dma_channel_id_e channel)
get dma channel controller base address.
Definition: sdrv_dma.h:578
sdrv_dma_data_crc_sel_e
DMA Data CRC Sel.
Definition: sdrv_dma.h:428
@ CRC32_802P3
Definition: sdrv_dma.h:429
@ CRC16_CCITT
Definition: sdrv_dma.h:430
@ CRC8_CCITT
Definition: sdrv_dma.h:431
static void sdrv_dma_set_channel_wr_outstanding(sdrv_dma_ctrl_t *dma_base, sdrv_dma_channel_id_e channel, uint8_t value)
set dma channel write outstanding.
Definition: sdrv_dma.h:662
status_t sdrv_dma_clear_channel_xfer_status(sdrv_dma_channel_t *channel, uint32_t status)
Clear DMA channel status.
sdrv_dma_status_e
DMA channel transfer status.
Definition: sdrv_dma.h:376
@ SDRV_DMA_ERR
Definition: sdrv_dma.h:381
@ SDRV_DMA_COMPLETED
Definition: sdrv_dma.h:377
@ SDRV_DMA_PENDING
Definition: sdrv_dma.h:382
@ SDRV_DMA_BLOCK_DONE
Definition: sdrv_dma.h:378
@ SDRV_DMA_PAUSED
Definition: sdrv_dma.h:380
@ SDRV_DMA_IN_PROGRESS
Definition: sdrv_dma.h:379
sdrv_dma_bus_width_e
DMA channel data width for each transaction.
Definition: sdrv_dma.h:127
@ SDRV_DMA_BUSWIDTH_8_BYTES
Definition: sdrv_dma.h:131
@ SDRV_DMA_BUSWIDTH_4_BYTES
Definition: sdrv_dma.h:130
@ SDRV_DMA_BUSWIDTH_1_BYTE
Definition: sdrv_dma.h:128
@ SDRV_DMA_BUSWIDTH_2_BYTES
Definition: sdrv_dma.h:129
status_t sdrv_dma_clear_channel_xfer_bytes(sdrv_dma_channel_t *channel)
Clear DMA channel transfered bytes counter.
sdrv_dma_channel_id_e
DMA Channel ID.
Definition: sdrv_dma.h:47
@ SDRV_DMA_CHANNEL_9
Definition: sdrv_dma.h:58
@ SDRV_DMA_CHANNEL_7
Definition: sdrv_dma.h:56
@ SDRV_DMA_CHANNEL_22
Definition: sdrv_dma.h:71
@ SDRV_DMA_CHANNEL_0
Definition: sdrv_dma.h:49
@ SDRV_DMA_CHANNEL_15
Definition: sdrv_dma.h:64
@ SDRV_DMA_CHANNEL_23
Definition: sdrv_dma.h:72
@ SDRV_DMA_CHANNEL_5
Definition: sdrv_dma.h:54
@ SDRV_DMA_CHANNEL_16
Definition: sdrv_dma.h:65
@ SDRV_DMA_CHANNEL_21
Definition: sdrv_dma.h:70
@ SDRV_DMA_CHANNEL_12
Definition: sdrv_dma.h:61
@ SDRV_DMA_CHANNEL_18
Definition: sdrv_dma.h:67
@ SDRV_DMA_CHANNEL_6
Definition: sdrv_dma.h:55
@ SDRV_DMA_CHANNEL_14
Definition: sdrv_dma.h:63
@ SDRV_DMA_CHANNEL_4
Definition: sdrv_dma.h:53
@ SDRV_DMA_CHANNEL_17
Definition: sdrv_dma.h:66
@ SDRV_DMA_CHANNEL_10
Definition: sdrv_dma.h:59
@ SDRV_DMA_CHANNEL_INVALID
Definition: sdrv_dma.h:48
@ SDRV_DMA_CHANNEL_3
Definition: sdrv_dma.h:52
@ SDRV_DMA_CHANNEL_13
Definition: sdrv_dma.h:62
@ SDRV_DMA_CHANNEL_1
Definition: sdrv_dma.h:50
@ SDRV_DMA_CHANNEL_20
Definition: sdrv_dma.h:69
@ SDRV_DMA_CHANNEL_19
Definition: sdrv_dma.h:68
@ SDRV_DMA_CHANNEL_8
Definition: sdrv_dma.h:57
@ SDRV_DMA_CHANNEL_11
Definition: sdrv_dma.h:60
@ SDRV_DMA_CHANNEL_2
Definition: sdrv_dma.h:51
static void sdrv_dma_set_channel_rd_outstanding(sdrv_dma_ctrl_t *dma_base, sdrv_dma_channel_id_e channel, uint8_t value)
set dma channel read outstanding.
Definition: sdrv_dma.h:643
sdrv_dma_switch_event_ctrl_e
Hardware control after MAD completed just for LOOP_MODE_1.
Definition: sdrv_dma.h:228
@ SDRV_DMA_SWT_EVT_CTL_UNDEFINED
Definition: sdrv_dma.h:240
@ SDRV_DMA_SWT_EVT_CTL_CONTINUE_WTHOUT_INT
Definition: sdrv_dma.h:239
@ SDRV_DMA_SWT_EVT_CTL_STOP_WTH_INT
Definition: sdrv_dma.h:230
@ SDRV_DMA_SWT_EVT_CTL_SUSPEND_WTH_INT
Definition: sdrv_dma.h:233
@ SDRV_DMA_SWT_EVT_CTL_CONTINUE_WTH_INT
Definition: sdrv_dma.h:236
sdrv_dma_loop_mode_e
DMA channel transfer data mode in one handshake.
Definition: sdrv_dma.h:269
@ SDRV_DMA_LOOP_MODE_2
Definition: sdrv_dma.h:272
@ SDRV_DMA_LOOP_MODE_0
Definition: sdrv_dma.h:270
@ SDRV_DMA_LOOP_MODE_UNDEFINED
Definition: sdrv_dma.h:273
@ SDRV_DMA_LOOP_MODE_1
Definition: sdrv_dma.h:271
sdrv_dma_xfer_type_e
DMA channel transfer types.
Definition: sdrv_dma.h:93
@ SDRV_DMA_DIR_MEM2MEM
Definition: sdrv_dma.h:94
@ SDRV_DMA_DIR_MEM2DEV
Definition: sdrv_dma.h:95
@ SDRV_DMA_DIR_NOT_DEFINED
Definition: sdrv_dma.h:102
@ SDRV_DMA_DIR_DEV2MEM
Definition: sdrv_dma.h:96
@ SDRV_DMA_DIR_REG2MEM
Definition: sdrv_dma.h:98
@ SDRV_DMA_DIR_MEM2REG
Definition: sdrv_dma.h:100
@ SDRV_DMA_DIR_DEV2REG
Definition: sdrv_dma.h:101
@ SDRV_DMA_DIR_REG2DEV
Definition: sdrv_dma.h:99
@ SDRV_DMA_DIR_DEV2DEV
Definition: sdrv_dma.h:97
sdrv_dma_interrupt_type_e
DMA channel interrupt types.
Definition: sdrv_dma.h:302
@ SDRV_DMA_AXI_WRITE_ERR
Definition: sdrv_dma.h:318
@ SDRV_DMA_FIREWALL_WR_ERR
Definition: sdrv_dma.h:326
@ SDRV_DMA_SWITCH_EVENT
Definition: sdrv_dma.h:349
@ SDRV_DMA_LAST_MAD_DONE
Definition: sdrv_dma.h:332
@ SDRV_DMA_MAD_CRC_ERR
Definition: sdrv_dma.h:322
@ SDRV_DMA_CHANNEL_FIFO_ECC_COR_ERR
Definition: sdrv_dma.h:308
@ SDRV_DMA_REQ_TIMEOUT
Definition: sdrv_dma.h:347
@ SDRV_DMA_CH_STOP
Definition: sdrv_dma.h:337
@ SDRV_DMA_CH_REQ_FLUSH
Definition: sdrv_dma.h:341
@ SDRV_DMA_PROGRAMING_SEQUENCE_ERR
Definition: sdrv_dma.h:358
@ SDRV_DMA_CH_FLUSH
Definition: sdrv_dma.h:339
@ SDRV_DMA_CHANNEL_FIFO_ECC_UNCOR_ERR
Definition: sdrv_dma.h:310
@ SDRV_DMA_FIREWALL_RD_ERR
Definition: sdrv_dma.h:324
@ SDRV_DMA_AHB_WRITE_ERR
Definition: sdrv_dma.h:314
@ SDRV_DMA_PATTERN_POLL_MISMACTCH
Definition: sdrv_dma.h:354
@ SDRV_DMA_CHANNEL_LINK_ERR
Definition: sdrv_dma.h:320
@ SDRV_DMA_DATA_CRC_ERR
Definition: sdrv_dma.h:328
@ SDRV_DMA_PATTERN_DETECTED
Definition: sdrv_dma.h:330
@ SDRV_DMA_HANDSHAKE_E2E_COR_ERR
Definition: sdrv_dma.h:304
@ SDRV_DMA_HANDSHAKE_E2E_UNCOR_ERR
Definition: sdrv_dma.h:306
@ SDRV_DMA_HS_COMP
Definition: sdrv_dma.h:351
@ SDRV_DMA_CH_ABORT
Definition: sdrv_dma.h:345
@ SDRV_DMA_AHB_READ_ERR
Definition: sdrv_dma.h:312
@ SDRV_DMA_EVERY_MAD_DONE
Definition: sdrv_dma.h:335
@ SDRV_DMA_AXI_READ_ERR
Definition: sdrv_dma.h:316
@ SDRV_DMA_AXI_OUTSTANDING_UTID_ERR
Definition: sdrv_dma.h:356
@ SDRV_DMA_CH_HALT
Definition: sdrv_dma.h:343
status_t sdrv_dma_create_instance(sdrv_dma_t *dma_instance, paddr_t base)
Create DMA controller instance.
void(* sdrv_dma_irq_handler)(uint32_t status, uint32_t param, void *context)
DMA channel interrupt callback type.
Definition: sdrv_dma.h:548
uint32_t sdrv_dma_get_channel_xfer_bytes(sdrv_dma_channel_t *channel)
Get number of transfered bytes for the channel.
sdrv_dma_data_crc_mode_e
DMA Data CRC.
Definition: sdrv_dma.h:412
@ SDRV_DMA_NO_DATA_CRC
Definition: sdrv_dma.h:413
@ SDRV_DMA_DATA_CRC_VERIFY_BETWEEN_WR_RD
Definition: sdrv_dma.h:419
@ SDRV_DMA_DATA_CRC_SENSE
Definition: sdrv_dma.h:414
@ SDRV_DMA_DATA_CRC_VERIFY_WITH_OPD
Definition: sdrv_dma.h:416
sdrv_dma_channel_status_e
DMA channel current status.
Definition: sdrv_dma.h:289
@ SDRV_DMA_CH_STATUS_ABORT
Definition: sdrv_dma.h:296
@ SDRV_DMA_CH_STATUS_ENABLE
Definition: sdrv_dma.h:294
@ SDRV_DMA_CH_STATUS_REQ_FLUSH
Definition: sdrv_dma.h:292
@ SDRV_DMA_CH_STATUS_HALT
Definition: sdrv_dma.h:293
@ SDRV_DMA_CH_STATUS_RESUME
Definition: sdrv_dma.h:295
@ SDRV_DMA_CH_STATUS_STOP
Definition: sdrv_dma.h:290
@ SDRV_DMA_CH_STATUS_FLUSH
Definition: sdrv_dma.h:291
sdrv_dma_channle_ctrl_fsm_e
DMA channel control state machine status.
Definition: sdrv_dma.h:388
@ SDRV_DMA_CH_FSM_HALT
Definition: sdrv_dma.h:394
@ SDRV_DMA_CH_FSM_DATA_TRANSFER
Definition: sdrv_dma.h:392
@ SDRV_DMA_CH_FSM_DONE
Definition: sdrv_dma.h:395
@ SDRV_DMA_CH_FSM_IDLE
Definition: sdrv_dma.h:389
@ SDRV_DMA_CH_FSM_MAD_CHECK
Definition: sdrv_dma.h:390
@ SDRV_DMA_CH_FSM_POLL_OPD2
Definition: sdrv_dma.h:391
@ SDRV_DMA_CH_FSM_STOP
Definition: sdrv_dma.h:393
status_t sdrv_dma_set_channel_destination_address(sdrv_dma_channel_t *channel, paddr_t addr)
Set DMA channel target address.
sdrv_dma_addr_inc_e
DMA channel transfer address increase mode.
Definition: sdrv_dma.h:108
@ SDRV_DMA_ADDR_INC
Definition: sdrv_dma.h:112
@ SDRV_DMA_ADDR_NO_INC
Definition: sdrv_dma.h:116
void sdrv_dma_init_dmac(paddr_t base)
Initialize the DMA controller.
void sdrv_dma_set_channel_buffer_size(sdrv_dma_channel_t *channel, sdrv_dma_loop_mode_e loop_mode, uint32_t total_size, uint32_t loop_size)
set dma channel single transmit buffer size
status_t sdrv_dma_stop_channel_xfer(sdrv_dma_channel_t *channel)
Stop DMA transaction.
static void sdrv_dma_set_channel_muxid(sdrv_dma_ctrl_t *dma_base, sdrv_dma_channel_id_e channel, uint32_t mux_id)
set dma channel mux id.
Definition: sdrv_dma.h:623
sdrv_dma_xfer_mode_e
DMA channel transfer mode.
Definition: sdrv_dma.h:78
@ SDRV_DMA_TRANSFER_MODE_CONTINUOUS
Definition: sdrv_dma.h:82
@ SDRV_DMA_TRANSFER_MODE_SINGLE
Definition: sdrv_dma.h:80
@ SDRV_DMA_TRANSFER_MODE_LINKLIST
Definition: sdrv_dma.h:84
@ SDRV_DMA_TRANSFER_MODE_NOT_DEFINED
Definition: sdrv_dma.h:87
@ SDRV_DMA_TRANSFER_MODE_CHAN_LINK
Definition: sdrv_dma.h:86
status_t sdrv_dma_init_channel_config(sdrv_dma_channel_config_t *config, sdrv_dma_t *instance)
Initialize default configuration for DMA channel.
status_t sdrv_dma_deinit_channel(sdrv_dma_channel_t *channel)
De-initialize the DMA channel.
sdrv_dma_burst_len_e
DMA channel burst length for each transaction.
Definition: sdrv_dma.h:141
@ SDRV_DMA_BURST_LEN_7
Definition: sdrv_dma.h:148
@ SDRV_DMA_BURST_LEN_13
Definition: sdrv_dma.h:154
@ SDRV_DMA_BURST_LEN_6
Definition: sdrv_dma.h:147
@ SDRV_DMA_BURST_LEN_3
Definition: sdrv_dma.h:144
@ SDRV_DMA_BURST_LEN_14
Definition: sdrv_dma.h:155
@ SDRV_DMA_BURST_LEN_8
Definition: sdrv_dma.h:149
@ SDRV_DMA_BURST_LEN_9
Definition: sdrv_dma.h:150
@ SDRV_DMA_BURST_LEN_1
Definition: sdrv_dma.h:142
@ SDRV_DMA_BURST_LEN_12
Definition: sdrv_dma.h:153
@ SDRV_DMA_BURST_LEN_UNDEFINED
Definition: sdrv_dma.h:158
@ SDRV_DMA_BURST_LEN_4
Definition: sdrv_dma.h:145
@ SDRV_DMA_BURST_LEN_2
Definition: sdrv_dma.h:143
@ SDRV_DMA_BURST_LEN_10
Definition: sdrv_dma.h:151
@ SDRV_DMA_BURST_LEN_16
Definition: sdrv_dma.h:157
@ SDRV_DMA_BURST_LEN_5
Definition: sdrv_dma.h:146
@ SDRV_DMA_BURST_LEN_11
Definition: sdrv_dma.h:152
@ SDRV_DMA_BURST_LEN_15
Definition: sdrv_dma.h:156
sdrv_dma_mad_crc_mode_e
DMA MAD CRC.
Definition: sdrv_dma.h:401
@ SDRV_DMA_NO_MAD_CRC
Definition: sdrv_dma.h:402
@ SDRV_DMA_CHECK_CURR_MAD_AND_PREVIOUS
Definition: sdrv_dma.h:404
@ SDRV_DMA_CHECK_CURR_MAD
Definition: sdrv_dma.h:403
@ SDRV_DMA_INVALID_CHANNEL_ID
Definition: sdrv_dma.h:37
@ SDRV_DMA_UNSUPPORT_CONFIG
Definition: sdrv_dma.h:39
@ SDRV_DMA_INVALID_MUXID
Definition: sdrv_dma.h:41
struct sdrv_dma sdrv_dma_t
DMA controller structure.
status_t sdrv_dma_start_channel_xfer(sdrv_dma_channel_t *channel)
Start DMA transaction.
static void sdrv_dma_set_channel_status(sdrv_dma_channel_ctrl_t *channel_base, sdrv_dma_channel_status_e status)
set dma channel status.
Definition: sdrv_dma.h:730
sdrv_dma_trigger_mode_e
DMA channel transfer triggered by which mode.
Definition: sdrv_dma.h:252
@ SDRV_DMA_TRIGGER_BY_HARDWARE
Definition: sdrv_dma.h:253
@ SDRV_DMA_TRIGGER_BY_INTERNAL_EVENT
Definition: sdrv_dma.h:256
@ SDRV_DMA_TRIGGER_BY_GTIMER
Definition: sdrv_dma.h:255
@ SDRV_DMA_TRIGGER_MODE_NOT_DEFINED
Definition: sdrv_dma.h:257
@ SDRV_DMA_TRIGGER_BY_SOFTWARE
Definition: sdrv_dma.h:254
static void sdrv_dma_reset_fifo(sdrv_dma_ctrl_t *dma_base)
reset dma fifo.
Definition: sdrv_dma.h:712
sdrv_dma_port_sel_e
The master port used by DMA source and target ports.
Definition: sdrv_dma.h:168
@ SDRV_DMA_PORT_AXI64
Definition: sdrv_dma.h:172
@ SDRV_DMA_PROT_NOT_DEFINED
Definition: sdrv_dma.h:177
@ SDRV_DMA_PORT_AHB32
Definition: sdrv_dma.h:176
status_t sdrv_dma_set_channel_xfer_bytes(sdrv_dma_channel_t *channel, uint32_t xfer_bytes)
Set transfer length in bytes for the channel.
status_t sdrv_dma_init_linklist_entry(sdrv_dma_linklist_descriptor_t *desc, const sdrv_dma_channel_config_t *config)
Initialize DMA link list descriptor.
static void sdrv_dma_reset_core_int_status(sdrv_dma_ctrl_t *dma_base)
reset dma interrupt type.
Definition: sdrv_dma.h:697
static void sdrv_dma_set_channel_sw_handshake(sdrv_dma_channel_ctrl_t *channel_base)
set dma channel software handshake.
Definition: sdrv_dma.h:595
static void sdrv_dma_set_channel_interrupt(sdrv_dma_ctrl_t *dma_base, sdrv_dma_channel_id_e channel, uint32_t int_type)
set dma channel interrupt type.
Definition: sdrv_dma.h:680
sdrv_dma_linklist_type_e
DMA channel linklist mad types.
Definition: sdrv_dma.h:364
@ SDRV_DMA_LINKLIST_FIRST_MAD
Definition: sdrv_dma.h:368
@ SDRV_DMA_LINKLIST_LAST_MAD
Definition: sdrv_dma.h:370
@ SDRV_DMA_LINKLIST_NORMAL_MAD
Definition: sdrv_dma.h:366
uint32_t sdrv_dma_get_channel_xfer_status(sdrv_dma_channel_t *channel)
Get DMA channel status.
sdrv_dma_mux_direction_e
DMA channel mux direction.
Definition: sdrv_dma.h:279
@ SDRV_DMA_MUX_WR
Definition: sdrv_dma.h:281
@ SDRV_DMA_MUX_BOTH
Definition: sdrv_dma.h:283
@ SDRV_DMA_MUX_RD
Definition: sdrv_dma.h:280
sdrv_dma_buffer_mode_e
The buffer mode used by different application scenarios.
Definition: sdrv_dma.h:192
@ SDRV_DMA_SINGLE_BUFFER
Definition: sdrv_dma.h:196
@ SDRV_DMA_BUFFER_NOT_DEFINED
Definition: sdrv_dma.h:219
@ SDRV_DMA_CIRCULAR_BUFFER
Definition: sdrv_dma.h:212
@ SDRV_DMA_2D_BUFFER
Definition: sdrv_dma.h:218
@ SDRV_DMA_DOUBLE_BUFFER
Definition: sdrv_dma.h:205
status_t sdrv_dma_set_channel_source_address(sdrv_dma_channel_t *channel, paddr_t addr)
Set DMA channel source address.
status_t sdrv_dma_init_channel(sdrv_dma_channel_t *channel, const sdrv_dma_channel_config_t *config)
Initialize DMA channel.
DMA channel configuration structure.
Definition: sdrv_dma.h:479
sdrv_dma_addr_inc_e dst_inc
Definition: sdrv_dma.h:503
sdrv_dma_addr_inc_e src_inc
Definition: sdrv_dma.h:494
uint32_t src_cache
Definition: sdrv_dma.h:518
sdrv_dma_bus_width_e dst_width
Definition: sdrv_dma.h:501
sdrv_dma_data_crc_mode_e data_crc_mode
Definition: sdrv_dma.h:540
sdrv_dma_buffer_mode_e buffer_mode
Definition: sdrv_dma.h:525
sdrv_dma_switch_event_ctrl_e switch_event_ctrl
Definition: sdrv_dma.h:529
uint32_t dst_cache
Definition: sdrv_dma.h:520
sdrv_dma_channel_id_e channel_id
Definition: sdrv_dma.h:483
sdrv_dma_xfer_type_e xfer_type
Definition: sdrv_dma.h:487
sdrv_dma_port_sel_e dst_port_sel
Definition: sdrv_dma.h:516
uint32_t xfer_bytes
Definition: sdrv_dma.h:508
uint32_t src_burst_len
Definition: sdrv_dma.h:496
sdrv_dma_bus_width_e src_width
Definition: sdrv_dma.h:492
uint32_t interrupt_type
Definition: sdrv_dma.h:522
paddr_t linklist_addr
Definition: sdrv_dma.h:534
sdrv_dma_mad_crc_mode_e mad_crc_mode
Definition: sdrv_dma.h:538
uint32_t dst_burst_len
Definition: sdrv_dma.h:505
sdrv_dma_port_sel_e src_port_sel
Definition: sdrv_dma.h:514
paddr_t dst_addr
Definition: sdrv_dma.h:499
int mux_id
Definition: sdrv_dma.h:511
sdrv_dma_t * instance
Definition: sdrv_dma.h:481
sdrv_dma_linklist_type_e linklist_mad_type
Definition: sdrv_dma.h:536
paddr_t src_addr
Definition: sdrv_dma.h:490
sdrv_dma_xfer_mode_e xfer_mode
Definition: sdrv_dma.h:485
sdrv_dma_loop_mode_e loop_mode
Definition: sdrv_dma.h:527
sdrv_dma_trigger_mode_e trig_mode
Definition: sdrv_dma.h:531
sdrv_dma_data_crc_sel_e data_crc_sel
Definition: sdrv_dma.h:542
DMA channel structure.
Definition: sdrv_dma.h:554
void * irq_context
Definition: sdrv_dma.h:564
sdrv_dma_channel_id_e channel_id
Definition: sdrv_dma.h:558
sdrv_dma_channel_ctrl_t * channel
Definition: sdrv_dma.h:560
sdrv_dma_irq_handler irq_callback
Definition: sdrv_dma.h:562
sdrv_dma_ctrl_t * dma
Definition: sdrv_dma.h:556
DMA link list descriptor.
Definition: sdrv_dma.h:450
sdrv_dma_ch_tr_ctrl_reg xfer_ctrl
Definition: sdrv_dma.h:456
sdrv_dma_ch_mad_crc_reg mad_crc
Definition: sdrv_dma.h:464
sdrv_dma_ch_blk_cfg_reg blk_cfg
Definition: sdrv_dma.h:458
sdrv_dma_ch_op_data_reg op_data
Definition: sdrv_dma.h:462
sdrv_dma_ch_ll_addr_reg link_addr
Definition: sdrv_dma.h:466
sdrv_dma_ch_dst_reg dst
Definition: sdrv_dma.h:454
sdrv_dma_ch_src_reg src
Definition: sdrv_dma.h:452
sdrv_dma_ch_op_mod_reg op_mod
Definition: sdrv_dma.h:460
DMA channel mux param structure.
Definition: sdrv_dma.h:437
uint64_t start_addr
Definition: sdrv_dma.h:439
uint32_t port
Definition: sdrv_dma.h:438
sdrv_dma_mux_direction_e direct
Definition: sdrv_dma.h:441
uint64_t len
Definition: sdrv_dma.h:440
DMA controller structure.
Definition: sdrv_dma.h:472
sdrv_dma_ctrl_t * dma
Definition: sdrv_dma.h:473