/* ===========================================================================
* Copyright (c) Texas Instruments Inc 2002, 2003, 2004, 2005, 2008
*
* Use of this software is controlled by the terms and conditions found in
* the license agreement under which this software has been supplied.
* ===========================================================================
*/
/** @file csl_mmcsd_ataIf.h
*
* @brief Functional layer API header file for MMCSD ATA file system interface
*
* Path: \(CSLPATH)\ inc
*/
/* ============================================================================
* Revision History
* ================
* 20-May-2009 Created
* 08-Mar-2010 Added get_mod_date and get_mod_time routines KR030810
* 21-Mar-2010 Added MMC_readNextWord1 routine KR032110
* 11-Apr-2010 Added write sector cache in MMC_readWriteControl KR041110
* added write sector cache flush to MMC_issueReadCommand KR041110
* 06-Apr-2010 - Incorporated Frank's comments
* 26-Apr-2010 - Added support for 'ATA_No_Swap' used by the ATA FS
* 30-Apr-2010 - Incorporated internal review comments
* ============================================================================
*/
#ifndef CSL_MMCSD_ATAIF_H
#define CSL_MMCSD_ATAIF_H
#include "ata.h"
#include "csl_types.h"
/** \addtogroup CSL_MMCSD_SYMBOL
* @{ */
/** MMCSD Sector size in bytes */
#define CSL_MMCSD_PAGE_SIZE (512u)
/** Macro to enable the control of MMCSD word swap using 'ATA_No_Swap' */
#define USE_ATA_NO_SWAP (TRUE)
/**
@} */
/**
\addtogroup CSL_MMCSD_DATASTRUCT
@{*/
/**
* \brief Structure to hold the media ATA state values specific to MMCSD
*/
typedef struct AtaMMCState
{
/** Handle to the MMC/SD CSL module */
void *hMmcSd;
/** Pointer to the ata state structure */
AtaState *pDrive;
/** Pointer kept for the future use */
void *pMmcSdptr;
/** Pointer to the read data buffer */
AtaUint16 *pReadBuf;
/** Pointer to the write data buffer */
Uint16 *pWriteBuf;
/** Number of the current sector read */
Uint32 currentsectorR;
/** value of the current word read */
Uint32 currentwordR;
/** Number of the current sector written */
Uint32 currentsectorWr;
/** value of the current word written */
Uint32 currentwordWr;
/** MMCSD call back pointer */
void (*mmcsdCallBack)(void);
} AtaMMCState;
/**
@} */
/** ===========================================================================
* @n@b MMC_readWriteControl //KR041110
*
* @b Description
* @n This function is used to cache and write data to the media. This function
* can write 1 to 4 sectors each sector containing 512 bytes
*
* @b Arguments
* @verbatim
phySector Sector number from which data needs to be read
pAtaMediaState ATA media state structure
pWord Write data buffer
last_sector Flag to flush cache
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
* @li ATA_ERROR_TIMEOUT - Time out Error Occurred
* @li ATA_ERROR_UNSUPPORTED - MMC/SD hardware is not supported
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n Writes Data to MMC/SD card
*
* @b Modifies
* @n MMCSD Sector data
*
* @b Example
* @verbatim
#define CSL_MMCSD_BUF_SIZE (256u)
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaSector phySector;
AtaUint16 writeBuf[CSL_MMCSD_BUF_SIZE];
pAtaState = &ataState;
phySector = 0;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaWriteSector(phySector,
ataState->pAtaMediaState,
writeBuf, FALSE);
@endverbatim
* ===========================================================================
*/
AtaError MMC_readWriteControl (AtaSector phySector,
void *pAtaMediaState,
AtaUint16 *pWord,
int byteSwap);
/** @addtogroup CSL_MMCSD_FUNCTION
@{ */
/** ===========================================================================
* @n@b MMC_initState
*
* @b Description
* @n This function initializes ATA state structure. Initializes all function
* pointers in the ATA state structure with appropriate function address.
* This function should be called by the application programs before
* transferring the control over the media to ATA file system.
*
* @b Arguments
* @verbatim
pDrive ATA state structure pointer
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
*
* Pre Condition
* @n None
*
* Post Condition
* @n Initializes ATA state structure
*
* @b Modifies
* @n ATA state structure
*
* @b Example
* @verbatim
AtaState ataState;
AtaError ataErr;
ataErr = MMC_initState(&ataState);
@endverbatim
* ===========================================================================
*/
AtaError MMC_initState(AtaState *pDrive);
/** ===========================================================================
* @n@b MMC_issueReadCommand
*
* @b Description
* @n This function is used to fetch all normal data from the media.
* A sector is always assumed to be 256 16-bit words by the high-level API
*
* Programs calling this function should assign proper value to ATA_No_Swap
* in case of using that varaible.
*
* @b Arguments
* @verbatim
phySector Sector number from which data needs to be read
pAtaMediaState ATA media state structure
sectorCount Number of sectors to read
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
* @li ATA_ERROR_TIMEOUT - Time out Error Occurred
* @li ATA_ERROR_UNSUPPORTED - MMC/SD hardware is not supported
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n Reads Data from MMC/SD card
*
* @b Modifies
* @n Global Read buffer
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaSector phySector;
AtaUint16 sectCnt;
pAtaState = &ataState;
phySector = 0;
sectCnt = 16;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaIssueReadCommand(phySector,
ataState->pAtaMediaState,
sectCnt);
@endverbatim
* ===========================================================================
*/
AtaError MMC_issueReadCommand (AtaSector phySector,
void *pAtaMediaState,
AtaUint16 sectorCount);
/** ===========================================================================
* @n@b MMC_readNextWord
*
* @b Description
* @n This function is used to read a word next to the previously read word
* from the media. This function reads the words from the buffered data
* and send to the application. After reading 256 words from the global
* read buffer, this functions reads 256 words from the media and stores
* in the global read buffer. MMC_issueReadCommand functions should be
* called before calling this function for first time.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
pWord Pointer to store the data word
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
* @li ATA_ERROR_TIMEOUT - Time out Error Occurred
* @li ATA_ERROR_UNSUPPORTED - MMC/SD hardware is not supported
*
* Pre Condition
* @n MMC_initState API should be called successfully.
* @n MMC_issueReadCommand should be called when calling MMC_readNextWord
* function for first time
*
* Post Condition
* @n Copies a data word into pWord
*
* @b Modifies
* @n Data in pWord
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaUint16 data;
AtaSector phySector;
AtaUint16 sectCnt;
pAtaState = &ataState;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaIssueReadCommand(phySector,
ataState->pAtaMediaState,
sectCnt);
ataErr = pAtaState->AtaReadNextWord(ataState->pAtaMediaState,
&data);
@endverbatim
* ===========================================================================
*/
AtaError MMC_readNextWord (void *pAtaMediaState,
AtaUint16 *pWord);
/** ===========================================================================
* @n@b MMC_readNextWord1
*
* @b Description
* @n This function is used to read a word next to the previously read word
* from the media. This function reads the words from the buffered data
* and send to the application. After readinmg 256 words from the global
* read buffer, this functions reads 256 words from the media and stores
* in the global read buffer. MMC_issueReadCommand functions should be
* called before calling this function for first time.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
pWord Pointer to store the data word
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
* @li ATA_ERROR_TIMEOUT - Time out Error Occurred
* @li ATA_ERROR_UNSUPPORTED - MMC/SD hardware is not supported
*
* Pre Condition
* @n MMC_initState API should be called successfully.
* @n MMC_issueReadCommand should be called when calling MMC_readNextWord
* function for first time
*
* Post Condition
* @n Copies a data word into pWord
*
* @b Modifies
* @n Data in pWord
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaUint16 data;
AtaSector phySector;
AtaUint16 sectCnt;
pAtaState = &ataState;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaIssueReadCommand(phySector,
ataState->pAtaMediaState,
sectCnt);
ataErr = pAtaState->AtaReadNextWord(ataState->pAtaMediaState,
&data);
@endverbatim
* ===========================================================================
*/
AtaError MMC_readNextWord1 (void *pAtaMediaState, // KR032110
AtaUint16 *pWord,
AtaUint16 word_delta);
/** ===========================================================================
* @n@b MMC_readNextNWords
*
* @b Description
* @n This function is used to read N words next to the previously read word
* from the media. This function calls MMC_readNextWord API N number of
* times to read the data words. High level APIs should be aware of this
* and use MMC_readNextWord and MMC_readNextNWords APIs with care.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
pData Pointer to store the data words
word Number of words to read
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
* @li ATA_ERROR_TIMEOUT - Time out Error Occurred
* @li ATA_ERROR_UNSUPPORTED - MMC/SD hardware is not supported
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n Reads data from media
*
* @b Modifies
* @n Global Read buffer
*
* @b Example
* @verbatim
#define CSL_MMCSD_BUF_SIZE (16u)
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaUint16 dataBuf[CSL_MMCSD_BUF_SIZE];
AtaUint16 words;
pAtaState = &ataState;
words = CSL_MMCSD_BUF_SIZE;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaReadNextNWords(ataState->pAtaMediaState,
dataBuf, words);
@endverbatim
* ===========================================================================
*/
AtaError MMC_readNextNWords (void *pAtaMediaState,
AtaUint16 *pData,
AtaUint16 words);
/** ===========================================================================
* @n@b MMC_writeSector
*
* @b Description
* @n This function is used to write data to the media. This function can
* write 512 bytes of data at one time.
*
* Programs calling this function should assign proper value to ATA_No_Swap
* in case of using that varaible.
*
* @b Arguments
* @verbatim
phySector Sector number from which data needs to be read
pAtaMediaState ATA media state structure
pWord Write data buffer
byteSwap Flag to request for the byte swap
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
* @li ATA_ERROR_TIMEOUT - Time out Error Occurred
* @li ATA_ERROR_UNSUPPORTED - MMC/SD hardware is not supported
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n Writes Data to MMC/SD card
*
* @b Modifies
* @n MMCSD Sector data
*
* @b Example
* @verbatim
#define CSL_MMCSD_BUF_SIZE (256u)
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaSector phySector;
AtaUint16 writeBuf[CSL_MMCSD_BUF_SIZE];
pAtaState = &ataState;
phySector = 0;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaWriteSector(phySector,
ataState->pAtaMediaState,
writeBuf, FALSE);
@endverbatim
* ===========================================================================
*/
AtaError MMC_writeSector (AtaSector phySector,
void *pAtaMediaState,
AtaUint16 *pWord,
int byteSwap);
/** ===========================================================================
* @n@b MMC_readNSectors
*
* @b Description
* @n This function is used to read N sectors from MMC/SD card.
* Data buffer should be large enough to hold the data read
* from multiple sectors. Each sector size will be 512 bytes
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
pReadBuf Pointer to store read data
startSector Starting sector number to read
sectorCount Number of sectors to read
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
* @li ATA_ERROR_TIMEOUT - Time out Error Occurred
* @li ATA_ERROR_UNSUPPORTED - MMC/SD hardware is not supported
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n Reads data from media
*
* @b Modifies
* @n Read buffer
*
* @b Example
* @verbatim
#define CSL_MMCSD_BUF_SIZE (256u)
AtaMMCState ataMediaState;
AtaState ataState;
AtaError ataErr;
AtaUint16 dataBuf[CSL_MMCSD_BUF_SIZE];
AtaUint16 words;
Uint16 sectNum;
ataState->pAtaMediaState = &ataMediaState;
words = CSL_MMCSD_BUF_SIZE;
sectNum = 0;
ataErr = MMC_initState(&ataState);
ataErr = MMC_readNSectors(ataState->pAtaMediaStatee, dataBuf,
words, sectNum, 8);
@endverbatim
* ===========================================================================
*/
AtaError MMC_readNSectors (void *pAtaMediaState,
AtaUint16 *pReadBuf,
AtaSector startSector,
AtaUint16 sectorCount);
/** ===========================================================================
* @n@b MMC_writeNSectors
*
* @b Description
* @n This function is used to write N number of sectors to MMC/SD card.
* Each sector size will be 512 bytes
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
pWriteBuf Pointer to write data buffer
startSector Starting sector number to write
sectorCount Number of sectors to write
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
* @li ATA_ERROR_TIMEOUT - Time out Error Occurred
* @li ATA_ERROR_UNSUPPORTED - MMC/SD hardware is not supported
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n Writes data to media
*
* @b Modifies
* @n Data in the MMC/SD card
*
* @b Example
* @verbatim
#define CSL_MMCSD_BUF_SIZE (256u)
AtaMMCState ataMediaState;
AtaState ataState;
AtaError ataErr;
AtaUint16 dataBuf[CSL_MMCSD_BUF_SIZE];
AtaUint16 words;
Uint16 sectNum;
ataState->pAtaMediaState = &ataMediaState;
words = CSL_MMCSD_BUF_SIZE;
sectNum = 0;
ataErr = MMC_initState(&ataState);
ataErr = MMC_writeNSectors(ataState->pAtaMediaState, dataBuf,
words, sectNum, 8);
@endverbatim
* ===========================================================================
*/
AtaError MMC_writeNSectors (void *pAtaMediaState,
AtaUint16 *pWriteBuf,
AtaSector startSector,
AtaUint16 sectorCount);
/** ===========================================================================
* @n@b MMC_read_CID
*
* @b Description
* @n This function is used to read the MMCSD card identification information.
* CID information stored in the internal MMCSD handle is copied to the
* given data buffer. This function stores 8 words each of length 16bit
* into the given buffer.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
pBuf Pointer to data buffer to store CID information
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
*
* Pre Condition
* @n MMC_Open and MMC_sendAllCID/SD_sendAllCID APIs should be called
* successfully.
*
* Post Condition
* @n Writes CID data to given buffer
*
* @b Modifies
* @n Data in pBuf
*
* @b Example
* @verbatim
CSL_MMCControllerObj pMmcsdContObj;
CSL_MmcsdHandle mmcsdHandle;
CSL_MMCCardIdObj sdCardIdObj;
AtaMMCState ataMediaState;
AtaState ataState;
AtaError ataErr;
unsigned int csdBuf[8];
CSL_Status status;
ataState->pAtaMediaState = &ataMediaState;
//Open MMCSD module
mmcsdHandle = MMC_open(&pMmcsdContObj, CSL_MMCSD0_INST,
CSL_MMCSD_OPMODE_POLLED, &status);
//Configure MMCSD module
....
....
//Read the CID information form card and store it in MMCSD handle
status = SD_sendAllCID(mmcsdHandle, &sdCardIdObj);
//Read the CID data from the internal handle
ataErr = MMC_read_CID(ataState->pAtaMediaState, csdBuf);
@endverbatim
* ===========================================================================
*/
AtaError MMC_read_CID (void *pAtaMediaState,
unsigned int *pBuf);
/** ===========================================================================
* @n@b MMC_read_CSD
*
* @b Description
* @n This function is used to read the MMCSD card specific information.
* CSD information stored in the internal MMCSD handle is copied to the
* given data buffer. This function stores 8 words each of length 16bit
* into the given buffer.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
pBuf Pointer to data buffer to store CSD information
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
*
* Pre Condition
* @n MMC_Open and MMC_getCardCsd/SD_getCardCsd APIs should be called
* successfully.
*
* Post Condition
* @n Writes CSD data to given buffer
*
* @b Modifies
* @n Data in pBuf
*
* @b Example
* @verbatim
CSL_MMCControllerObj pMmcsdContObj;
CSL_MmcsdHandle mmcsdHandle;
CSL_MMCCardCsdObj sdCardCsdObj;
AtaMMCState ataMediaState;
AtaState ataState;
AtaError ataErr;
unsigned int csdBuf[8];
CSL_Status status;
ataState->pAtaMediaState = &ataMediaState;
//Open MMCSD module
mmcsdHandle = MMC_open(&pMmcsdContObj, CSL_MMCSD0_INST,
CSL_MMCSD_OPMODE_POLLED, &status);
//Configure MMCSD module
....
....
//Read the CSD information form card and store it in MMCSD handle
status = SD_getCardCsd(mmcsdHandle, &sdCardCsdObj);
//Read the CSD data from the internal handle
ataErr = MMC_read_CSD(ataState->pAtaMediaState, csdBuf);
@endverbatim
* ===========================================================================
*/
AtaError MMC_read_CSD (void *pAtaMediaState,
unsigned int *pBuf);
/** ===========================================================================
* @n@b MMC_writeSectorFlush
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
pAtaState = &ataState;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaWriteSectorFlush(ataState->pAtaMediaState);
@endverbatim
* ===========================================================================
*/
AtaError MMC_writeSectorFlush(void *pAtaMediaState);
/** ===========================================================================
* @n@b MMC_commandReadyStatusCheck
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
int status;
pAtaState = &ataState;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
status = pAtaState->AtaCommandReadyStatusCheck(ataState->pAtaMediaState);
@endverbatim
* ===========================================================================
*/
int MMC_commandReadyStatusCheck(void *pAtaMediaState);
/** ===========================================================================
* @n@b MMC_dataReadyStatusCheck
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
pAtaState = &ataState;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaDataReadyStatusCheck(ataState->pAtaMediaState);
@endverbatim
* ===========================================================================
*/
AtaError MMC_dataReadyStatusCheck(void *pAtaMediaState);
/** ===========================================================================
* @n@b MMC_busyStatusCheck
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
pAtaState = &ataState;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaBusyStatusCheck(ataState->pAtaMediaState);
@endverbatim
* ===========================================================================
*/
AtaError MMC_busyStatusCheck (void *pAtaMediaState);
/** ===========================================================================
* @n@b MMC_getSerialID
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
pID Pointer to store the serial Id
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaSerialID serId;
pAtaState= &ataState;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
retVal = pAtaState->AtaGetSerialID(ataState->pAtaMediaState,
&serId);
@endverbatim
* ===========================================================================
*/
AtaUint16 MMC_getSerialID (void *pAtaMediaState,
AtaSerialID *pSerID);
/** ===========================================================================
* @n@b MMC_file_system_format
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaUint16 retVal;
pAtaState = &ataState;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
retVal = pAtaState->AtaFileSystemType(ataState->pAtaMediaState);
@endverbatim
* ===========================================================================
*/
AtaUint16 MMC_file_system_format (void *pAtaMediaState);
/** ===========================================================================
* @n@b MMC_reset
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
pAtaState = &ataState;
ataState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaReset(ataState->pAtaMediaState);
@endverbatim
* ===========================================================================
*/
AtaError MMC_reset(void *pAtaMediaState);
/** ===========================================================================
* @n@b MMC_get_time
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
None
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaUint16 time;
pAtaState = &ataState;
ataErr = MMC_initState(&ataState);
time = pAtaState->get_time();
@endverbatim
* ===========================================================================
*/
AtaUint16 MMC_get_time (void);
/** ===========================================================================
* @n@b MMC_get_mod_time
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
None
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaUint16 time;
pAtaState = &ataState;
ataErr = MMC_initState(&ataState);
time = pAtaState->get_mod_time();
@endverbatim
* ===========================================================================
*/
AtaUint16 MMC_get_mod_time (void);
/** ===========================================================================
* @n@b MMC_get_date
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
None
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaUint16 date;
pAtaState = &ataState;
ataErr = MMC_initState(&ataState);
date = pAtaState->get_date();
@endverbatim
* ===========================================================================
*/
AtaUint16 MMC_get_date (void);
/** ===========================================================================
* @n@b MMC_get_mod_date
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
None
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
AtaUint16 date;
pAtaState = &ataState;
ataErr = MMC_initState(&ataState);
date = pAtaState->get_mod_date();
@endverbatim
* ===========================================================================
*/
AtaUint16 MMC_get_mod_date (void);
/** ===========================================================================
* @n@b MMC_flushFat
*
* @b Description
* @n This function always returns success. No functionality is implemented.
* This function address is assigned to the function pointer provided by
* ATA file system.
*
* @b Arguments
* @verbatim
pAtaMediaState ATA media state structure
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_NONE - Returned for success
*
* Pre Condition
* @n MMC_initState API should be called successfully.
*
* Post Condition
* @n None
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
AtaMMCState ataMediaState;
AtaState ataState;
AtaState *pAtaState;
AtaError ataErr;
pAtaState = *ataState;
pAtaState->pAtaMediaState = &ataMediaState;
ataErr = MMC_initState(&ataState);
ataErr = pAtaState->AtaFlushFat(pAtaState->pAtaMediaState);
@endverbatim
* ===========================================================================
*/
AtaError MMC_flushFat (void *pAtaMediaState);
/** ===========================================================================
* @n@b getAtaErrorNo
*
* @b Description
* @n This function checks the return value send by the MMCSD CSL module
* and returns the corresponding error value to the ATA File system.
* This function is called in case of any error occurred
*
* @b Arguments
* @verbatim
result Result returned by the CSL MMCSD module
@endverbatim
*
* Return Value AtaError
* @li ATA_ERROR_INVALID_PARAM - Returned for Invalid input parameters
* @li ATA_ERROR_TIMEOUT - Time out Error Occurred
* @li ATA_ERROR_UNSUPPORTED - MMC/SD hardware is not supported
*
* Pre Condition
* @n None
*
* Post Condition
* @n Returns ATA Error codes
*
* @b Modifies
* @n None
*
* @b Example
* @verbatim
CSL_Status result;
AtaError ataErr;
result = MMC_init();
ataErr = getAtaErrorNo(result);
@endverbatim
* ===========================================================================
*/
static AtaError getAtaErrorNo(CSL_Status result);
/**
@} */
#endif /* CSL_MMCSD_ATAIF_H */