SAM4E DMA Controller (DMAC) driver.
Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
#include <compiler.h>
Data Structures | |
struct | dma_transfer_descriptor_t |
DMA transfer descriptor structure, otherwise known as a Linked List Item (LLI). More... | |
Enumerations | |
enum | dmac_priority_mode_t { DMAC_PRIORITY_FIXED = 0, DMAC_PRIORITY_ROUND_ROBIN = DMAC_GCFG_ARB_CFG } |
DMAC priority mode. More... | |
Functions | |
void | dmac_channel_disable (Dmac *p_dmac, uint32_t ul_num) |
Disable the specified DMA Channel. More... | |
void | dmac_channel_enable (Dmac *p_dmac, uint32_t ul_num) |
Enable the specified DMA Channel. More... | |
uint32_t | dmac_channel_get_status (Dmac *p_dmac) |
Get the DMAC Channel handler status. More... | |
uint32_t | dmac_channel_is_enable (Dmac *p_dmac, uint32_t ul_num) |
Check if the specified DMA Channel is enabled. More... | |
uint32_t | dmac_channel_is_transfer_done (Dmac *p_dmac, uint32_t ul_num) |
Check if the data transfer occurring on the specified DMA Channel is complete. More... | |
void | dmac_channel_keep (Dmac *p_dmac, uint32_t ul_num) |
Resume the specified DMA Channel from an automatic stall state. More... | |
void | dmac_channel_multi_buf_transfer_init (Dmac *p_dmac, uint32_t ul_num, dma_transfer_descriptor_t *p_desc) |
Initialize the DMA Channel for a multiple buffer transfer. More... | |
void | dmac_channel_resume (Dmac *p_dmac, uint32_t ul_num) |
Resume the specified DMA Channel transfer (restoring its context). More... | |
void | dmac_channel_set_configuration (Dmac *p_dmac, uint32_t ul_num, uint32_t ul_cfg) |
Set the DMAC configuration register of the specified DMA Channel. More... | |
void | dmac_channel_set_ctrlA (Dmac *p_dmac, uint32_t ul_num, uint32_t ul_ctrlA) |
Set the DMA control A of the specified DMA Channel. More... | |
void | dmac_channel_set_ctrlB (Dmac *p_dmac, uint32_t ul_num, uint32_t ul_ctrlB) |
Set the DMA control B of the specified DMA Channel. More... | |
void | dmac_channel_set_descriptor_addr (Dmac *p_dmac, uint32_t ul_num, uint32_t ul_desc) |
Set the DMA descriptor address of the specified DMA Channel. More... | |
void | dmac_channel_set_destination_addr (Dmac *p_dmac, uint32_t ul_num, uint32_t ul_addr) |
Set the DMA destination address of the specified DMA Channel. More... | |
void | dmac_channel_set_source_addr (Dmac *p_dmac, uint32_t ul_num, uint32_t ul_addr) |
Set the DMA source address of the specified DMA Channel. More... | |
void | dmac_channel_single_buf_transfer_init (Dmac *p_dmac, uint32_t ul_num, dma_transfer_descriptor_t *p_desc) |
Initialize the DMA Channel for a single buffer transfer. More... | |
void | dmac_channel_stop_transfer (Dmac *p_dmac, uint32_t ul_num) |
Stop a DMA transfer occurring on the specified DMA Channel. More... | |
void | dmac_channel_suspend (Dmac *p_dmac, uint32_t ul_num) |
Suspend the specified DMA Channel and its current context. More... | |
void | dmac_disable (Dmac *p_dmac) |
Disable the DMA Controller. More... | |
void | dmac_disable_interrupt (Dmac *p_dmac, uint32_t ul_mask) |
Disable DMAC interrupts. More... | |
void | dmac_enable (Dmac *p_dmac) |
Enable the DMA Controller. More... | |
void | dmac_enable_interrupt (Dmac *p_dmac, uint32_t ul_mask) |
Enable DMAC interrupts. More... | |
uint32_t | dmac_get_interrupt_mask (Dmac *p_dmac) |
Get the DMAC Interrupt Mask. More... | |
uint32_t | dmac_get_status (Dmac *p_dmac) |
Get the DMAC transfer status. More... | |
void | dmac_init (Dmac *p_dmac) |
Initialize the DMA controller and disable it. More... | |
void | dmac_set_priority_mode (Dmac *p_dmac, dmac_priority_mode_t mode) |
Set the DMA priority mode. More... | |
void | dmac_soft_chunk_transfer_request (Dmac *p_dmac, uint32_t ul_num, uint32_t ul_src_req, uint32_t ul_dst_req) |
DMA Channel software chunk request. More... | |
void | dmac_soft_set_last_transfer_flag (Dmac *p_dmac, uint32_t ul_num, uint32_t ul_src_flag, uint32_t ul_dst_flag) |
Set the DMA Channel's last transfer flag. More... | |
void | dmac_soft_single_transfer_request (Dmac *p_dmac, uint32_t ul_num, uint32_t ul_src_req, uint32_t ul_dst_req) |
DMA Channel software single request. More... | |