SAM4E DMA Controller (DMAC) driver.
Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
#include "dmac.h"
Macros | |
#define | DMAC_WPMR_WPKEY_PASSWD DMAC_WPMR_WPKEY(0x444D41u) |
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... | |
uint32_t | dmac_get_writeprotect_status (Dmac *p_dmac) |
Get the DMAC register's write protect 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_set_writeprotect (Dmac *p_dmac, uint32_t ul_enable) |
Enable/Disable the write protect of DMAC registers. 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... | |
#define DMAC_WPMR_WPKEY_PASSWD DMAC_WPMR_WPKEY(0x444D41u) |
Referenced by dmac_set_writeprotect().
uint32_t dmac_get_writeprotect_status | ( | Dmac * | p_dmac | ) |
Get the DMAC register's write protect status.
[in] | p_dmac | Module hardware register base address pointer |
References Assert.
void dmac_set_writeprotect | ( | Dmac * | p_dmac, |
uint32_t | ul_enable | ||
) |
Enable/Disable the write protect of DMAC registers.
[out] | p_dmac | Module hardware register base address pointer |
[in] | ul_enable | 1 to enable, 0 to disable |
References Assert, and DMAC_WPMR_WPKEY_PASSWD.