DMA driver APIs. More...
Data Structures | |
| struct | dma_linked_descriptor |
| Linked descriptor. More... | |
| struct | dma_channel_config |
| struct | dma_handshake_config |
Typedefs | |
| typedef struct dma_linked_descriptor | dma_linked_descriptor_t |
| Linked descriptor. More... | |
| typedef struct dma_channel_config | dma_channel_config_t |
| typedef struct dma_handshake_config | dma_handshake_config_t |
| typedef struct dma_linked_descriptor | dma_linked_descriptor_t |
| Linked descriptor. More... | |
| typedef struct dma_channel_config | dma_channel_config_t |
| typedef struct dma_handshake_config | dma_handshake_config_t |
Enumerations | |
| enum | { status_dma_transfer_done = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 0 )) , status_dma_transfer_error = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 1 )) , status_dma_transfer_abort = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 2 )) , status_dma_transfer_ongoing = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 3 )) , status_dma_alignment_error = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 4 )) } |
| enum | { dmav2_state_idle = 0 , dmav2_state_read , dmav2_state_read_ack , dmav2_state_write , dmav2_state_write_ack , dmav2_state_ll , dmav2_state_end , dmav2_state_end_wait } |
| enum | { status_dma_transfer_done = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 0 )) , status_dma_transfer_error = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 1 )) , status_dma_transfer_abort = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 2 )) , status_dma_transfer_ongoing = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 3 )) , status_dma_alignment_error = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 4 )) , status_dma_transfer_half_done = ((uint32_t)( status_group_dma )*1000U + (uint32_t)( 5 )) } |
Functions | |
| static void | dma_reset (DMA_Type *ptr) |
| Reset DMA. More... | |
| static hpm_stat_t | dma_enable_channel (DMA_Type *ptr, uint32_t ch_index) |
| Enable DMA channel. More... | |
| static void | dma_disable_channel (DMA_Type *ptr, uint32_t ch_index) |
| Disable DMA channel. More... | |
| static bool | dma_channel_is_enable (DMA_Type *ptr, uint32_t ch_index) |
| Check whether DMA channel is enable. More... | |
| static void | dma_set_priority (DMA_Type *ptr, uint32_t ch_index, uint8_t priority) |
| Set DMA channel priority. More... | |
| static void | dma_set_source_work_mode (DMA_Type *ptr, uint32_t ch_index, uint8_t mode) |
| Set DMA channel source work mode. More... | |
| static void | dma_set_destination_work_mode (DMA_Type *ptr, uint32_t ch_index, uint8_t mode) |
| Set DMA channel destination work mode. More... | |
| static void | dma_set_source_burst_size (DMA_Type *ptr, uint32_t ch_index, uint8_t burstsize) |
| Set DMA channel source burst size. More... | |
| static uint32_t | dma_get_remaining_transfer_size (DMA_Type *ptr, uint32_t ch_index) |
| Get DMA channel remaining transfer size. More... | |
| static void | dma_set_transfer_size (DMA_Type *ptr, uint32_t ch_index, uint32_t size_in_width) |
| Set DMA channel transfer size. More... | |
| static void | dma_set_source_width (DMA_Type *ptr, uint32_t ch_index, uint8_t width) |
| Set DMA channel source width. More... | |
| static void | dma_set_destination_width (DMA_Type *ptr, uint32_t ch_index, uint8_t width) |
| Set DMA channel destination width. More... | |
| static void | dma_set_transfer_src_width_byte_size (DMA_Type *ptr, uint32_t ch_index, uint8_t src_width, uint32_t size_in_byte) |
| Set DMA channel transfer width and size in byte. More... | |
| static void | dma_set_source_address (DMA_Type *ptr, uint32_t ch_index, uint32_t addr) |
| Set DMA channel source address. More... | |
| static void | dma_set_destination_address (DMA_Type *ptr, uint32_t ch_index, uint32_t addr) |
| Set DMA channel destination address. More... | |
| static void | dma_set_source_address_ctrl (DMA_Type *ptr, uint32_t ch_index, uint8_t addr_ctrl) |
| Set DMA channel source address control mode. More... | |
| static void | dma_set_destination_address_ctrl (DMA_Type *ptr, uint32_t ch_index, uint8_t addr_ctrl) |
| Set DMA channel destination address control mode. More... | |
| static void | dma_abort_channel (DMA_Type *ptr, uint32_t ch_index_mask) |
| Abort channel transfer with mask. More... | |
| static uint32_t | dma_check_enabled_channel (DMA_Type *ptr, uint32_t ch_index_mask) |
| Check if channels are enabled with mask. More... | |
| static bool | dma_has_linked_pointer_configured (DMA_Type *ptr, uint32_t ch_index) |
| Check if linked pointer has been configured. More... | |
| static uint32_t | dma_check_transfer_status (DMA_Type *ptr, uint8_t ch_index) |
| Check transfer status. More... | |
| static void | dma_clear_transfer_status (DMA_Type *ptr, uint8_t ch_index) |
| Clear transfer status. More... | |
| static void | dma_enable_channel_interrupt (DMA_Type *ptr, uint8_t ch_index, int32_t interrupt_mask) |
| Enable DMA Channel interrupt. More... | |
| static void | dma_disable_channel_interrupt (DMA_Type *ptr, uint8_t ch_index, int32_t interrupt_mask) |
| Disable DMA Channel interrupt. More... | |
| static uint32_t | dma_check_channel_interrupt_mask (DMA_Type *ptr, uint8_t ch_index) |
| Check Channel interrupt master. More... | |
| static void | dma_clear_irq_status (DMA_Type *ptr, uint32_t mask) |
| Get clear IRQ status. More... | |
| static uint32_t | dma_get_irq_status (DMA_Type *ptr) |
| Get IRQ status. More... | |
| void | dma_default_channel_config (DMA_Type *ptr, dma_channel_config_t *ch) |
| Get default channel config. More... | |
| hpm_stat_t | dma_setup_channel (DMA_Type *ptr, uint8_t ch_num, dma_channel_config_t *ch, bool start_transfer) |
| Setup DMA channel. More... | |
| hpm_stat_t | dma_config_linked_descriptor (DMA_Type *ptr, dma_linked_descriptor_t *descriptor, uint8_t ch_num, dma_channel_config_t *config) |
| Config linked descriptor function. More... | |
| hpm_stat_t | dma_start_memcpy (DMA_Type *ptr, uint8_t ch_num, uint32_t dst, uint32_t src, uint32_t size_in_byte, uint32_t burst_len_in_byte) |
| Start DMA copy. More... | |
| void | dma_default_handshake_config (DMA_Type *ptr, dma_handshake_config_t *config) |
| Get default handshake config. More... | |
| hpm_stat_t | dma_setup_handshake (DMA_Type *ptr, dma_handshake_config_t *pconfig, bool start_transfer) |
| config dma handshake function More... | |
| static void | dma_reset (DMAV2_Type *ptr) |
| Reset DMA. More... | |
| static hpm_stat_t | dma_enable_channel (DMAV2_Type *ptr, uint32_t ch_index) |
| Enable DMA channel. More... | |
| static void | dma_disable_channel (DMAV2_Type *ptr, uint32_t ch_index) |
| Disable DMA channel. More... | |
| static bool | dma_channel_is_enable (DMAV2_Type *ptr, uint32_t ch_index) |
| Check whether DMA channel is enable. More... | |
| static void | dma_set_priority (DMAV2_Type *ptr, uint32_t ch_index, uint8_t priority) |
| Set DMA channel priority. More... | |
| static void | dma_set_source_work_mode (DMAV2_Type *ptr, uint32_t ch_index, uint8_t mode) |
| Set DMA channel source work mode. More... | |
| static void | dma_set_destination_work_mode (DMAV2_Type *ptr, uint32_t ch_index, uint8_t mode) |
| Set DMA channel destination work mode. More... | |
| static void | dma_set_source_burst_size (DMAV2_Type *ptr, uint32_t ch_index, uint8_t burstsize) |
| Set DMA channel source burst size. More... | |
| static uint32_t | dma_get_remaining_transfer_size (DMAV2_Type *ptr, uint32_t ch_index) |
| Get DMA channel remaining transfer size. More... | |
| static void | dma_set_transfer_size (DMAV2_Type *ptr, uint32_t ch_index, uint32_t size_in_width) |
| Set DMA channel transfer size. More... | |
| static void | dma_set_source_width (DMAV2_Type *ptr, uint32_t ch_index, uint8_t width) |
| Set DMA channel source width. More... | |
| static void | dma_set_destination_width (DMAV2_Type *ptr, uint32_t ch_index, uint8_t width) |
| Set DMA channel destination width. More... | |
| static void | dma_set_transfer_src_width_byte_size (DMAV2_Type *ptr, uint32_t ch_index, uint8_t src_width, uint32_t size_in_byte) |
| Set DMA channel transfer width and size in byte. More... | |
| static void | dma_set_source_address (DMAV2_Type *ptr, uint32_t ch_index, uint32_t addr) |
| Set DMA channel source address. More... | |
| static void | dma_set_destination_address (DMAV2_Type *ptr, uint32_t ch_index, uint32_t addr) |
| Set DMA channel destination address. More... | |
| static void | dma_set_source_address_ctrl (DMAV2_Type *ptr, uint32_t ch_index, uint8_t addr_ctrl) |
| Set DMA channel source address control mode. More... | |
| static void | dma_set_destination_address_ctrl (DMAV2_Type *ptr, uint32_t ch_index, uint8_t addr_ctrl) |
| Set DMA channel destination address control mode. More... | |
| static void | dma_set_infinite_loop_mode (DMAV2_Type *ptr, uint32_t ch_index, bool infinite_loop) |
| Set DMA channel infinite loop mode. More... | |
| static void | dma_set_src_busrt_option (DMAV2_Type *ptr, uint32_t ch_index, uint8_t burst_opt) |
| Set DMA channel source burst option. More... | |
| static void | dma_set_handshake_option (DMAV2_Type *ptr, uint32_t ch_index, uint8_t handshake_opt) |
| Set DMA channel handshake option. More... | |
| static void | dma_abort_channel (DMAV2_Type *ptr, uint32_t ch_index_mask) |
| Abort channel transfer with mask. More... | |
| static uint32_t | dma_check_enabled_channel (DMAV2_Type *ptr, uint32_t ch_index_mask) |
| Check if channels are enabled with mask. More... | |
| static bool | dma_has_linked_pointer_configured (DMAV2_Type *ptr, uint32_t ch_index) |
| Check if linked pointer has been configured. More... | |
| static uint32_t | dma_check_transfer_status (DMAV2_Type *ptr, uint8_t ch_index) |
| Check transfer status. More... | |
| static void | dma_clear_transfer_status (DMAV2_Type *ptr, uint8_t ch_index) |
| Clear transfer status. More... | |
| static void | dma_enable_channel_interrupt (DMAV2_Type *ptr, uint8_t ch_index, int32_t interrupt_mask) |
| Enable DMA Channel interrupt. More... | |
| static void | dma_disable_channel_interrupt (DMAV2_Type *ptr, uint8_t ch_index, int32_t interrupt_mask) |
| Disable DMA Channel interrupt. More... | |
| static uint32_t | dma_check_channel_interrupt_mask (DMAV2_Type *ptr, uint8_t ch_index) |
| Check Channel interrupt master. More... | |
| void | dma_default_channel_config (DMAV2_Type *ptr, dma_channel_config_t *ch) |
| Get default channel config. More... | |
| hpm_stat_t | dma_setup_channel (DMAV2_Type *ptr, uint8_t ch_num, dma_channel_config_t *ch, bool start_transfer) |
| Setup DMA channel. More... | |
| hpm_stat_t | dma_config_linked_descriptor (DMAV2_Type *ptr, dma_linked_descriptor_t *descriptor, uint8_t ch_num, dma_channel_config_t *config) |
| Config linked descriptor function. More... | |
| hpm_stat_t | dma_start_memcpy (DMAV2_Type *ptr, uint8_t ch_num, uint32_t dst, uint32_t src, uint32_t size_in_byte, uint32_t burst_len_in_byte) |
| Start DMA copy. More... | |
| void | dma_default_handshake_config (DMAV2_Type *ptr, dma_handshake_config_t *config) |
| Get default handshake config. More... | |
| hpm_stat_t | dma_setup_handshake (DMAV2_Type *ptr, dma_handshake_config_t *pconfig, bool start_transfer) |
| config dma handshake function More... | |
| static bool | dma_is_idle (DMAV2_Type *ptr) |
| Check whether DMA is idle. More... | |
DMA driver APIs.
| #define DMA_ADDRESS_CONTROL_DECREMENT (1U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_ADDRESS_CONTROL_DECREMENT (1U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_ADDRESS_CONTROL_FIXED (2U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_ADDRESS_CONTROL_FIXED (2U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_ADDRESS_CONTROL_INCREMENT (0U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_ADDRESS_CONTROL_INCREMENT (0U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_ALIGN_DOUBLE_WORD | ( | x | ) | (x & ~(7u)) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_ALIGN_DOUBLE_WORD | ( | x | ) | (x & ~(7u)) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_ALIGN_HALF_WORD | ( | x | ) | (x & ~(1u)) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_ALIGN_HALF_WORD | ( | x | ) | (x & ~(1u)) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_ALIGN_WORD | ( | x | ) | (x & ~(3u)) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_ALIGN_WORD | ( | x | ) | (x & ~(3u)) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS | ( | x | ) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS_ABORT | ( | x | ) | (uint32_t)(1 << (DMA_STATUS_ABORT_SHIFT + x)) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS_ABORT | ( | x | ) | (uint32_t)(1 << x) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS_ERROR | ( | x | ) | (uint32_t)(1 << (DMA_STATUS_ERROR_SHIFT + x)) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS_ERROR | ( | x | ) | (uint32_t)(1 << x) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS_GET_ALL_ABORT | ( | x | ) | ((x) & (((0x01UL << DMA_SOC_CHANNEL_NUM) - 1) << DMA_STATUS_ABORT_SHIFT)) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS_GET_ALL_ERROR | ( | x | ) | ((x) & (((0x01UL << DMA_SOC_CHANNEL_NUM) - 1) << DMA_STATUS_ERROR_SHIFT)) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS_GET_ALL_TC | ( | x | ) | ((x) & (((0x01UL << DMA_SOC_CHANNEL_NUM) - 1) << DMA_STATUS_TC_SHIFT)) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS_HALF_TC | ( | x | ) | (uint32_t)(1 << x) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS_TC | ( | x | ) | (uint32_t)(1 << (DMA_STATUS_TC_SHIFT + x)) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_IRQ_STATUS_TC | ( | x | ) | (uint32_t)(1 << x) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_PRIORITY_HIGH (1U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_PRIORITY_HIGH (1U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_PRIORITY_LOW (0U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_PRIORITY_LOW (0U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_STATUS_ABORT (4U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_STATUS_ABORT (4U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_STATUS_ERROR (2U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_STATUS_ERROR (2U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_STATUS_HALF_TC (16U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_STATUS_ONGOING (1U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_STATUS_ONGOING (1U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_CHANNEL_STATUS_TC (8U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_CHANNEL_STATUS_TC (8U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_HANDSHAKE_MODE_HANDSHAKE (1U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_HANDSHAKE_MODE_HANDSHAKE (1U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_HANDSHAKE_MODE_NORMAL (0U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_HANDSHAKE_MODE_NORMAL (0U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_HANDSHAKE_OPT_ALL_TRANSIZE (1U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_HANDSHAKE_OPT_ONE_BURST (0U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_INTERRUPT_MASK_ABORT DMA_CHCTRL_CTRL_INTABTMASK_MASK |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_INTERRUPT_MASK_ABORT DMAV2_CHCTRL_CTRL_INTABTMASK_MASK |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_INTERRUPT_MASK_ALL |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_INTERRUPT_MASK_ALL |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_INTERRUPT_MASK_ERROR DMA_CHCTRL_CTRL_INTERRMASK_MASK |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_INTERRUPT_MASK_ERROR DMAV2_CHCTRL_CTRL_INTERRMASK_MASK |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_INTERRUPT_MASK_HALF_TC DMAV2_CHCTRL_CTRL_INTHALFCNTMASK_MASK |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_INTERRUPT_MASK_NONE (0U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_INTERRUPT_MASK_NONE (0U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_INTERRUPT_MASK_TERMINAL_COUNT DMA_CHCTRL_CTRL_INTTCMASK_MASK |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_INTERRUPT_MASK_TERMINAL_COUNT DMAV2_CHCTRL_CTRL_INTTCMASK_MASK |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_1024T (10U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_1024T (10U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_128T (7U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_128T (7U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_16T (4U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_16T (4U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_1T (0U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_1T (0U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_256T (8U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_256T (8U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_2T (1U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_2T (1U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_32T (5U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_32T (5U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_4T (2U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_4T (2U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_512T (9U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_512T (9U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_64T (6U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_64T (6U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_8T (3U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_NUM_TRANSFER_PER_BURST_8T (3U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_SRC_BURST_OPT_CUSTOM_SIZE (1U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_SRC_BURST_OPT_STANDAND_SIZE (0U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_STATUS_ABORT_SHIFT (8U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_STATUS_ERROR_SHIFT (0U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_STATUS_TC_SHIFT (16U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_SUPPORT_64BIT_ADDR (0) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_SUPPORT_64BIT_ADDR (0) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_SWAP_MODE_BYTE (1U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_SWAP_MODE_HALF_WORD (2U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_SWAP_MODE_TABLE (0U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_SWAP_MODE_WORD (3U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_TRANSFER_WIDTH_BYTE (0U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_TRANSFER_WIDTH_BYTE (0U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_TRANSFER_WIDTH_DOUBLE_WORD (3U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_TRANSFER_WIDTH_DOUBLE_WORD (3U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_TRANSFER_WIDTH_HALF_WORD (1U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_TRANSFER_WIDTH_HALF_WORD (1U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_TRANSFER_WIDTH_WORD (2U) |
#include <drivers/inc/hpm_dma_drv.h>
| #define DMA_TRANSFER_WIDTH_WORD (2U) |
#include <drivers/inc/hpm_dmav2_drv.h>
| #define DMA_Type DMAV2_Type |
#include <drivers/inc/hpm_dmav2_drv.h>
| typedef struct dma_channel_config dma_channel_config_t |
#include <drivers/inc/hpm_dma_drv.h>
| typedef struct dma_channel_config dma_channel_config_t |
#include <drivers/inc/hpm_dmav2_drv.h>
| typedef struct dma_handshake_config dma_handshake_config_t |
#include <drivers/inc/hpm_dma_drv.h>
| typedef struct dma_handshake_config dma_handshake_config_t |
#include <drivers/inc/hpm_dmav2_drv.h>
| typedef struct dma_linked_descriptor dma_linked_descriptor_t |
| typedef struct dma_linked_descriptor dma_linked_descriptor_t |
| anonymous enum |
#include <drivers/inc/hpm_dma_drv.h>
| Enumerator | |
|---|---|
| status_dma_transfer_done | |
| status_dma_transfer_error | |
| status_dma_transfer_abort | |
| status_dma_transfer_ongoing | |
| status_dma_alignment_error | |
| anonymous enum |
#include <drivers/inc/hpm_dmav2_drv.h>
| Enumerator | |
|---|---|
| dmav2_state_idle | |
| dmav2_state_read | |
| dmav2_state_read_ack | |
| dmav2_state_write | |
| dmav2_state_write_ack | |
| dmav2_state_ll | |
| dmav2_state_end | |
| dmav2_state_end_wait | |
| anonymous enum |
#include <drivers/inc/hpm_dmav2_drv.h>
| Enumerator | |
|---|---|
| status_dma_transfer_done | |
| status_dma_transfer_error | |
| status_dma_transfer_abort | |
| status_dma_transfer_ongoing | |
| status_dma_alignment_error | |
| status_dma_transfer_half_done | |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Abort channel transfer with mask.
| [in] | ptr | DMA base address |
| [in] | ch_index_mask | Mask of channels to be aborted |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Abort channel transfer with mask.
| [in] | ptr | DMA base address |
| [in] | ch_index_mask | Mask of channels to be aborted |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Check whether DMA channel is enable.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Check whether DMA channel is enable.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Check Channel interrupt master.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index to be checked |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Check Channel interrupt master.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index to be checked |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Check if channels are enabled with mask.
| [in] | ptr | DMA base address |
| [in] | ch_index_mask | Mask of channels to be checked |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Check if channels are enabled with mask.
| [in] | ptr | DMA base address |
| [in] | ch_index_mask | Mask of channels to be checked |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Check transfer status.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index to be checked |
| DMA_CHANNEL_STATUS_ONGOING | if transfer is still ongoing |
| DMA_CHANNEL_STATUS_ERROR | if any error occurred during transferring |
| DMA_CHANNEL_STATUS_ABORT | if transfer is aborted |
| DMA_CHANNEL_STATUS_TC | if transfer is finished without error |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Check transfer status.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index to be checked |
| DMA_CHANNEL_STATUS_ONGOING | if transfer is still ongoing |
| DMA_CHANNEL_STATUS_ERROR | if any error occurred during transferring |
| DMA_CHANNEL_STATUS_ABORT | if transfer is aborted |
| DMA_CHANNEL_STATUS_TC | if transfer is finished without error |
| DMA_CHANNEL_STATUS_HALF_TC | if half transfer complete without error |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Get clear IRQ status.
| [in] | ptr | DMA base address |
| [in] | mask | irq mask to be cleared |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Clear transfer status.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Clear transfer status.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index |
| hpm_stat_t dma_config_linked_descriptor | ( | DMA_Type * | ptr, |
| dma_linked_descriptor_t * | descriptor, | ||
| uint8_t | ch_num, | ||
| dma_channel_config_t * | config | ||
| ) |
#include <drivers/inc/hpm_dma_drv.h>
Config linked descriptor function.
| [in] | ptr | DMA base address |
| [in] | descriptor | Linked descriptor pointer |
| [in] | ch_num | Target channel index to be configured |
| [in] | config | Descriptor config pointer |
| hpm_stat_t dma_config_linked_descriptor | ( | DMAV2_Type * | ptr, |
| dma_linked_descriptor_t * | descriptor, | ||
| uint8_t | ch_num, | ||
| dma_channel_config_t * | config | ||
| ) |
#include <drivers/inc/hpm_dmav2_drv.h>
Config linked descriptor function.
| [in] | ptr | DMA base address |
| [in] | descriptor | Linked descriptor pointer |
| [in] | ch_num | Target channel index to be configured |
| [in] | config | Descriptor config pointer |
| void dma_default_channel_config | ( | DMA_Type * | ptr, |
| dma_channel_config_t * | ch | ||
| ) |
#include <drivers/inc/hpm_dma_drv.h>
Get default channel config.
| [in] | ptr | DMA base address |
| [in] | ch | Channel config |
| void dma_default_channel_config | ( | DMAV2_Type * | ptr, |
| dma_channel_config_t * | ch | ||
| ) |
#include <drivers/inc/hpm_dmav2_drv.h>
Get default channel config.
| [in] | ptr | DMA base address |
| [in] | ch | Channel config |
| void dma_default_handshake_config | ( | DMA_Type * | ptr, |
| dma_handshake_config_t * | config | ||
| ) |
#include <drivers/inc/hpm_dma_drv.h>
Get default handshake config.
| [in] | ptr | DMA base address |
| [in] | config | default config |
| void dma_default_handshake_config | ( | DMAV2_Type * | ptr, |
| dma_handshake_config_t * | config | ||
| ) |
#include <drivers/inc/hpm_dmav2_drv.h>
Get default handshake config.
| [in] | ptr | DMA base address |
| [in] | config | default config |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Disable DMA channel.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel to be disabled |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Disable DMA channel.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel to be disabled |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Disable DMA Channel interrupt.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index |
| [in] | interrupt_mask | Interrupt mask |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Disable DMA Channel interrupt.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index |
| [in] | interrupt_mask | Interrupt mask |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Enable DMA channel.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel to be enabled |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Enable DMA channel.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel to be enabled |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Enable DMA Channel interrupt.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index |
| [in] | interrupt_mask | Interrupt mask |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Enable DMA Channel interrupt.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index |
| [in] | interrupt_mask | Interrupt mask |
|
inlinestatic |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Get DMA channel remaining transfer size.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Get DMA channel remaining transfer size.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Check if linked pointer has been configured.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index to be checked |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Check if linked pointer has been configured.
| [in] | ptr | DMA base address |
| [in] | ch_index | Target channel index to be checked |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Check whether DMA is idle.
| [in] | ptr | DMA base address |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel destination address.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | addr | destination address |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel destination address.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | addr | destination address |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel destination address control mode.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | addr_ctrl | destination address control mode |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel destination address control mode.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | addr_ctrl | destination address control mode |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel destination width.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | width | transfer destination width of the channel |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel destination width.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | width | transfer destination width of the channel |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel destination work mode.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | mode | destination work mode |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel destination work mode.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | mode | destination work mode |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel handshake option.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | handshake_opt | handshake option |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel infinite loop mode.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | infinite_loop | false - normal mode(single times mode); true - infinite loop mode(cycle mode) |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel priority.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | priority | dma priority |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel priority.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | priority | dma priority |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel source address.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | addr | source address |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel source address.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | addr | source address |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel source address control mode.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | addr_ctrl | source address control mode |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel source address control mode.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | addr_ctrl | source address control mode |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel source burst size.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | burstsize | source burst size
|
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel source burst size.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | burstsize | source burst size when BURSTOPT is 0, please reference follows:
|
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel source width.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | width | transfer source width of the channel |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel source width.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | width | transfer source width of the channel |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel source work mode.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | mode | source work mode |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel source work mode.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | mode | source work mode |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel source burst option.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | burst_opt | burst option |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel transfer size.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | size_in_width | transfer size of the channel. The width is current dma channel configured source width. Transfer total bytes are (size_in_width * source width). |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel transfer size.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | size_in_width | transfer size of the channel. The width is current dma channel configured source width. Transfer total bytes are (size_in_width * source width). |
|
inlinestatic |
#include <drivers/inc/hpm_dma_drv.h>
Set DMA channel transfer width and size in byte.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | src_width | transfer source width of the channel |
| [in] | size_in_byte | transfer size in byte of the channel. The dma transfer size is (size_in_byte >> src_width). |
|
inlinestatic |
#include <drivers/inc/hpm_dmav2_drv.h>
Set DMA channel transfer width and size in byte.
| [in] | ptr | DMA base address |
| [in] | ch_index | Index of the channel |
| [in] | src_width | transfer source width of the channel |
| [in] | size_in_byte | transfer size in byte of the channel. The dma transfer size is (size_in_byte >> src_width). |
| hpm_stat_t dma_setup_channel | ( | DMA_Type * | ptr, |
| uint8_t | ch_num, | ||
| dma_channel_config_t * | ch, | ||
| bool | start_transfer | ||
| ) |
#include <drivers/inc/hpm_dma_drv.h>
Setup DMA channel.
| [in] | ptr | DMA base address |
| [in] | ch_num | Target channel index to be configured |
| [in] | ch | Channel config |
| [in] | start_transfer | Set true to start transfer |
| hpm_stat_t dma_setup_channel | ( | DMAV2_Type * | ptr, |
| uint8_t | ch_num, | ||
| dma_channel_config_t * | ch, | ||
| bool | start_transfer | ||
| ) |
#include <drivers/inc/hpm_dmav2_drv.h>
Setup DMA channel.
| [in] | ptr | DMA base address |
| [in] | ch_num | Target channel index to be configured |
| [in] | ch | Channel config |
| [in] | start_transfer | Set true to start transfer |
| hpm_stat_t dma_setup_handshake | ( | DMA_Type * | ptr, |
| dma_handshake_config_t * | pconfig, | ||
| bool | start_transfer | ||
| ) |
#include <drivers/inc/hpm_dma_drv.h>
config dma handshake function
| [in] | ptr | DMA base address |
| [in] | pconfig | dma handshake config pointer |
| [in] | start_transfer | Set true to start transfer |
| hpm_stat_t dma_setup_handshake | ( | DMAV2_Type * | ptr, |
| dma_handshake_config_t * | pconfig, | ||
| bool | start_transfer | ||
| ) |
#include <drivers/inc/hpm_dmav2_drv.h>
config dma handshake function
| [in] | ptr | DMA base address |
| [in] | pconfig | dma handshake config pointer |
| [in] | start_transfer | Set true to start transfer |
| hpm_stat_t dma_start_memcpy | ( | DMA_Type * | ptr, |
| uint8_t | ch_num, | ||
| uint32_t | dst, | ||
| uint32_t | src, | ||
| uint32_t | size_in_byte, | ||
| uint32_t | burst_len_in_byte | ||
| ) |
#include <drivers/inc/hpm_dma_drv.h>
Start DMA copy.
| [in] | ptr | DMA base address |
| [in] | ch_num | Target channel index |
| [in] | dst | Destination address |
| [in] | src | Source Address |
| [in] | size_in_byte | Size in byte |
| [in] | burst_len_in_byte | Burst length in byte |
| hpm_stat_t dma_start_memcpy | ( | DMAV2_Type * | ptr, |
| uint8_t | ch_num, | ||
| uint32_t | dst, | ||
| uint32_t | src, | ||
| uint32_t | size_in_byte, | ||
| uint32_t | burst_len_in_byte | ||
| ) |
#include <drivers/inc/hpm_dmav2_drv.h>
Start DMA copy.
| [in] | ptr | DMA base address |
| [in] | ch_num | Target channel index |
| [in] | dst | Destination address |
| [in] | src | Source Address |
| [in] | size_in_byte | Size in byte |
| [in] | burst_len_in_byte | Burst length in byte |