MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
SDIOCARD

Overview

Data Structures

struct  sdiocard_usr_param_t
 card user parameter, user can define the parameter according the board, card capability More...
 
struct  sdio_card_t
 SDIO card state. More...
 

Macros

#define FSL_SDIO_DRIVER_VERSION   (MAKE_VERSION(2U, 2U, 6U)) /*2.2.6*/
 Middleware version. More...
 

SDIOCARD Function

status_t SDIO_Init (sdio_card_t *card)
 SDIO card init function. More...
 
void SDIO_Deinit (sdio_card_t *card)
 SDIO card deinit, include card and host deinit. More...
 
status_t SDIO_CardInit (sdio_card_t *card)
 Initializes the card. More...
 
void SDIO_CardDeinit (sdio_card_t *card)
 Deinitializes the card. More...
 
status_t SDIO_HostInit (sdio_card_t *card)
 initialize the host. More...
 
void SDIO_HostDeinit (sdio_card_t *card)
 Deinitializes the host. More...
 
void SDIO_HostReset (SDMMCHOST_CONFIG *host)
 reset the host. More...
 
void SDIO_PowerOnCard (SDMMCHOST_TYPE *base, const sdmmchost_pwr_card_t *pwr)
 power on card. More...
 
void SDIO_PowerOffCard (SDMMCHOST_TYPE *base, const sdmmchost_pwr_card_t *pwr)
 power on card. More...
 
status_t SDIO_CardInActive (sdio_card_t *card)
 set SDIO card to inactive state More...
 
status_t SDIO_IO_Write_Direct (sdio_card_t *card, sdio_func_num_t func, uint32_t regAddr, uint8_t *data, bool raw)
 IO direct write transfer function. More...
 
status_t SDIO_IO_Read_Direct (sdio_card_t *card, sdio_func_num_t func, uint32_t regAddr, uint8_t *data)
 IO direct read transfer function. More...
 
status_t SDIO_IO_Write_Extended (sdio_card_t *card, sdio_func_num_t func, uint32_t regAddr, uint8_t *buffer, uint32_t count, uint32_t flags)
 IO extended write transfer function. More...
 
status_t SDIO_IO_Read_Extended (sdio_card_t *card, sdio_func_num_t func, uint32_t regAddr, uint8_t *buffer, uint32_t count, uint32_t flags)
 IO extended read transfer function. More...
 
status_t SDIO_GetCardCapability (sdio_card_t *card, sdio_func_num_t func)
 get SDIO card capability More...
 
status_t SDIO_SetBlockSize (sdio_card_t *card, sdio_func_num_t func, uint32_t blockSize)
 set SDIO card block size More...
 
status_t SDIO_CardReset (sdio_card_t *card)
 set SDIO card reset More...
 
status_t SDIO_SetDataBusWidth (sdio_card_t *card, sdio_bus_width_t busWidth)
 set SDIO card data bus width More...
 
status_t SDIO_SwitchToHighSpeed (sdio_card_t *card)
 switch the card to high speed More...
 
status_t SDIO_ReadCIS (sdio_card_t *card, sdio_func_num_t func, const uint32_t *tupleList, uint32_t tupleNum)
 read SDIO card CIS for each function More...
 
status_t SDIO_EnableIOInterrupt (sdio_card_t *card, sdio_func_num_t func, bool enable)
 enable IO interrupt More...
 
status_t SDIO_EnableIO (sdio_card_t *card, sdio_func_num_t func, bool enable)
 enable IO and wait IO ready More...
 
status_t SDIO_SelectIO (sdio_card_t *card, sdio_func_num_t func)
 select IO More...
 
status_t SDIO_AbortIO (sdio_card_t *card, sdio_func_num_t func)
 Abort IO transfer. More...
 
status_t SDIO_WaitCardDetectStatus (SDMMCHOST_TYPE *hostBase, const sdmmchost_detect_card_t *cd, bool waitCardStatus)
 sdio wait card detect function. More...
 
bool SDIO_IsCardPresent (sdio_card_t *card)
 sdio card present check function. More...
 
status_t SDIO_IO_Transfer (sdio_card_t *card, sdio_command_t cmd, uint32_t argument, uint32_t blockSize, uint8_t *txData, uint8_t *rxData, uint16_t dataSize, uint32_t *response)
 sdio card io transfer function. More...
 

Data Structure Documentation

struct sdiocard_usr_param_t

Data Fields

const sdmmchost_detect_card_tcd
 card detect type
 
const sdmmchost_pwr_card_tpwr
 power control configuration
 
struct sdio_card_t

Define the card structure including the necessary fields to identify and describe the card.

Data Fields

