00001 #ifndef __DMA_H
00002 #define __DMA_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include "lmem.h"
00034
00035
00036
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040
00041
00042
00043
00044
00045
00046
00047 #define DMA_AUTO_INIT TRUE
00048 #define DMA_SINGLE_CICLE FALSE
00049 #define DMA_WRITE_TO_MEM TRUE
00050 #define DMA_READ_FROM_MEM FALSE
00051 #define DMA_INCREMENT FALSE
00052 #define DMA_DECREMENT TRUE
00053 #define DMA_ENABLE TRUE
00054 #define DMA_DISABLE FALSE
00055
00056
00057
00058
00059
00060
00061
00062
00063 #define DMA_IS_DMA16(channel) ((channel) > 3)
00064
00065
00066
00067 VOID dma_resetb( VOID );
00068 VOID dma_set( UINT8 channel, BOOL decrement, BOOL autoinit, BOOL writetomem,
00069 UINT32 lmem, UINT16 count_l1, BOOL enable_dma );
00070 VOID dma_set_mode( UINT8 channel, BOOL decrement, BOOL autoinit,
00071 BOOL writetomem, BOOL enable_dma );
00072 VOID dma_set_buff( UINT8 channel, UINT32 lmem, UINT16 count_l1,
00073 BOOL enable_dma );
00074 VOID dma_set_buff_addr( UINT8 channel, UINT32 lmem, BOOL enable_dma );
00075 VOID dma_set_buff_count( UINT8 channel, UINT16 count_l1, BOOL enable_dma );
00076 VOID dma_disable( UINT8 channel );
00077 VOID dma_enable( UINT8 channel );
00078 VOID dma_sreq( UINT8 channel );
00079 UINT16 dma_get_count_l1( UINT8 channel );
00080 UINT32 dma_get_addr( UINT8 channel );
00081 UINT8 dma_get_status( VOID );
00082 BOOL dma_get_dmareq( UINT8 channel );
00083 BOOL dma_get_status_dmareq( UINT8 status, UINT8 channel );
00084 BOOL dma_get_tc( UINT8 channel );
00085 BOOL dma_get_status_tc( UINT8 status, UINT8 channel );
00086
00087
00088
00089 #ifdef __cplusplus
00090 }
00091 #endif
00092
00093
00094
00095 #endif