9 #include "qm_soc_regs.h"
109 void (*client_callback)(
void *callback_context, uint32_t len,
122 uint32_t source_address;
123 uint32_t destination_address;
124 uint32_t linked_list_address;
128 } qm_dma_linked_list_item_t;
uint16_t num_blocks
Number of contiguous blocks to be transfered.
Burst length 256 data items.
DMA channel configuration structure.
qm_dma_transfer_type_t transfer_type
DMA transfer type.
uint32_t * destination_address
First block destination address.
Link list multiblock mode.
Burst length 8 data items.
uint32_t * destination_address
DMA destination transfer address.
Burst length 64 data items.
Transfer width of 64 bits.
Burst length 16 data items.
DMA single block transfer configuration structure.
qm_dma_burst_length_t source_burst_length
DMA source burst length.
qm_dma_linked_list_item_t * linked_list_first
First block LLI descriptor or NULL (contiguous mode)
uint32_t block_size
DMA block size, Min = 1, Max = 4095.
void * callback_context
DMA client context passed to the callbacks.
Link list multiblock mode with cyclic operation.
Transfer width of 8 bits.
qm_dma_handshake_polarity_t
DMA Handshake Polarity.
int qm_dma_restore_context(const qm_dma_t dma, const qm_dma_context_t *const ctx)
Restore DMA peripheral's context.
qm_dma_handshake_interface_t handshake_interface
DMA channel handshake interface ID.
int qm_dma_transfer_set_config(const qm_dma_t dma, const qm_dma_channel_id_t channel_id, qm_dma_transfer_t *const transfer_config)
Setup a DMA single block transfer.
Memory to memory transfer.
qm_dma_burst_length_t
DMA Burst Transfer Length.
qm_dma_handshake_polarity_t handshake_polarity
DMA channel handshake polarity.
int qm_dma_multi_transfer_set_config(const qm_dma_t dma, const qm_dma_channel_id_t channel_id, qm_dma_multi_transfer_t *const multi_transfer_config)
Setup a DMA multiblock transfer.
uint16_t block_size
DMA block size, Min = 1, Max = 4095.
Burst length 128 data items.
Peripheral to memory transfer.
qm_dma_burst_length_t destination_burst_length
DMA destination burst length.
qm_dma_transfer_width_t destination_transfer_width
DMA destination transfer width.
int qm_dma_channel_set_config(const qm_dma_t dma, const qm_dma_channel_id_t channel_id, qm_dma_channel_config_t *const channel_config)
Setup a DMA channel configuration.
Burst length 4 data items.
Burst length 32 data items.
qm_dma_transfer_width_t source_transfer_width
DMA source transfer width.
int qm_dma_transfer_terminate(const qm_dma_t dma, const qm_dma_channel_id_t channel_id)
Terminate a DMA transfer.
qm_dma_channel_direction_t
DMA channel direction.
int qm_dma_transfer_start(const qm_dma_t dma, const qm_dma_channel_id_t channel_id)
Start a DMA transfer.
int qm_dma_init(const qm_dma_t dma)
Initialise the DMA controller.
Burst length 1 data item.
DMA multiblock transfer configuration structure.
Memory to peripheral transfer.
Transfer width of 16 bits.
uint32_t * source_address
DMA source transfer address.
qm_dma_transfer_width_t
DMA Transfer Width.
Transfer width of 32 bits.
Transfer width of 256 bits.
Contiguous multiblock mode.
int qm_dma_transfer_mem_to_mem(const qm_dma_t dma, const qm_dma_channel_id_t channel_id, qm_dma_transfer_t *const transfer_config)
Setup and start memory to memory transfer.
qm_dma_channel_id_t
DMA channel IDs.
uint32_t * source_address
First block source address.
qm_dma_handshake_interface_t
DMA hardware handshake interfaces.
Transfer width of 128 bits.
qm_dma_channel_direction_t channel_direction
DMA channel direction.
int qm_dma_save_context(const qm_dma_t dma, qm_dma_context_t *const ctx)
Save DMA peripheral's context.