SDMMCHOST_CONFIG host
 Host information.
 
sdiocard_usr_param_t usrParam
 user parameter
 
bool isHostReady
 use this flag to indicate if need host re-init or not
 
bool memPresentFlag
 indicate if memory present
 
uint32_t busClock_Hz
 SD bus clock frequency united in Hz.
 
uint32_t relativeAddress
 Relative address of the card.
 
uint8_t sdVersion
 SD version.
 
uint8_t sdioVersion
 SDIO version.
 
uint8_t cccrVersioin
 CCCR version.
 
uint8_t ioTotalNumber
 total number of IO function
 
uint32_t cccrflags
 Flags in _sd_card_flag.
 
uint32_t io0blockSize
 record the io0 block size
 
uint32_t ocr
 Raw OCR content, only 24bit avalible for SDIO card.
 
uint32_t commonCISPointer
 point to common CIS
 
sdio_fbr_t ioFBR [7U]
 FBR table.
 
sdio_common_cis_t commonCIS
 CIS table.
 
sdio_func_cis_t funcCIS [7U]
 function CIS table
 

Macro Definition Documentation

#define FSL_SDIO_DRIVER_VERSION   (MAKE_VERSION(2U, 2U, 6U)) /*2.2.6*/

Function Documentation

status_t SDIO_Init ( sdio_card_t card)
Parameters
cardCard descriptor.
Return values
kStatus_SDMMC_GoIdleFailed
kStatus_SDMMC_HandShakeOperationConditionFailed
kStatus_SDMMC_SDIO_InvalidCard
kStatus_SDMMC_SDIO_InvalidVoltage
kStatus_SDMMC_SendRelativeAddressFailed
kStatus_SDMMC_SelectCardFailed
kStatus_SDMMC_SDIO_SwitchHighSpeedFail
kStatus_SDMMC_SDIO_ReadCISFail
kStatus_SDMMC_TransferFailed
kStatus_Success
void SDIO_Deinit ( sdio_card_t card)
Parameters
cardCard descriptor.
status_t SDIO_CardInit ( sdio_card_t card)

This function initializes the card only, make sure the host is ready when call this function, otherwise it will return kStatus_SDMMC_HostNotReady.

Parameters
cardCard descriptor.
Return values
kStatus_SDMMC_HostNotReadyhost is not ready.
kStatus_SDMMC_GoIdleFailedGo idle failed.
kStatus_SDMMC_NotSupportYetCard not support.
kStatus_SDMMC_SendOperationConditionFailedSend operation condition failed.
kStatus_SDMMC_AllSendCidFailedSend CID failed.
kStatus_SDMMC_SendRelativeAddressFailedSend relative address failed.
kStatus_SDMMC_SendCsdFailedSend CSD failed.
kStatus_SDMMC_SelectCardFailedSend SELECT_CARD command failed.
kStatus_SDMMC_SendScrFailedSend SCR failed.
kStatus_SDMMC_SetBusWidthFailedSet bus width failed.
kStatus_SDMMC_SwitchHighSpeedFailedSwitch high speed failed.
kStatus_SDMMC_SetCardBlockSizeFailedSet card block size failed.
kStatus_SuccessOperate successfully.
void SDIO_CardDeinit ( sdio_card_t card)

This function deinitializes the specific card.

Parameters
cardCard descriptor.
status_t SDIO_HostInit ( sdio_card_t card)

This function deinitializes the specific host.

Parameters
cardCard descriptor.
void SDIO_HostDeinit ( sdio_card_t card)

This function deinitializes the host.

Parameters
cardCard descriptor.
void SDIO_HostReset ( SDMMCHOST_CONFIG *  host)

This function reset the specific host.

Parameters
hosthost descriptor.
void SDIO_PowerOnCard ( SDMMCHOST_TYPE *  base,
const sdmmchost_pwr_card_t pwr 
)

The power on operation depend on host or the user define power on function.

Parameters
basehost base address.
pwruser define power control configuration
void SDIO_PowerOffCard ( SDMMCHOST_TYPE *  base,
const sdmmchost_pwr_card_t pwr 
)

The power off operation depend on host or the user define power on function.

