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

📄 mmc_ptt.h

📁 How to control MMC interface under SZ platform
💻 H
字号:
/******************************************************************************

 C   H E A D E R   F I L E

 (c) Copyright Motorola Semiconductors Hong Kong Limited 1999 - 2002
 ALL RIGHTS RESERVED

*******************************************************************************

 Project Name : Portable Personal System Manager - GT version 2.0
 Project No.  : PDAPSM05
 Title        : 
 File Name    : MMC_ptt.h	
 Last Modified: Jan 31, 2002

 Description  : 

 Assumptions  : 
 
 Dependency Comments :

 Project Specific Data :

******************************************************************************/

#ifndef MMC_PTT_123416734563456
#define MMC_PTT_123416734563456

//#include "os.h"
#include "rtoshdrs.h"
#include "mmc_typ.h"
#include "Fls_dd.h"
#include "debug.h"

/*****************Interface Function with Devive Manage********/
int MMCInit(DEVICE *dev);
int MMCRead( U32 log_sect, PCFM_BUFFER *bufp );
int MMCWrite( U32 log_sect, PCFM_BUFFER *bufp );
int MMCFormat( DEVICE *devp, int cylinder, int head,int nsects, void *bufp );
int MMCRawRead( DEVICE *devp,  int cylinder, int head, int sector,int nsects, void *bufp );
int MMCRawWrite( DEVICE *devp, int cylinder, int head, int sector,int nsects, void *bufp );
void MMCTimeStamp( uint16 *time );
int MMCDiskChange( DEVICE *devp );
STATUS MMCIoctl(U16 Key,P_VOID pAgu,P_U32 pSize);
int _MMCErrorConvert(MMC_STATUS status);
STATUS _MmcSetupDriver();
int _MMCDelay();
/**************************************************************/

/************************ MMC Driver***************************/
MMC_STATUS _MMCInitCard( MMC_CARD *cardinfo );
MMC_STATUS _MMCGetInfo( MMC_CARD *cardinfo );
MMC_STATUS _MMCSetSectLen(MMC_CARD *cardinfo );
MMC_STATUS _MMCReadSect( U8 card_no, U32 log_sect, U16 nsects,U8 *buff, MMC_CARD *cardinfo );
MMC_STATUS _MMCEraseSect(U8 card_no, U32 log_sect, U16 nsects, MMC_CARD *cardinfo );
MMC_STATUS _MMCWriteSect( U8 card_no, U32 log_sect, U16 nsects,U8 *buff, MMC_CARD *cardinfo );
MMC_STATUS _MMCCheckCardInfo( MMC_CSD *csd, U8 *cid );
MMC_STATUS _MMCBPBCheck( U8 card_no, MMC_CARD *cardinfo, U8 *check,U32 bpb_addr );
MMC_STATUS _MMCMBRCheck( U8 card_no, MMC_CARD *cardinfo, U8 *check,U32 *bpb_addr );
void _MMCMBRDataMake( U8 card_no );
void _MMCBPBDataMake( U8 card_no );
void _MMCFATDataMake( U8 card_no );
void _MMCTimeSet( U16 *time );
MMC_STATUS _MMCGetStatus( U8 card_no, MMC_CARD_INFO *cardinfo );
void _MMCSetCSD(MMC_CARD *cardinfo,int i,P_U8 Csd_buff);
void _MMCSetCID(MMC_CARD *cardinfo,int i,P_U8 Cid_buff);
MMC_STATUS _MMCCSDCheck( U8 *csdbuff );
MMC_STATUS _SDCSDCheck( U8 *csdbuff );
MMC_STATUS _MMCCIDCheck( U8 *cidbuff );
MMC_STATUS _SDCIDCheck( U8 *cidbuff );
MMC_STATUS _MMCWaitUntilCardReady(P_MMC_CARD_INFO pCurrentCardInfo);
MMC_STATUS _MMCSetBusWidth(MMC_CARD_INFO *cardinfo);
MMC_STATUS _MMCReadSectOneCard(U32 log_sect, U16 nsects,U8 *buff) ;
MMC_STATUS _MMCWriteSectOneCard(U32 log_sect, U16 nsects,U8 *buff) ;

/**************************************************************/

/****************************MMC CMD***************************/
MMC_STATUS _MMCGoIdleState();
MMC_STATUS _MMCSendOpCond(U32 voltage);
MMC_STATUS _MMCAllSendCID(P_U8 pCidBuff);
MMC_STATUS _MMCSetRelativeAddr(U32 addr);
MMC_STATUS _SDGetRelativeAddr(U32 *addr);
MMC_STATUS _SDSetBusWidth(U8 buswidth);
MMC_STATUS _MMCSelectDeselectCard(U32 addr);
MMC_STATUS _MMCSendCSD(U32 addr,P_U8 pBuff);
MMC_STATUS _MMCSendCID(U32 addr,P_U8 pBuff);
MMC_STATUS _SDSendSCR(P_U8 pSCR);
MMC_STATUS _MMCSendStatus(U32 addr,P_U32 pStatus);
MMC_STATUS _MMCSetBlockLen(U32 size);
MMC_STATUS _MMCWriteSingleBlock(P_MMC_CARD_INFO,U32 addr,P_U8 buff);
MMC_STATUS _MMCTagSectorEnd(U32 addr);
MMC_STATUS _MMCErase();
MMC_STATUS _SDSendOpCond(U32 voltage);
MMC_STATUS _MMCAppCmd(U32 addr);

MMC_STATUS _MMCNoDataCommand(U8 cmd, U32 arg,U32);
MMC_STATUS _MMCWaitDataTransDone();
MMC_STATUS _MMCStopTransmission();
MMC_STATUS _MMCReadBlock(P_MMC_CARD_INFO pCurrentCardInfo,U32 start_addr,U16 nsects, P_U8 buff );
MMC_STATUS _MMCWriteBlock(P_MMC_CARD_INFO,U32 start_addr,U16 nsects, P_U8 buff );

void _MMCTransferEnd(U16 state); //callback function
void _MMCIrptHandle();
MMC_STATUS _SDSendStatus(P_U8 pBuff);
/*************************Interface Function with Hardware*****/
MMC_STATUS _MMCChectHardwareRevision();
MMC_STATUS _MMCSoftReset();
void _MMCSetCmd(U8 cmd,U32 arg,U32 ctrl);
U8 _MMCIsRun();
void _MMCGetResponses(MMC_RESPONSES *pRS,U8 rsType);
void _MMCSetBlockLenReg(U16 size);
void _MMCSetNumberOfBlockReg(U16 num);
void _MMCStopClk();
void _MMCStartClk();
void _MMCClockSet(U8 speed);
void _PortRsetting();


/*************************One Card******************************/
MMC_STATUS _MMCInitOneCard(MMC_CARD_INFO *cardinfo);


#endif

⌨️ 快捷键说明

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