/**************************************************************************//** * @file N9H20_EDMA.h * @version V3.00 * @brief N9H20 series EDMA driver header file * * SPDX-License-Identifier: Apache-2.0 * @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved. *****************************************************************************/ #include "wblib.h" #include "wbtypes.h" #include "DrvEDMA.h" #define PAGE_SIZE 0x1000 #define EDMA_ERR_NOERROR (0x00) #define EDMA_ERR_NODEV (0x01 | GDMA_ERR_ID) #define EDMA_ERR_INVAL (0x02 | GDMA_ERR_ID) #define EDMA_ERR_BUSY (0x03 | GDMA_ERR_ID) #define NON_CACHE_BIT 0x80000000 int EDMA_SetupCST( int channel, E_DRVEDMA_COLOR_FORMAT eSrcFormat, E_DRVEDMA_COLOR_FORMAT eDestFormat ); int EDMA_ClearCST( int channel ); int EDMA_SetupSingle( int channel, unsigned int src_addr, unsigned int dest_addr, unsigned int dma_length ); int EDMA_SetupSG( int channel, unsigned int src_addr, unsigned int dest_addr, unsigned int dma_length ); void EDMA_FreeSG( int channel ); int EDMA_SetupHandlers( int channel, int interrupt, PFN_DRVEDMA_CALLBACK irq_handler, void *data ); void EDMA_Enable( int channel ); void EDMA_Disable( int channel ); int EDMA_Request( int channel ); void EDMA_Free( int channel ); int VDMA_FindandRequest(void); int PDMA_FindandRequest(void); void EDMA_Trigger( int channel ); void EDMA_TriggerDone( int channel ); int EDMA_IsBusy( int channel ); int EDMA_Init(void); void EDMA_Exit(void); int EDMA_SetAPB( int channel, E_DRVEDMA_APB_DEVICE eDevice, E_DRVEDMA_APB_RW eRWAPB, E_DRVEDMA_TRANSFER_WIDTH eTransferWidth ); int EDMA_SetWrapINTType( int channel, int type ); int EDMA_SetDirection( int channel, int src_dir, int dest_dir );