⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iodma_api.h

📁 SAMSUNG 5009的源代码
💻 H
字号:
/******************************************************************************
 *   Filename    : Iodma_api.h                                             	  *
 *   Start date  :                                                            *
 *   By          :                                                            *             
 *   Contact     :                                                            *
 *   Description : low level api headers.(for only high level api)            *
 *                                                                            *
 ******************************************************************************
 */
#ifndef	_IODMA_API_H_
#define	_IODMA_API_H_

#ifdef __cplusplus
extern "C" {
#endif



/********************************************* 
 *   Data types
 *********************************************/
typedef enum {
	DMA_Ch0=0,
	DMA_Ch1,
	DMA_Ch2,
	DMA_Ch3
}DMA_Channel_t;

typedef enum {
	DMA_SUB_CDDA,
	DMA_SUB_CH2,
	DMA_SUB_SPDIF=0x21,
	DMA_SUB_IISIN=0x22,
/*	DMA_SUB_DTS=0x27, */
	DMA_SUB_CH51=0x27,
	DMA_SUB_CH71=0x29
}DMA_AudioMode_t;

typedef enum {
	DSIZE_8=0,
	DSIZE_16=1,
	DSIZE_32=2
}DMA_DataSize_t;

typedef enum {
	BLEN_1=0,
	BLEN_2,
	BLEN_3,
	BLEN_4,
	BLEN_5
}DMA_BurstLength_t;

typedef enum {
	DMA0_IISTX=0,
	DMA0_MSTX=1,
	DMA0_SPIRX=2,
	DMA0_UART0RX=3,
	DMA1_SPDIFTX=4,
	DMA1_NANDTX=5,
	DMA1_SPITX=6,
	DMA1_UART0TX=7,
	DMA2_IISRX=8,
	DMA2_UART1TX=9,
	DMA2_SPIRX=10,
	DMA2_UART0RX=11,
	DMA3_UART0TX=12,
	DMA3_SPITX=13,
	DMA3_MSTX=14,
	DMA3_UART1RX=15,

	DMA0_MSRX=0x11,
	DMA1_NANDRX=0x15,
	DMA3_MSRX=0x1E
}DMA_DevSel_t;
 
typedef enum {
	DMA_SAMPLE_HOLD=0x2,
	DMA_SAMPLE_SKIP,
	DMA_COMMAND_START,
	DMA_COMMAND_STOP,
	DMACLR_HALF_FLAG,
	DMACLR_PENDING_FLAG
}DMA_Command_t;

typedef enum {
	DMA0_DONE=0,
	DMA0_HDONE,
	DMA0_BUSY,
	DMA1_DONE=4,
	DMA1_HDONE,
	DMA1_BUSY,
	DMA2_DONE=8,
	DMA2_HDONE,
	DMA2_BUSY,
	DMA3_DONE=12,
	DMA3_HDONE,
	DMA3_BUSY
}DMA_Status_t;


typedef enum {
	DMA_FEU_ADC_8,
	DMA_FEU_ADC_16,
	DMA_AUDIO_ADC_14
}DMA_ADC_SEL_t;

/********************************************* 
 *   Define
 *********************************************/
#define		IODMA0_Command(x)	rDMACOM0 = (x)
#define		IODMA1_Command(x)	rDMACOM1 = (x)
#define		IODMA2_Command(x)	rDMACOM2 = (x)
#define		IODMA3_Command(x)	rDMACOM3 = (x)
#define 	DMA_Disable_Int(n)	rDMA_IRQ_MASK &= (~((unsigned long)1<<(n)))
#define 	DMA_Enable_Int(n)	rDMA_IRQ_MASK |= ((unsigned long)1<<(n))	


#define		DMA_M2I				29
#define		DMA_MULCH			28
#define		DMA_SCHCNT			24
#define		DMA_DSIZE			22
#define		DMA_BLEN			19
#define		DMA_RELOAD			18
#define		DMA_INT_EN			16

/********************************************* 
 *   Functions Define
 *********************************************/
VOID	IODMA_Reset(DMA_Channel_t channel);
VOID	IODMA_Command(DMA_Channel_t channel, DMA_Command_t command);
VOID 	IODMAHandler_Initial(VOID); 

VOID	IODMA_ChangeAddr(DMA_Channel_t channel, UINT base_address);

#if 0//delete by cklee
VOID	IODMA_Initialize(VOID);
VOID 	IODMA_SetFunction(DMA_DevSel_t device_sel, VOID (*handler)());
VOID 	IODMA_SetNormal(DMA_DevSel_t device_sel, UINT base_address, UINT trans_byte_size);
VOID 	IODMA_SetAudio(DMA_AudioMode_t ch_mode, UINT base_address, UINT sample_num,
					DMA_DataSize_t data_size, DMA_BurstLength_t burst_length);
VOID	IODMA_RegisterView(VOID);
#endif


#ifdef __cplusplus
}
#endif

#endif /* _IODMA_API_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -