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

📄 hs_mmc.h

📁 Samsung S3C2443 Test program source code
💻 H
字号:
#ifndef __HS_MMC_H__
#define __HS_MMC_H__

#ifdef __cplusplus
extern "C" {
#endif


//////////////////////////////////////////////////////////////////////////////////////////////////


void Test_HS_MMC(void);
void HS_MMC_Reset(void);
void HS_MMC_ReadTest(void);
void HS_MMC_WriteTest(void);
void HS_MMC_EraseBlock(void);
void HS_MMC_CardDetect(void);

void HS_MMC_Reset(void);
void HS_MMC_SETGPIO(void);
int HS_MMC_init(void);

void GetResponseData(U32 uCmd);
void ClockOnOff(int OnOff);
void ClockConfig(U32 Clksrc, U32 Divisior);

int WaitForCommandComplete(void);
int WaitForTransferComplete(void);
int WaitForBufferWriteReady(void);

void ClearBufferWriteReadyStatus(void);
void ClearBufferReadReadyStatus(void);
void ClearCommandCompleteStatus(void);
void ClearTransferCompleteStatus(void);
void ClearErrInterruptStatus(void);

void SetTransferModeReg(U32 MultiBlk,U32 DataDirection, U32 AutoCmd12En,U32 BlockCntEn,U32 DmaEn);
void SetArgumentReg(U16 uArg);
void SetBlockCountReg(U16 uBlkCnt);
void SetSystemAddressReg(U32 SysAddr);
void SetBlockSizeReg(U16 uDmaBufBoundary, U16 uBlkSize);
void SetMMCSpeedMode(U32 eSDSpeedMode);
void SetSDSpeedMode(U32 eSDSpeedMode);
void SetCommandReg(U16 uCmd,U32 uIsAcmd);
void SetClock(U32 ClkSrc, U16 Divisor);
void SetSdhcCardIntEnable(U8 ucTemp);
int SetDataTransferWidth(void);
int SetSDOCR(void);
int IsCardInProgrammingState(void);
int IssueCommand( U16 uCmd, U32 uArg, U32 uIsAcmd);

void InterruptEnable(U16 NormalIntEn, U16 ErrorIntEn);

int SetMMCOCR(void);

void HostCtrlSpeedMode(U8 SpeedMode);

void __irq HS_WRITE_INT(void);
void __irq HS_READ_INT(void);
void __irq HS_DMA_INT(void);
void __irq HS_CARD_DETECT_INT(void);
void HS_MMC_Irq(void);

void DisplayCardInformation(void);
void CalculationBPS_HSMMC(int Time);

void DataCompare_HSMMC(U32 a0, U32 a1, U32 bytes);
void DataRead_ForCompare(int StartAddr);

/////////////////////////////////////////////////////////////////////////////////////////////////
//#define	SDHC_MONITOR		 (*(volatile unsigned *)0x4800004c)	
//#define	SDHC_SLOT_INT_STAT		 (*(volatile unsigned *)0x480000fc)	

/////////////////////////////////////////////////////////////////////////////////////////////////
#define	SD_HCLK	1
#define	SD_EPLL		2
#define	SD_EXTCLK	3

#define	NORMAL	0
#define	HIGH	1

//Normal Interrupt Signal Enable
#define	READWAIT_SIG_INT_EN				(1<<10)
#define	CARD_SIG_INT_EN					(1<<8)
#define	CARD_REMOVAL_SIG_INT_EN			(1<<7)
#define	CARD_INSERT_SIG_INT_EN			(1<<6)
#define	BUFFER_READREADY_SIG_INT_EN		(1<<5)
#define	BUFFER_WRITEREADY_SIG_INT_EN	(1<<4)
#define	DMA_SIG_INT_EN					(1<<3)
#define	BLOCKGAP_EVENT_SIG_INT_EN		(1<<2)
#define	TRANSFERCOMPLETE_SIG_INT_EN		(1<<1)
#define	COMMANDCOMPLETE_SIG_INT_EN		(1<<0)

//Normal Interrupt Status Enable
#define	READWAIT_STS_INT_EN				(1<<10)
#define	CARD_STS_INT_EN					(1<<8)
#define	CARD_REMOVAL_STS_INT_EN			(1<<7)
#define	CARD_INSERT_STS_INT_EN			(1<<6)
#define	BUFFER_READREADY_STS_INT_EN		(1<<5)
#define	BUFFER_WRITEREADY_STS_INT_EN	(1<<4)
#define	DMA_STS_INT_EN					(1<<3)
#define	BLOCKGAP_EVENT_STS_INT_EN		(1<<2)
#define	TRANSFERCOMPLETE_STS_INT_EN		(1<<1)
#define	COMMANDCOMPLETE_STS_INT_EN		(1<<0)



#ifdef __cplusplus
}
#endif
#endif /*__HS_MMC_H__*/

⌨️ 快捷键说明

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