Parameters
basehost base address.
pwruser define power control configuration
status_t SDIO_CardInActive ( sdio_card_t card)
Parameters
cardCard descriptor.
Return values
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_IO_Write_Direct ( sdio_card_t card,
sdio_func_num_t  func,
uint32_t  regAddr,
uint8_t *  data,
bool  raw 
)
Parameters
cardCard descriptor.
functionIO numner
registeraddress
thedata pinter to write
rawflag, indicate read after write or write only
Return values
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_IO_Read_Direct ( sdio_card_t card,
sdio_func_num_t  func,
uint32_t  regAddr,
uint8_t *  data 
)
Parameters
cardCard descriptor.
functionIO number
registeraddress
datapointer to read
Return values
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_IO_Write_Extended ( sdio_card_t card,
sdio_func_num_t  func,
uint32_t  regAddr,
uint8_t *  buffer,
uint32_t  count,
uint32_t  flags 
)
Parameters
cardCard descriptor.
functionIO number
registeraddress
databuffer to write
datacount
writeflags
Return values
kStatus_SDMMC_TransferFailed
kStatus_SDMMC_SDIO_InvalidArgument
kStatus_Success
status_t SDIO_IO_Read_Extended ( sdio_card_t card,
sdio_func_num_t  func,
uint32_t  regAddr,
uint8_t *  buffer,
uint32_t  count,
uint32_t  flags 
)
Parameters
cardCard descriptor.
functionIO number
registeraddress
databuffer to read
datacount
writeflags
Return values
kStatus_SDMMC_TransferFailed
kStatus_SDMMC_SDIO_InvalidArgument
kStatus_Success
status_t SDIO_GetCardCapability ( sdio_card_t card,
sdio_func_num_t  func 
)
Parameters
cardCard descriptor.
functionIO number
Return values
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_SetBlockSize ( sdio_card_t card,
sdio_func_num_t  func,
uint32_t  blockSize 
)
Parameters
cardCard descriptor.
functionio number
blocksize
Return values
kStatus_SDMMC_SetCardBlockSizeFailed
kStatus_SDMMC_SDIO_InvalidArgument
kStatus_Success
status_t SDIO_CardReset ( sdio_card_t card)
Parameters
cardCard descriptor.
Return values
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_SetDataBusWidth ( sdio_card_t card,
sdio_bus_width_t  busWidth 
)
Parameters
cardCard descriptor.
databus width
Return values
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_SwitchToHighSpeed ( sdio_card_t card)
Parameters
cardCard descriptor.
Return values
kStatus_SDMMC_TransferFailed
kStatus_SDMMC_SDIO_SwitchHighSpeedFail
kStatus_Success
status_t SDIO_ReadCIS ( sdio_card_t card,
sdio_func_num_t  func,
const uint32_t *  tupleList,
uint32_t  tupleNum 
)
Parameters
cardCard descriptor.
functionio number
tuplecode list
tuplecode number
Return values
kStatus_SDMMC_SDIO_ReadCISFail
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_EnableIOInterrupt ( sdio_card_t card,
sdio_func_num_t  func,
bool  enable 
)
Parameters
cardCard descriptor.
functionIO number
enable/disableflag
Return values
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_EnableIO ( sdio_card_t card,
sdio_func_num_t  func,
bool  enable 
)
Parameters
cardCard descriptor.
functionIO number
enable/disableflag
Return values
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_SelectIO ( sdio_card_t card,
sdio_func_num_t  func 
)
Parameters
cardCard descriptor.
functionIO number
Return values
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_AbortIO ( sdio_card_t card,
sdio_func_num_t  func 
)
Parameters
cardCard descriptor.
functionIO number
Return values
kStatus_SDMMC_TransferFailed
kStatus_Success
status_t SDIO_WaitCardDetectStatus ( SDMMCHOST_TYPE *  hostBase,
const sdmmchost_detect_card_t cd,
bool  waitCardStatus 
)

Detect card through GPIO, CD, DATA3.

Parameters
cardcard descriptor.
carddetect configuration
waitCardStatuswait card detect status
bool SDIO_IsCardPresent ( sdio_card_t card)
Parameters
cardcard descriptor.
status_t SDIO_IO_Transfer ( sdio_card_t card,
sdio_command_t  cmd,
uint32_t  argument,
uint32_t  blockSize,
uint8_t *  txData,
uint8_t *  rxData,
uint16_t  dataSize,
uint32_t *  response 
)

This function can be used for trnansfer direct/extend command. Please pay attention to the non-align data buffer address transfer, if data buffer address can not meet host controller internal DMA requirement, sdio driver will try to use internal align buffer if data size is not bigger than internal buffer size, Align address transfer always can get a better performance, so if application want sdio driver make sure buffer address align, please redefine the SDMMC_GLOBAL_BUFFER_SIZE macro to a value which is big enough for your application.

Parameters
cardcard descriptor.
cmdcommand to transfer
argumentargument to transfer
blockSizeused for block mode.
txDatatx buffer pointer or NULL
rxDatarx buffer pointer or NULL
dataSizetransfer data size
responsereponse pointer, if application want read response back, please set it to a NON-NULL pointer.