![]() |
MCUXpresso SDK API Reference Manual
Rev 2.16.000
NXP Semiconductors
|
The SDIF host adapter driver provide adapter for blocking/non_blocking mode.
Data Structures | |
struct | _sdmmchost_ |
sdmmc host handler More... | |
Macros | |
#define | FSL_SDMMC_HOST_ADAPTER_VERSION (MAKE_VERSION(2U, 4U, 0U)) /*2.4.0*/ |
Middleware adapter version. More... | |
#define | SDMMCHOST_SUPPORT_HIGH_SPEED (1U) |
host capability | |
#define | SDMMCHOST_INSTANCE_SUPPORT_8_BIT_WIDTH(host) 1U |
sdmmc host instance capability | |
#define | SDMMCHOST_DMA_DESCRIPTOR_BUFFER_ALIGN_SIZE (4U) |
SDMMC host dma descriptor buffer address align size. | |
#define | SDMMCHOST_RESET_TIMEOUT_VALUE (1000000U) |
SDMMC host reset timoue value. | |
Typedefs | |
typedef sdif_transfer_t | sdmmchost_transfer_t |
sdmmc host transfer function | |
typedef struct _sdmmchost_ | sdmmchost_t |
sdmmc host handler | |
Enumerations | |
enum | { kSDMMCHOST_SupportHighSpeed = 1U << 0U, kSDMMCHOST_SupportSuspendResume = 1U << 1U, kSDMMCHOST_SupportVoltage3v3 = 1U << 2U, kSDMMCHOST_SupportVoltage3v0 = 1U << 3U, kSDMMCHOST_SupportVoltage1v8 = 1U << 4U, kSDMMCHOST_SupportVoltage1v2 = 1U << 5U, kSDMMCHOST_Support4BitDataWidth = 1U << 6U, kSDMMCHOST_Support8BitDataWidth = 1U << 7U, kSDMMCHOST_SupportDDRMode = 1U << 8U, kSDMMCHOST_SupportDetectCardByData3 = 1U << 9U, kSDMMCHOST_SupportDetectCardByCD = 1U << 10U, kSDMMCHOST_SupportAutoCmd12 = 1U << 11U, kSDMMCHOST_SupportSDR104 = 1U << 12U, kSDMMCHOST_SupportSDR50 = 1U << 13U, kSDMMCHOST_SupportHS200 = 1U << 14U, kSDMMCHOST_SupportHS400 = 1U << 15U } |
sdmmc host capability More... | |
enum | _sdmmchost_endian_mode { kSDMMCHOST_EndianModeBig = 0U, kSDMMCHOST_EndianModeHalfWordBig = 1U, kSDMMCHOST_EndianModeLittle = 2U } |
host Endian mode corresponding to driver define More... | |
SDIF host controller function | |
void | SDMMCHOST_SetCardBusWidth (sdmmchost_t *host, uint32_t dataBusWidth) |
set data bus width. More... | |
static void | SDMMCHOST_SendCardActive (sdmmchost_t *host) |
Send initilization active 80 clocks to card. More... | |
static uint32_t | SDMMCHOST_SetCardClock (sdmmchost_t *host, uint32_t targetClock) |
Set card bus clock. More... | |
static bool | SDMMCHOST_IsCardBusy (sdmmchost_t *host) |
check card status by DATA0. More... | |
static status_t | SDMMCHOST_StartBoot (sdmmchost_t *host, sdmmchost_boot_config_t *hostConfig, sdmmchost_cmd_t *cmd, uint8_t *buffer) |
start read boot data. More... | |
static status_t | SDMMCHOST_ReadBootData (sdmmchost_t *host, sdmmchost_boot_config_t *hostConfig, uint8_t *buffer) |
read boot data. More... | |
static void | SDMMCHOST_EnableBoot (sdmmchost_t *host, bool enable) |
enable boot mode. More... | |
static void | SDMMCHOST_EnableCardInt (sdmmchost_t *host, bool enable) |
enable card interrupt. More... | |
status_t | SDMMCHOST_CardIntInit (sdmmchost_t *host, void *sdioInt) |
card interrupt function. More... | |
status_t | SDMMCHOST_CardDetectInit (sdmmchost_t *host, void *cd) |
card detect init function. More... | |
status_t | SDMMCHOST_PollingCardDetectStatus (sdmmchost_t *host, uint32_t waitCardStatus, uint32_t timeout) |
Detect card insert, only need for SD cases. More... | |
uint32_t | SDMMCHOST_CardDetectStatus (sdmmchost_t *host) |
card detect status. More... | |
status_t | SDMMCHOST_Init (sdmmchost_t *host) |
Init host controller. More... | |
void | SDMMCHOST_Deinit (sdmmchost_t *host) |
Deinit host controller. More... | |
void | SDMMCHOST_SetCardPower (sdmmchost_t *host, bool enable) |
host power off card function. More... | |
status_t | SDMMCHOST_TransferFunction (sdmmchost_t *host, sdmmchost_transfer_t *content) |
host transfer function. More... | |
void | SDMMCHOST_Reset (sdmmchost_t *host) |
host reset function. More... | |
static void | SDMMCHOST_SwitchToVoltage (sdmmchost_t *host, uint32_t voltage) |
switch to voltage. More... | |
static status_t | SDMMCHOST_ExecuteTuning (sdmmchost_t *host, uint32_t tuningCmd, uint32_t *revBuf, uint32_t blockSize) |
sdmmc host excute tuning. More... | |
static void | SDMMCHOST_EnableDDRMode (sdmmchost_t *host, bool enable, uint32_t nibblePos) |
enable DDR mode. More... | |
static void | SDMMCHOST_EnableHS400Mode (sdmmchost_t *host, bool enable) |
enable HS400 mode. More... | |
static void | SDMMCHOST_EnableStrobeDll (sdmmchost_t *host, bool enable) |
enable STROBE DLL. More... | |
static uint32_t | SDMMCHOST_GetSignalLineStatus (sdmmchost_t *host, uint32_t signalLine) |
Get signal line status. More... | |
static void | SDMMCHOST_ForceClockOn (sdmmchost_t *host, bool enable) |
force card clock on. More... | |
void | SDMMCHOST_ConvertDataToLittleEndian (sdmmchost_t *host, uint32_t *data, uint32_t wordSize, uint32_t format) |
sdmmc host convert data sequence to little endian sequence More... | |
struct _sdmmchost_ |
Data Fields | |
sdif_host_t | hostController |
host configuration | |
uint8_t | hostPort |
host port number, used for one instance support two card | |
void * | dmaDesBuffer |
DMA descriptor buffer address. | |
uint32_t | dmaDesBufferWordsNum |
DMA descriptor buffer size in byte. | |
sdif_handle_t | handle |
host controller handler | |
uint32_t | capability |
host controller capability | |
uint32_t | maxBlockCount |
host controller maximum block count | |
uint32_t | maxBlockSize |
host controller maximum block size | |
sdmmc_osa_event_t | hostEvent |
host event handler | |
void * | cd |
card detect | |
void * | cardInt |
call back function for card interrupt | |
sdmmc_osa_mutex_t | lock |
host access lock | |
#define FSL_SDMMC_HOST_ADAPTER_VERSION (MAKE_VERSION(2U, 4U, 0U)) /*2.4.0*/ |
anonymous enum |
void SDMMCHOST_SetCardBusWidth | ( | sdmmchost_t * | host, |
uint32_t | dataBusWidth | ||
) |
host | host handler |
dataBusWidth | data bus width |
|
inlinestatic |
host | host handler |
|
inlinestatic |
host | host handler |
targetClock | target clock frequency |
actual | clock frequency can be reach. |
|
inlinestatic |
host | host handler |
true | is busy, false is idle. |
|
inlinestatic |
host | host handler |
hostConfig | boot configuration |
cmd | boot command |
buffer | buffer address |
|
inlinestatic |
host | host handler |
hostConfig | boot configuration |
buffer | buffer address |
|
inlinestatic |
host | host handler |
enable | true is enable, false is disable |
|
inlinestatic |
host | host handler |
enable | true is enable, false is disable. |
status_t SDMMCHOST_CardIntInit | ( | sdmmchost_t * | host, |
void * | sdioInt | ||
) |
host | host handler |
sdioInt | card interrupt configuration |
status_t SDMMCHOST_CardDetectInit | ( | sdmmchost_t * | host, |
void * | cd | ||
) |
host | host handler |
cd | card detect configuration |
status_t SDMMCHOST_PollingCardDetectStatus | ( | sdmmchost_t * | host, |
uint32_t | waitCardStatus, | ||
uint32_t | timeout | ||
) |
host | host handler |
waitCardStatus | status which user want to wait |
timeout | wait time out. |
kStatus_Success | detect card insert |
kStatus_Fail | card insert event fail |
uint32_t SDMMCHOST_CardDetectStatus | ( | sdmmchost_t * | host | ) |
host | host handler |
kSD_Inserted,kSD_Removed |
status_t SDMMCHOST_Init | ( | sdmmchost_t * | host | ) |
Thread safe function, please note that the function will create the mutex lock dynamically by default, so to avoid the mutex create redundantly, application must follow bellow sequence for card re-initialization
host | host handler |
kStatus_Success | host init success |
kStatus_Fail | event fail |
void SDMMCHOST_Deinit | ( | sdmmchost_t * | host | ) |
Please note it is a thread safe function.
host | host handler |
void SDMMCHOST_SetCardPower | ( | sdmmchost_t * | host, |
bool | enable | ||
) |
host | host handler |
enable | true is power on, false is power down. |
status_t SDMMCHOST_TransferFunction | ( | sdmmchost_t * | host, |
sdmmchost_transfer_t * | content | ||
) |
Please note it is a thread safe function.
host | host handler |
content | transfer content. |
void SDMMCHOST_Reset | ( | sdmmchost_t * | host | ) |
Please note it is a thread safe function.
host | host handler |
|
inlinestatic |
host | host handler |
voltage | switch to voltage level. |
|
inlinestatic |
host | host handler |
tuningCmd | tuning command. |
revBuf | receive buffer pointer |
blockSize | tuning data block size. |
|
inlinestatic |
host | host handler |
enable | true is enable, false is disable. |
nibblePos | nibble position indictation. 0- the sequence is 'odd high nibble -> even high nibble -> odd low nibble -> even low nibble'; 1- the sequence is 'odd high nibble -> odd low nibble -> even high nibble -> even low nibble'. |
|
inlinestatic |
host | host handler |
enable | true is enable, false is disable. |
|
inlinestatic |
host | host handler |
enable | true is enable, false is disable. |
|
inlinestatic |
host | host handler |
signalLine | signal line type, reference _sdmmc_signal_line |
|
inlinestatic |
host | host handler |
enable | true is enable, false is disable. |
void SDMMCHOST_ConvertDataToLittleEndian | ( | sdmmchost_t * | host, |
uint32_t * | data, | ||
uint32_t | wordSize, | ||
uint32_t | format | ||
) |
host | host handler. |
data | data buffer address. |
wordSize | data buffer size in word. |
format | data packet format. |