MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
Data Structures | |
struct | usdhc_adma2_descriptor_t |
Defines the ADMA2 descriptor structure. More... | |
struct | usdhc_capability_t |
USDHC capability information. More... | |
struct | usdhc_boot_config_t |
Data structure to configure the MMC boot feature. More... | |
struct | usdhc_config_t |
Data structure to initialize the USDHC. More... | |
struct | usdhc_data_t |
Card data descriptor. More... | |
struct | usdhc_command_t |
Card command descriptor. More... | |
struct | usdhc_adma_config_t |
ADMA configuration. More... | |
struct | usdhc_transfer_t |
Transfer state. More... | |
struct | usdhc_transfer_callback_t |
USDHC callback functions. More... | |
struct | usdhc_handle_t |
USDHC handle. More... | |
struct | usdhc_host_t |
USDHC host descriptor. More... | |
Macros | |
#define | USDHC_MAX_BLOCK_COUNT (USDHC_BLK_ATT_BLKCNT_MASK >> USDHC_BLK_ATT_BLKCNT_SHIFT) |
Maximum block count can be set one time. | |
#define | USDHC_ADMA1_ADDRESS_ALIGN (4096U) |
The alignment size for ADDRESS filed in ADMA1's descriptor. | |
#define | USDHC_ADMA1_LENGTH_ALIGN (4096U) |
The alignment size for LENGTH field in ADMA1's descriptor. | |
#define | USDHC_ADMA2_ADDRESS_ALIGN (4U) |
The alignment size for ADDRESS field in ADMA2's descriptor. | |
#define | USDHC_ADMA2_LENGTH_ALIGN (4U) |
The alignment size for LENGTH filed in ADMA2's descriptor. | |
#define | USDHC_ADMA1_DESCRIPTOR_ADDRESS_SHIFT (12U) |
The bit shift for ADDRESS filed in ADMA1's descriptor. | |
#define | USDHC_ADMA1_DESCRIPTOR_ADDRESS_MASK (0xFFFFFU) |
The bit mask for ADDRESS field in ADMA1's descriptor. | |
#define | USDHC_ADMA1_DESCRIPTOR_LENGTH_SHIFT (12U) |
The bit shift for LENGTH filed in ADMA1's descriptor. | |
#define | USDHC_ADMA1_DESCRIPTOR_LENGTH_MASK (0xFFFFU) |
The mask for LENGTH field in ADMA1's descriptor. | |
#define | USDHC_ADMA1_DESCRIPTOR_MAX_LENGTH_PER_ENTRY (USDHC_ADMA1_DESCRIPTOR_LENGTH_MASK + 1U - 4096U) |
The maximum value of LENGTH filed in ADMA1's descriptor Since the ADMA1 support max transfer size is 65535 which is not divisible by 4096, so to make sure a large data load transfer(>64KB) continuously(require the data address should be alwawys align with 4096), software will set the maximum data length for ADMA1 to (64 - 4)KB. | |
#define | USDHC_ADMA2_DESCRIPTOR_LENGTH_SHIFT (16U) |
The bit shift for LENGTH field in ADMA2's descriptor. | |
#define | USDHC_ADMA2_DESCRIPTOR_LENGTH_MASK (0xFFFFU) |
The bit mask for LENGTH field in ADMA2's descriptor. | |
#define | USDHC_ADMA2_DESCRIPTOR_MAX_LENGTH_PER_ENTRY (USDHC_ADMA2_DESCRIPTOR_LENGTH_MASK - 3U) |
The maximum value of LENGTH field in ADMA2's descriptor. | |
Typedefs | |
typedef uint32_t | usdhc_adma1_descriptor_t |
Defines the adma1 descriptor structure. More... | |
typedef status_t(* | usdhc_transfer_function_t )(USDHC_Type *base, usdhc_transfer_t *content) |
USDHC transfer function. More... | |
Enumerations | |
enum | { kStatus_USDHC_BusyTransferring = MAKE_STATUS(kStatusGroup_USDHC, 0U), kStatus_USDHC_PrepareAdmaDescriptorFailed = MAKE_STATUS(kStatusGroup_USDHC, 1U), kStatus_USDHC_SendCommandFailed = MAKE_STATUS(kStatusGroup_USDHC, 2U), kStatus_USDHC_TransferDataFailed = MAKE_STATUS(kStatusGroup_USDHC, 3U), kStatus_USDHC_DMADataAddrNotAlign = MAKE_STATUS(kStatusGroup_USDHC, 4U), kStatus_USDHC_ReTuningRequest = MAKE_STATUS(kStatusGroup_USDHC, 5U), kStatus_USDHC_TuningError = MAKE_STATUS(kStatusGroup_USDHC, 6U), kStatus_USDHC_NotSupport = MAKE_STATUS(kStatusGroup_USDHC, 7U), kStatus_USDHC_TransferDataComplete = MAKE_STATUS(kStatusGroup_USDHC, 8U) } |
_usdhc_status USDHC status More... | |
enum | { kUSDHC_SupportAdmaFlag = USDHC_HOST_CTRL_CAP_ADMAS_MASK, kUSDHC_SupportHighSpeedFlag = USDHC_HOST_CTRL_CAP_HSS_MASK, kUSDHC_SupportDmaFlag = USDHC_HOST_CTRL_CAP_DMAS_MASK, kUSDHC_SupportSuspendResumeFlag = USDHC_HOST_CTRL_CAP_SRS_MASK, kUSDHC_SupportV330Flag = USDHC_HOST_CTRL_CAP_VS33_MASK, kUSDHC_SupportV300Flag = USDHC_HOST_CTRL_CAP_VS30_MASK, kUSDHC_SupportV180Flag = USDHC_HOST_CTRL_CAP_VS18_MASK, kUSDHC_Support4BitFlag = (USDHC_HOST_CTRL_CAP_MBL_SHIFT << 0U), kUSDHC_Support8BitFlag = (USDHC_HOST_CTRL_CAP_MBL_SHIFT << 1U), kUSDHC_SupportDDR50Flag = USDHC_HOST_CTRL_CAP_DDR50_SUPPORT_MASK, kUSDHC_SupportSDR104Flag = USDHC_HOST_CTRL_CAP_SDR104_SUPPORT_MASK, kUSDHC_SupportSDR50Flag = USDHC_HOST_CTRL_CAP_SDR50_SUPPORT_MASK } |
_usdhc_capability_flag Host controller capabilities flag mask More... | |
enum | { kUSDHC_WakeupEventOnCardInt = USDHC_PROT_CTRL_WECINT_MASK, kUSDHC_WakeupEventOnCardInsert = USDHC_PROT_CTRL_WECINS_MASK, kUSDHC_WakeupEventOnCardRemove = USDHC_PROT_CTRL_WECRM_MASK, kUSDHC_WakeupEventsAll } |
_usdhc_wakeup_event Wakeup event mask More... | |
enum | { kUSDHC_ResetAll = USDHC_SYS_CTRL_RSTA_MASK, kUSDHC_ResetCommand = USDHC_SYS_CTRL_RSTC_MASK, kUSDHC_ResetData = USDHC_SYS_CTRL_RSTD_MASK, kUSDHC_ResetTuning = USDHC_SYS_CTRL_RSTT_MASK, kUSDHC_ResetsAll } |
_usdhc_reset Reset type mask More... | |
enum | { kUSDHC_EnableDmaFlag = USDHC_MIX_CTRL_DMAEN_MASK, kUSDHC_CommandTypeSuspendFlag = USDHC_CMD_XFR_TYP_CMDTYP(1U), kUSDHC_CommandTypeResumeFlag = USDHC_CMD_XFR_TYP_CMDTYP(2U), kUSDHC_CommandTypeAbortFlag = USDHC_CMD_XFR_TYP_CMDTYP(3U), kUSDHC_EnableBlockCountFlag = USDHC_MIX_CTRL_BCEN_MASK, kUSDHC_EnableAutoCommand12Flag = USDHC_MIX_CTRL_AC12EN_MASK, kUSDHC_DataReadFlag = USDHC_MIX_CTRL_DTDSEL_MASK, kUSDHC_MultipleBlockFlag = USDHC_MIX_CTRL_MSBSEL_MASK, kUSDHC_EnableAutoCommand23Flag = USDHC_MIX_CTRL_AC23EN_MASK, kUSDHC_ResponseLength136Flag = USDHC_CMD_XFR_TYP_RSPTYP(1U), kUSDHC_ResponseLength48Flag = USDHC_CMD_XFR_TYP_RSPTYP(2U), kUSDHC_ResponseLength48BusyFlag = USDHC_CMD_XFR_TYP_RSPTYP(3U), kUSDHC_EnableCrcCheckFlag = USDHC_CMD_XFR_TYP_CCCEN_MASK, kUSDHC_EnableIndexCheckFlag = USDHC_CMD_XFR_TYP_CICEN_MASK, kUSDHC_DataPresentFlag = USDHC_CMD_XFR_TYP_DPSEL_MASK } |
_usdhc_transfer_flag Transfer flag mask More... | |
enum | { kUSDHC_CommandInhibitFlag = USDHC_PRES_STATE_CIHB_MASK, kUSDHC_DataInhibitFlag = USDHC_PRES_STATE_CDIHB_MASK, kUSDHC_DataLineActiveFlag = USDHC_PRES_STATE_DLA_MASK, kUSDHC_SdClockStableFlag = USDHC_PRES_STATE_SDSTB_MASK, kUSDHC_WriteTransferActiveFlag = USDHC_PRES_STATE_WTA_MASK, kUSDHC_ReadTransferActiveFlag = USDHC_PRES_STATE_RTA_MASK, kUSDHC_BufferWriteEnableFlag = USDHC_PRES_STATE_BWEN_MASK, kUSDHC_BufferReadEnableFlag = USDHC_PRES_STATE_BREN_MASK, kUSDHC_ReTuningRequestFlag = USDHC_PRES_STATE_RTR_MASK, kUSDHC_DelaySettingFinishedFlag = USDHC_PRES_STATE_TSCD_MASK, kUSDHC_CardInsertedFlag = USDHC_PRES_STATE_CINST_MASK, kUSDHC_CommandLineLevelFlag = USDHC_PRES_STATE_CLSL_MASK, kUSDHC_Data0LineLevelFlag = 1U << USDHC_PRES_STATE_DLSL_SHIFT, kUSDHC_Data1LineLevelFlag = 1U << (USDHC_PRES_STATE_DLSL_SHIFT + 1U), kUSDHC_Data2LineLevelFlag = 1U << (USDHC_PRES_STATE_DLSL_SHIFT + 2U), kUSDHC_Data3LineLevelFlag = 1U << (USDHC_PRES_STATE_DLSL_SHIFT + 3U), kUSDHC_Data4LineLevelFlag = 1U << (USDHC_PRES_STATE_DLSL_SHIFT + 4U), kUSDHC_Data5LineLevelFlag = 1U << (USDHC_PRES_STATE_DLSL_SHIFT + 5U), kUSDHC_Data6LineLevelFlag = 1U << (USDHC_PRES_STATE_DLSL_SHIFT + 6U), kUSDHC_Data7LineLevelFlag = (int)(1U << (USDHC_PRES_STATE_DLSL_SHIFT + 7U)) } |
_usdhc_present_status_flag Present status flag mask More... | |
enum | { kUSDHC_CommandCompleteFlag = USDHC_INT_STATUS_CC_MASK, kUSDHC_DataCompleteFlag = USDHC_INT_STATUS_TC_MASK, kUSDHC_BlockGapEventFlag = USDHC_INT_STATUS_BGE_MASK, kUSDHC_DmaCompleteFlag = USDHC_INT_STATUS_DINT_MASK, kUSDHC_BufferWriteReadyFlag = USDHC_INT_STATUS_BWR_MASK, kUSDHC_BufferReadReadyFlag = USDHC_INT_STATUS_BRR_MASK, kUSDHC_CardInsertionFlag = USDHC_INT_STATUS_CINS_MASK, kUSDHC_CardRemovalFlag = USDHC_INT_STATUS_CRM_MASK, kUSDHC_CardInterruptFlag = USDHC_INT_STATUS_CINT_MASK, kUSDHC_ReTuningEventFlag = USDHC_INT_STATUS_RTE_MASK, kUSDHC_TuningPassFlag = USDHC_INT_STATUS_TP_MASK, kUSDHC_TuningErrorFlag = USDHC_INT_STATUS_TNE_MASK, kUSDHC_CommandTimeoutFlag = USDHC_INT_STATUS_CTOE_MASK, kUSDHC_CommandCrcErrorFlag = USDHC_INT_STATUS_CCE_MASK, kUSDHC_CommandEndBitErrorFlag = USDHC_INT_STATUS_CEBE_MASK, kUSDHC_CommandIndexErrorFlag = USDHC_INT_STATUS_CIE_MASK, kUSDHC_DataTimeoutFlag = USDHC_INT_STATUS_DTOE_MASK, kUSDHC_DataCrcErrorFlag = USDHC_INT_STATUS_DCE_MASK, kUSDHC_DataEndBitErrorFlag = USDHC_INT_STATUS_DEBE_MASK, kUSDHC_AutoCommand12ErrorFlag = USDHC_INT_STATUS_AC12E_MASK, kUSDHC_DmaErrorFlag = USDHC_INT_STATUS_DMAE_MASK, kUSDHC_CommandErrorFlag, kUSDHC_DataErrorFlag, kUSDHC_ErrorFlag = (kUSDHC_CommandErrorFlag | kUSDHC_DataErrorFlag | kUSDHC_DmaErrorFlag), kUSDHC_DataFlag, kUSDHC_DataDMAFlag = (kUSDHC_DataCompleteFlag | kUSDHC_DataErrorFlag | kUSDHC_DmaErrorFlag), kUSDHC_CommandFlag = (kUSDHC_CommandErrorFlag | kUSDHC_CommandCompleteFlag), kUSDHC_CardDetectFlag = (kUSDHC_CardInsertionFlag | kUSDHC_CardRemovalFlag) , kUSDHC_AllInterruptFlags } |
_usdhc_interrupt_status_flag Interrupt status flag mask More... | |
enum | { kUSDHC_AutoCommand12NotExecutedFlag = USDHC_AUTOCMD12_ERR_STATUS_AC12NE_MASK, kUSDHC_AutoCommand12TimeoutFlag = USDHC_AUTOCMD12_ERR_STATUS_AC12TOE_MASK, kUSDHC_AutoCommand12EndBitErrorFlag = USDHC_AUTOCMD12_ERR_STATUS_AC12EBE_MASK, kUSDHC_AutoCommand12CrcErrorFlag = USDHC_AUTOCMD12_ERR_STATUS_AC12CE_MASK, kUSDHC_AutoCommand12IndexErrorFlag = USDHC_AUTOCMD12_ERR_STATUS_AC12IE_MASK, kUSDHC_AutoCommand12NotIssuedFlag = USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E_MASK } |
_usdhc_auto_command12_error_status_flag Auto CMD12 error status flag mask More... | |
enum | { kUSDHC_ExecuteTuning = USDHC_AUTOCMD12_ERR_STATUS_EXECUTE_TUNING_MASK, kUSDHC_TuningSampleClockSel = USDHC_AUTOCMD12_ERR_STATUS_SMP_CLK_SEL_MASK } |
_usdhc_standard_tuning standard tuning flag More... | |
enum | { kUSDHC_AdmaLenghMismatchFlag = USDHC_ADMA_ERR_STATUS_ADMALME_MASK, kUSDHC_AdmaDescriptorErrorFlag = USDHC_ADMA_ERR_STATUS_ADMADCE_MASK } |
_usdhc_adma_error_status_flag ADMA error status flag mask More... | |
enum | { kUSDHC_AdmaErrorStateStopDma, kUSDHC_AdmaErrorStateFetchDescriptor, kUSDHC_AdmaErrorStateChangeAddress = 0x02U, kUSDHC_AdmaErrorStateTransferData, kUSDHC_AdmaErrorStateInvalidLength = 0x04U, kUSDHC_AdmaErrorStateInvalidDescriptor = 0x08U, kUSDHC_AdmaErrorState } |
_usdhc_adma_error_state ADMA error state More... | |
enum | { kUSDHC_ForceEventAutoCommand12NotExecuted = USDHC_FORCE_EVENT_FEVTAC12NE_MASK, kUSDHC_ForceEventAutoCommand12Timeout = USDHC_FORCE_EVENT_FEVTAC12TOE_MASK, kUSDHC_ForceEventAutoCommand12CrcError = USDHC_FORCE_EVENT_FEVTAC12CE_MASK, kUSDHC_ForceEventEndBitError = USDHC_FORCE_EVENT_FEVTAC12EBE_MASK, kUSDHC_ForceEventAutoCommand12IndexError = USDHC_FORCE_EVENT_FEVTAC12IE_MASK, kUSDHC_ForceEventAutoCommand12NotIssued = USDHC_FORCE_EVENT_FEVTCNIBAC12E_MASK, kUSDHC_ForceEventCommandTimeout = USDHC_FORCE_EVENT_FEVTCTOE_MASK, kUSDHC_ForceEventCommandCrcError = USDHC_FORCE_EVENT_FEVTCCE_MASK, kUSDHC_ForceEventCommandEndBitError = USDHC_FORCE_EVENT_FEVTCEBE_MASK, kUSDHC_ForceEventCommandIndexError = USDHC_FORCE_EVENT_FEVTCIE_MASK, kUSDHC_ForceEventDataTimeout = USDHC_FORCE_EVENT_FEVTDTOE_MASK, kUSDHC_ForceEventDataCrcError = USDHC_FORCE_EVENT_FEVTDCE_MASK, kUSDHC_ForceEventDataEndBitError = USDHC_FORCE_EVENT_FEVTDEBE_MASK, kUSDHC_ForceEventAutoCommand12Error = USDHC_FORCE_EVENT_FEVTAC12E_MASK, kUSDHC_ForceEventCardInt = (int)USDHC_FORCE_EVENT_FEVTCINT_MASK, kUSDHC_ForceEventDmaError = USDHC_FORCE_EVENT_FEVTDMAE_MASK, kUSDHC_ForceEventTuningError = USDHC_FORCE_EVENT_FEVTTNE_MASK, kUSDHC_ForceEventsAll } |
_usdhc_force_event Force event bit position More... | |
enum | usdhc_transfer_direction_t { kUSDHC_TransferDirectionReceive = 1U, kUSDHC_TransferDirectionSend = 0U } |
data transfer direction More... | |
enum | usdhc_data_bus_width_t { kUSDHC_DataBusWidth1Bit = 0U, kUSDHC_DataBusWidth4Bit = 1U, kUSDHC_DataBusWidth8Bit = 2U } |
Data transfer width. More... | |
enum | usdhc_endian_mode_t { kUSDHC_EndianModeBig = 0U, kUSDHC_EndianModeHalfWordBig = 1U, kUSDHC_EndianModeLittle = 2U } |
Endian mode. More... | |
enum | usdhc_dma_mode_t { kUSDHC_DmaModeSimple = 0U, kUSDHC_DmaModeAdma1 = 1U, kUSDHC_DmaModeAdma2 = 2U, kUSDHC_ExternalDMA = 3U } |
DMA mode. More... | |
enum | { kUSDHC_StopAtBlockGapFlag = USDHC_PROT_CTRL_SABGREQ_MASK, kUSDHC_ReadWaitControlFlag = USDHC_PROT_CTRL_RWCTL_MASK, kUSDHC_InterruptAtBlockGapFlag = USDHC_PROT_CTRL_IABG_MASK, kUSDHC_ReadDoneNo8CLK = USDHC_PROT_CTRL_RD_DONE_NO_8CLK_MASK, kUSDHC_ExactBlockNumberReadFlag = USDHC_PROT_CTRL_NON_EXACT_BLK_RD_MASK } |
_usdhc_sdio_control_flag SDIO control flag mask More... | |
enum | usdhc_boot_mode_t { kUSDHC_BootModeNormal = 0U, kUSDHC_BootModeAlternative = 1U } |
MMC card boot mode. More... | |
enum | usdhc_card_command_type_t { kCARD_CommandTypeNormal = 0U, kCARD_CommandTypeSuspend = 1U, kCARD_CommandTypeResume = 2U, kCARD_CommandTypeAbort = 3U, kCARD_CommandTypeEmpty = 4U } |
The command type. More... | |
enum | usdhc_card_response_type_t { kCARD_ResponseTypeNone = 0U, kCARD_ResponseTypeR1 = 1U, kCARD_ResponseTypeR1b = 2U, kCARD_ResponseTypeR2 = 3U, kCARD_ResponseTypeR3 = 4U, kCARD_ResponseTypeR4 = 5U, kCARD_ResponseTypeR5 = 6U, kCARD_ResponseTypeR5b = 7U, kCARD_ResponseTypeR6 = 8U, kCARD_ResponseTypeR7 = 9U } |
The command response type. More... | |
enum | { kUSDHC_Adma1DescriptorValidFlag = (1U << 0U), kUSDHC_Adma1DescriptorEndFlag = (1U << 1U), kUSDHC_Adma1DescriptorInterrupFlag = (1U << 2U), kUSDHC_Adma1DescriptorActivity1Flag = (1U << 4U), kUSDHC_Adma1DescriptorActivity2Flag = (1U << 5U), kUSDHC_Adma1DescriptorTypeNop = (kUSDHC_Adma1DescriptorValidFlag), kUSDHC_Adma1DescriptorTypeTransfer, kUSDHC_Adma1DescriptorTypeLink, kUSDHC_Adma1DescriptorTypeSetLength } |
_usdhc_adma1_descriptor_flag The mask for the control/status field in ADMA1 descriptor More... | |
enum | { kUSDHC_Adma2DescriptorValidFlag = (1U << 0U), kUSDHC_Adma2DescriptorEndFlag = (1U << 1U), kUSDHC_Adma2DescriptorInterruptFlag = (1U << 2U), kUSDHC_Adma2DescriptorActivity1Flag = (1U << 4U), kUSDHC_Adma2DescriptorActivity2Flag = (1U << 5U), kUSDHC_Adma2DescriptorTypeNop = (kUSDHC_Adma2DescriptorValidFlag), kUSDHC_Adma2DescriptorTypeReserved, kUSDHC_Adma2DescriptorTypeTransfer, kUSDHC_Adma2DescriptorTypeLink } |
_usdhc_adma2_descriptor_flag ADMA1 descriptor control and status mask More... | |
enum | { kUSDHC_AdmaDescriptorSingleFlag, kUSDHC_AdmaDescriptorMultipleFlag = 1U } |
_usdhc_adma_flag ADMA descriptor configuration flag More... | |
enum | usdhc_burst_len_t { kUSDHC_EnBurstLenForINCR = 0x01U, kUSDHC_EnBurstLenForINCR4816 = 0x02U, kUSDHC_EnBurstLenForINCR4816WRAP = 0x04U } |
dma transfer burst len config. More... | |
enum | { kUSDHC_TransferDataNormal = 0U, kUSDHC_TransferDataTuning = 1U, kUSDHC_TransferDataBoot = 2U, kUSDHC_TransferDataBootcontinous = 3U } |
_usdhc_transfer_data_type transfer data type definition. More... | |
Driver version | |
#define | FSL_USDHC_DRIVER_VERSION (MAKE_VERSION(2U, 5U, 0U)) |
Driver version 2.5.0. More... | |
Initialization and deinitialization | |
void | USDHC_Init (USDHC_Type *base, const usdhc_config_t *config) |
USDHC module initialization function. More... | |
void | USDHC_Deinit (USDHC_Type *base) |
Deinitializes the USDHC. More... | |
bool | USDHC_Reset (USDHC_Type *base, uint32_t mask, uint32_t timeout) |
Resets the USDHC. More... | |
DMA Control | |
status_t | USDHC_SetAdmaTableConfig (USDHC_Type *base, usdhc_adma_config_t *dmaConfig, usdhc_data_t *dataConfig, uint32_t flags) |
Sets the DMA descriptor table configuration. More... | |
status_t | USDHC_SetInternalDmaConfig (USDHC_Type *base, usdhc_adma_config_t *dmaConfig, const uint32_t *dataAddr, bool enAutoCmd23) |
Internal DMA configuration. More... | |
status_t | USDHC_SetADMA2Descriptor (uint32_t *admaTable, uint32_t admaTableWords, const uint32_t *dataBufferAddr, uint32_t dataBytes, uint32_t flags) |
Sets the ADMA2 descriptor table configuration. More... | |
status_t | USDHC_SetADMA1Descriptor (uint32_t *admaTable, uint32_t admaTableWords, const uint32_t *dataBufferAddr, uint32_t dataBytes, uint32_t flags) |
Sets the ADMA1 descriptor table configuration. More... | |
static void | USDHC_EnableInternalDMA (USDHC_Type *base, bool enable) |
enable internal DMA. More... | |
Interrupts | |
static void | USDHC_EnableInterruptStatus (USDHC_Type *base, uint32_t mask) |
Enables the interrupt status. More... | |
static void | USDHC_DisableInterruptStatus (USDHC_Type *base, uint32_t mask) |
Disables the interrupt status. More... | |
static void | USDHC_EnableInterruptSignal (USDHC_Type *base, uint32_t mask) |
Enables the interrupt signal corresponding to the interrupt status flag. More... | |
static void | USDHC_DisableInterruptSignal (USDHC_Type *base, uint32_t mask) |
Disables the interrupt signal corresponding to the interrupt status flag. More... | |
Status | |
static uint32_t | USDHC_GetEnabledInterruptStatusFlags (USDHC_Type *base) |
Gets the enabled interrupt status. More... | |
static uint32_t | USDHC_GetInterruptStatusFlags (USDHC_Type *base) |
Gets the current interrupt status. More... | |
static void | USDHC_ClearInterruptStatusFlags (USDHC_Type *base, uint32_t mask) |
Clears a specified interrupt status. More... | |
static uint32_t | USDHC_GetAutoCommand12ErrorStatusFlags (USDHC_Type *base) |
Gets the status of auto command 12 error. More... | |
static uint32_t | USDHC_GetAdmaErrorStatusFlags (USDHC_Type *base) |
Gets the status of the ADMA error. More... | |
static uint32_t | USDHC_GetPresentStatusFlags (USDHC_Type *base) |
Gets a present status. More... | |
Bus Operations | |
void | USDHC_GetCapability (USDHC_Type *base, usdhc_capability_t *capability) |
Gets the capability information. More... | |
static void | USDHC_ForceClockOn (USDHC_Type *base, bool enable) |
force the card clock on. More... | |
uint32_t | USDHC_SetSdClock (USDHC_Type *base, uint32_t srcClock_Hz, uint32_t busClock_Hz) |
Sets the SD bus clock frequency. More... | |
bool | USDHC_SetCardActive (USDHC_Type *base, uint32_t timeout) |
Sends 80 clocks to the card to set it to the active state. More... | |
static void | USDHC_AssertHardwareReset (USDHC_Type *base, bool high) |
trigger a hardware reset. More... | |
static void | USDHC_SetDataBusWidth (USDHC_Type *base, usdhc_data_bus_width_t width) |
Sets the data transfer width. More... | |
static void | USDHC_WriteData (USDHC_Type *base, uint32_t data) |
Fills the data port. More... | |
static uint32_t | USDHC_ReadData (USDHC_Type *base) |
Retrieves the data from the data port. More... | |
void | USDHC_SendCommand (USDHC_Type *base, usdhc_command_t *command) |
send command function More... | |
static void | USDHC_EnableWakeupEvent (USDHC_Type *base, uint32_t mask, bool enable) |
Enables or disables a wakeup event in low-power mode. More... | |
static void | USDHC_CardDetectByData3 (USDHC_Type *base, bool enable) |
detect card insert status. More... | |
static bool | USDHC_DetectCardInsert (USDHC_Type *base) |
detect card insert status. More... | |
static void | USDHC_EnableSdioControl (USDHC_Type *base, uint32_t mask, bool enable) |
Enables or disables the SDIO card control. More... | |
static void | USDHC_SetContinueRequest (USDHC_Type *base) |
Restarts a transaction which has stopped at the block GAP for the SDIO card. More... | |
static void | USDHC_RequestStopAtBlockGap (USDHC_Type *base, bool enable) |
Request stop at block gap function. More... | |
void | USDHC_SetMmcBootConfig (USDHC_Type *base, const usdhc_boot_config_t *config) |
Configures the MMC boot feature. More... | |
static void | USDHC_EnableMmcBoot (USDHC_Type *base, bool enable) |
Enables or disables the mmc boot mode. More... | |
static void | USDHC_SetForceEvent (USDHC_Type *base, uint32_t mask) |
Forces generating events according to the given mask. More... | |
static void | UDSHC_SelectVoltage (USDHC_Type *base, bool en18v) |
select the usdhc output voltage More... | |
static bool | USDHC_RequestTuningForSDR50 (USDHC_Type *base) |
check the SDR50 mode request tuning bit When this bit set, user should call USDHC_StandardTuning function More... | |
static bool | USDHC_RequestReTuning (USDHC_Type *base) |
check the request re-tuning bit When this bit is set, user should do manual tuning or standard tuning function More... | |
static void | USDHC_EnableAutoTuning (USDHC_Type *base, bool enable) |
the SDR104 mode auto tuning enable and disable This function should call after tuning function execute pass, auto tuning will handle by hardware More... | |
static void | USDHC_SetRetuningTimer (USDHC_Type *base, uint32_t counter) |
the config the re-tuning timer for mode 1 and mode 3 This timer is used for standard tuning auto re-tuning, More... | |
void | USDHC_EnableAutoTuningForCmdAndData (USDHC_Type *base) |
the auto tuning enbale for CMD/DATA line More... | |
void | USDHC_EnableManualTuning (USDHC_Type *base, bool enable) |
manual tuning trigger or abort User should handle the tuning cmd and find the boundary of the delay then calucate a average value which will be config to the CLK_TUNE_CTRL_STATUS This function should called before USDHC_AdjustDelayforSDR104 function More... | |
status_t | USDHC_AdjustDelayForManualTuning (USDHC_Type *base, uint32_t delay) |
the SDR104 mode delay setting adjust This function should called after USDHC_ManualTuningForSDR104 More... | |
void | USDHC_EnableStandardTuning (USDHC_Type *base, uint32_t tuningStartTap, uint32_t step, bool enable) |
the enable standard tuning function The standard tuning window and tuning counter use the default config tuning cmd is send by the software, user need to check the tuning result can be used for SDR50,SDR104,HS200 mode tuning More... | |
static uint32_t | USDHC_GetExecuteStdTuningStatus (USDHC_Type *base) |
Get execute std tuning status. More... | |
static uint32_t | USDHC_CheckStdTuningResult (USDHC_Type *base) |
check std tuning result More... | |
static uint32_t | USDHC_CheckTuningError (USDHC_Type *base) |
check tuning error More... | |
void | USDHC_EnableDDRMode (USDHC_Type *base, bool enable, uint32_t nibblePos) |
the enable/disable DDR mode More... | |
static void | USDHC_EnableHS400Mode (USDHC_Type *base, bool enable) |
the enable/disable HS400 mode More... | |
static void | USDHC_ResetStrobeDLL (USDHC_Type *base) |
reset the strobe DLL More... | |
static void | USDHC_EnableStrobeDLL (USDHC_Type *base, bool enable) |
enable/disable the strobe DLL More... | |
void | USDHC_ConfigStrobeDLL (USDHC_Type *base, uint32_t delayTarget, uint32_t updateInterval) |
config the strobe DLL delay target and update interval More... | |
static void | USDHC_SetStrobeDllOverride (USDHC_Type *base, uint32_t delayTaps) |
enable manual override for slave delay chain using STROBE_SLV_OVERRIDE_VAL More... | |
static uint32_t | USDHC_GetStrobeDLLStatus (USDHC_Type *base) |
get the strobe DLL status More... | |
void | USDHC_SetDataConfig (USDHC_Type *base, usdhc_transfer_direction_t dataDirection, uint32_t blockCount, uint32_t blockSize) |
USDHC data configuration. More... | |
Transactional | |
status_t | USDHC_TransferBlocking (USDHC_Type *base, usdhc_adma_config_t *dmaConfig, usdhc_transfer_t *transfer) |
Transfers the command/data using a blocking method. More... | |
void | USDHC_TransferCreateHandle (USDHC_Type *base, usdhc_handle_t *handle, const usdhc_transfer_callback_t *callback, void *userData) |
Creates the USDHC handle. More... | |
status_t | USDHC_TransferNonBlocking (USDHC_Type *base, usdhc_handle_t *handle, usdhc_adma_config_t *dmaConfig, usdhc_transfer_t *transfer) |
Transfers the command/data using an interrupt and an asynchronous method. More... | |
void | USDHC_TransferHandleIRQ (USDHC_Type *base, usdhc_handle_t *handle) |
IRQ handler for the USDHC. More... | |
The MCUXpresso SDK provides a peripheral driver for the ultra Secured Digital Host Controller (USDHC) module of MCUXpresso SDK/i.MX devices.
Refer to the driver examples codes located at <SDK_ROOT>/boards/<BOARD>/driver_examples/usdhc
struct usdhc_adma2_descriptor_t |
struct usdhc_capability_t |
Defines a structure to save the capability information of USDHC.
Data Fields | |
uint32_t | sdVersion |
support SD card/sdio version | |
uint32_t | mmcVersion |
support emmc card version | |
uint32_t | maxBlockLength |
Maximum block length united as byte. | |
uint32_t | maxBlockCount |
Maximum block count can be set one time. | |
uint32_t | flags |
Capability flags to indicate the support information(_usdhc_capability_flag) | |
struct usdhc_boot_config_t |
Data Fields | |
uint32_t | ackTimeoutCount |
Timeout value for the boot ACK. More... | |
usdhc_boot_mode_t | bootMode |
Boot mode selection. More... | |
uint32_t | blockCount |
Stop at block gap value of automatic mode. More... | |
size_t | blockSize |
Block size. | |
bool | enableBootAck |
Enable or disable boot ACK. | |
bool | enableAutoStopAtBlockGap |
Enable or disable auto stop at block gap function in boot period. | |
uint32_t usdhc_boot_config_t::ackTimeoutCount |
The available range is 0 ~ 15.
usdhc_boot_mode_t usdhc_boot_config_t::bootMode |
uint32_t usdhc_boot_config_t::blockCount |
Available range is 0 ~ 65535.
struct usdhc_config_t |
Data Fields | |
uint32_t | dataTimeout |
Data timeout value. | |
usdhc_endian_mode_t | endianMode |
Endian mode. | |
uint8_t | readWatermarkLevel |
Watermark level for DMA read operation. More... | |
uint8_t | writeWatermarkLevel |
Watermark level for DMA write operation. More... | |
uint8_t | readBurstLen |
Read burst len. | |
uint8_t | writeBurstLen |
Write burst len. | |
uint8_t usdhc_config_t::readWatermarkLevel |
Available range is 1 ~ 128.
uint8_t usdhc_config_t::writeWatermarkLevel |
Available range is 1 ~ 128.
struct usdhc_data_t |
Defines a structure to contain data-related attribute. 'enableIgnoreError' is used for the case that upper card driver want to ignore the error event to read/write all the data not to stop read/write immediately when error event happen for example bus testing procedure for MMC card.
Data Fields | |
bool | enableAutoCommand12 |
Enable auto CMD12. | |
bool | enableAutoCommand23 |
Enable auto CMD23. | |
bool | enableIgnoreError |
Enable to ignore error event to read/write all the data. | |
uint8_t | dataType |
this is used to distinguish the normal/tuning/boot data | |
size_t | blockSize |
Block size. | |
uint32_t | blockCount |
Block count. | |
uint32_t * | rxData |
Buffer to save data read. | |
const uint32_t * | txData |
Data buffer to write. | |
struct usdhc_command_t |
Define card command-related attribute.
Data Fields | |
uint32_t | index |
Command index. | |
uint32_t | argument |
Command argument. | |
usdhc_card_command_type_t | type |
Command type. | |
usdhc_card_response_type_t | responseType |
Command response type. | |
uint32_t | response [4U] |
Response for this command. | |
uint32_t | responseErrorFlags |
response error flag, the flag which need to check the command reponse | |
uint32_t | flags |
Cmd flags. | |
struct usdhc_adma_config_t |
Data Fields | |
usdhc_dma_mode_t | dmaMode |
DMA mode. | |
usdhc_burst_len_t | burstLen |
burst len config | |
uint32_t * | admaTable |
ADMA table address, can't be null if transfer way is ADMA1/ADMA2. | |
uint32_t | admaTableWords |
ADMA table length united as words, can't be 0 if transfer way is ADMA1/ADMA2. | |
struct usdhc_transfer_t |
Data Fields | |
usdhc_data_t * | data |
Data to transfer. | |
usdhc_command_t * | command |
Command to send. | |
struct usdhc_transfer_callback_t |
Data Fields | |
void(* | CardInserted )(USDHC_Type *base, void *userData) |
Card inserted occurs when DAT3/CD pin is for card detect. | |
void(* | CardRemoved )(USDHC_Type *base, void *userData) |
Card removed occurs. | |
void(* | SdioInterrupt )(USDHC_Type *base, void *userData) |
SDIO card interrupt occurs. | |
void(* | BlockGap )(USDHC_Type *base, void *userData) |
stopped at block gap event | |
void(* | TransferComplete )(USDHC_Type *base, usdhc_handle_t *handle, status_t status, void *userData) |
Transfer complete callback. | |
void(* | ReTuning )(USDHC_Type *base, void *userData) |
handle the re-tuning | |
struct _usdhc_handle |
USDHC handle typedef.
Defines the structure to save the USDHC state information and callback function. The detailed interrupt status when sending a command or transfering data can be obtained from the interruptFlags field by using the mask defined in usdhc_interrupt_flag_t.
Data Fields | |
usdhc_data_t *volatile | data |
Data to transfer. | |
usdhc_command_t *volatile | command |
Command to send. | |
volatile uint32_t | transferredWords |
Words transferred by DATAPORT way. | |
usdhc_transfer_callback_t | callback |
Callback function. | |
void * | userData |
Parameter for transfer complete callback. | |
struct usdhc_host_t |
Data Fields | |
USDHC_Type * | base |
USDHC peripheral base address. | |
uint32_t | sourceClock_Hz |
USDHC source clock frequency united in Hz. | |
usdhc_config_t | config |
USDHC configuration. | |
usdhc_capability_t | capability |
USDHC capability information. | |
usdhc_transfer_function_t | transfer |
USDHC transfer function. | |
#define FSL_USDHC_DRIVER_VERSION (MAKE_VERSION(2U, 5U, 0U)) |
typedef uint32_t usdhc_adma1_descriptor_t |
typedef status_t(* usdhc_transfer_function_t)(USDHC_Type *base, usdhc_transfer_t *content) |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
This state is the detail state when ADMA error has occurred.
anonymous enum |
enum usdhc_endian_mode_t |
enum usdhc_dma_mode_t |
anonymous enum |
enum usdhc_boot_mode_t |
Define the command response type from card to host controller.
anonymous enum |
anonymous enum |
anonymous enum |
enum usdhc_burst_len_t |
anonymous enum |
void USDHC_Init | ( | USDHC_Type * | base, |
const usdhc_config_t * | config | ||
) |
Configures the USDHC according to the user configuration.
Example:
base | USDHC peripheral base address. |
config | USDHC configuration information. |
kStatus_Success | Operate successfully. |
void USDHC_Deinit | ( | USDHC_Type * | base | ) |
base | USDHC peripheral base address. |
bool USDHC_Reset | ( | USDHC_Type * | base, |
uint32_t | mask, | ||
uint32_t | timeout | ||
) |
base | USDHC peripheral base address. |
mask | The reset type mask(_usdhc_reset). |
timeout | Timeout for reset. |
true | Reset successfully. |
false | Reset failed. |
status_t USDHC_SetAdmaTableConfig | ( | USDHC_Type * | base, |
usdhc_adma_config_t * | dmaConfig, | ||
usdhc_data_t * | dataConfig, | ||
uint32_t | flags | ||
) |
A high level DMA descriptor configuration function.
base | USDHC peripheral base address. |
adma | configuration |
data | Data descriptor |
flags | ADAM descriptor flag, used to indicate to create multiple or single descriptor, please reference _usdhc_adma_flag |
kStatus_OutOfRange | ADMA descriptor table length isn't enough to describe data. |
kStatus_Success | Operate successfully. |
status_t USDHC_SetInternalDmaConfig | ( | USDHC_Type * | base, |
usdhc_adma_config_t * | dmaConfig, | ||
const uint32_t * | dataAddr, | ||
bool | enAutoCmd23 | ||
) |
This function is used to config the USDHC DMA related registers.
base | USDHC peripheral base address. |
adma | configuration |
dataAddr | transfer data address, a simple DMA parameter, if ADMA is used, leave it to NULL. |
enAutoCmd23 | flag to indicate Auto CMD23 is enable or not, a simple DMA parameter,if ADMA is used, leave it to false. |
kStatus_OutOfRange | ADMA descriptor table length isn't enough to describe data. |
kStatus_Success | Operate successfully. |
status_t USDHC_SetADMA2Descriptor | ( | uint32_t * | admaTable, |
uint32_t | admaTableWords, | ||
const uint32_t * | dataBufferAddr, | ||
uint32_t | dataBytes, | ||
uint32_t | flags | ||
) |
admaTable | Adma table address. |
admaTableWords | Adma table length. |
dataBufferAddr | Data buffer address. |
dataBytes | Data Data length. |
flags | ADAM descriptor flag, used to indicate to create multiple or single descriptor, please reference _usdhc_adma_flag. |
kStatus_OutOfRange | ADMA descriptor table length isn't enough to describe data. |
kStatus_Success | Operate successfully. |
status_t USDHC_SetADMA1Descriptor | ( | uint32_t * | admaTable, |
uint32_t | admaTableWords, | ||
const uint32_t * | dataBufferAddr, | ||
uint32_t | dataBytes, | ||
uint32_t | flags | ||
) |
admaTable | Adma table address. |
admaTableWords | Adma table length. |
dataBufferAddr | Data buffer address. |
dataBytes | Data length. |
flags | ADAM descriptor flag, used to indicate to create multiple or single descriptor, please reference _usdhc_adma_flag. |
kStatus_OutOfRange | ADMA descriptor table length isn't enough to describe data. |
kStatus_Success | Operate successfully. |
|
inlinestatic |
base | USDHC peripheral base address. |
enable | enable or disable flag |
|
inlinestatic |
base | USDHC peripheral base address. |
mask | Interrupt status flags mask(_usdhc_interrupt_status_flag). |
|
inlinestatic |
base | USDHC peripheral base address. |
mask | The interrupt status flags mask(_usdhc_interrupt_status_flag). |
|
inlinestatic |
base | USDHC peripheral base address. |
mask | The interrupt status flags mask(_usdhc_interrupt_status_flag). |
|
inlinestatic |
base | USDHC peripheral base address. |
mask | The interrupt status flags mask(_usdhc_interrupt_status_flag). |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
write 1 clears
base | USDHC peripheral base address. |
mask | The interrupt status flags mask(_usdhc_interrupt_status_flag). |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
This function gets the present USDHC's status except for an interrupt status and an error status.
base | USDHC peripheral base address. |
void USDHC_GetCapability | ( | USDHC_Type * | base, |
usdhc_capability_t * | capability | ||
) |
base | USDHC peripheral base address. |
capability | Structure to save capability information. |
|
inlinestatic |
base | USDHC peripheral base address. |
enable/disable | flag. |
uint32_t USDHC_SetSdClock | ( | USDHC_Type * | base, |
uint32_t | srcClock_Hz, | ||
uint32_t | busClock_Hz | ||
) |
base | USDHC peripheral base address. |
srcClock_Hz | USDHC source clock frequency united in Hz. |
busClock_Hz | SD bus clock frequency united in Hz. |
bool USDHC_SetCardActive | ( | USDHC_Type * | base, |
uint32_t | timeout | ||
) |
This function must be called each time the card is inserted to ensure that the card can receive the command correctly.
base | USDHC peripheral base address. |
timeout | Timeout to initialize card. |
true | Set card active successfully. |
false | Set card active failed. |
|
inlinestatic |
base | USDHC peripheral base address. |
1 | or 0 level |
|
inlinestatic |
base | USDHC peripheral base address. |
width | Data transfer width. |
|
inlinestatic |
This function is used to implement the data transfer by Data Port instead of DMA.
base | USDHC peripheral base address. |
data | The data about to be sent. |
|
inlinestatic |
This function is used to implement the data transfer by Data Port instead of DMA.
base | USDHC peripheral base address. |
void USDHC_SendCommand | ( | USDHC_Type * | base, |
usdhc_command_t * | command | ||
) |
base | USDHC peripheral base address. |
command | configuration |
|
inlinestatic |
base | USDHC peripheral base address. |
mask | Wakeup events mask(_usdhc_wakeup_event). |
enable | True to enable, false to disable. |
|
inlinestatic |
base | USDHC peripheral base address. |
enable/disable | flag |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
base | USDHC peripheral base address. |
mask | SDIO card control flags mask(_usdhc_sdio_control_flag). |
enable | True to enable, false to disable. |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
base | USDHC peripheral base address. |
enable | true to stop at block gap, false to normal transfer |
void USDHC_SetMmcBootConfig | ( | USDHC_Type * | base, |
const usdhc_boot_config_t * | config | ||
) |
Example:
base | USDHC peripheral base address. |
config | The MMC boot configuration information. |
|
inlinestatic |
base | USDHC peripheral base address. |
enable | True to enable, false to disable. |
|
inlinestatic |
base | USDHC peripheral base address. |
mask | The force events bit posistion (_usdhc_force_event). |
|
inlinestatic |
base | USDHC peripheral base address. |
true | 1.8V, false 3.0V |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
base | USDHC peripheral base address. |
enable/disable | flag |
|
inlinestatic |
base | USDHC peripheral base address. |
timer | counter value |
void USDHC_EnableAutoTuningForCmdAndData | ( | USDHC_Type * | base | ) |
base | USDHC peripheral base address. |
void USDHC_EnableManualTuning | ( | USDHC_Type * | base, |
bool | enable | ||
) |
base | USDHC peripheral base address. |
tuning | enable flag |
status_t USDHC_AdjustDelayForManualTuning | ( | USDHC_Type * | base, |
uint32_t | delay | ||
) |
base | USDHC peripheral base address. |
delay | setting configuration |
kStatus_Fail | config the delay setting fail |
kStatus_Success | config the delay setting success |
void USDHC_EnableStandardTuning | ( | USDHC_Type * | base, |
uint32_t | tuningStartTap, | ||
uint32_t | step, | ||
bool | enable | ||
) |
base | USDHC peripheral base address. |
tuning | start tap |
tuning | step |
enable/disable | flag |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
base | USDHC peripheral base address. |
void USDHC_EnableDDRMode | ( | USDHC_Type * | base, |
bool | enable, | ||
uint32_t | nibblePos | ||
) |
base | USDHC peripheral base address. |
enable/disable | flag |
nibble | position |
|
inlinestatic |
base | USDHC peripheral base address. |
enable/disable | flag |
|
inlinestatic |
base | USDHC peripheral base address. |
|
inlinestatic |
base | USDHC peripheral base address. |
enable/disable | flag |
void USDHC_ConfigStrobeDLL | ( | USDHC_Type * | base, |
uint32_t | delayTarget, | ||
uint32_t | updateInterval | ||
) |
base | USDHC peripheral base address. |
delay | target |
update | interval |
|
inlinestatic |
base | USDHC peripheral base address. |
delayTaps | valid delay taps range from 1 - 128 taps, A value of 0 selects tap 1, and a value of 0x7F selects tap 128 |
|
inlinestatic |
base | USDHC peripheral base address. |
void USDHC_SetDataConfig | ( | USDHC_Type * | base, |
usdhc_transfer_direction_t | dataDirection, | ||
uint32_t | blockCount, | ||
uint32_t | blockSize | ||
) |
base | USDHC peripheral base address. |
blockCount | data block count. |
blockSize | data block size |
dataDirection | data direction, tx or rx. |
status_t USDHC_TransferBlocking | ( | USDHC_Type * | base, |
usdhc_adma_config_t * | dmaConfig, | ||
usdhc_transfer_t * | transfer | ||
) |
This function waits until the command response/data is received or the USDHC encounters an error by polling the status flag. The application must not call this API in multiple threads at the same time. Because of that this API doesn't support the re-entry mechanism.
base | USDHC peripheral base address. |
adma | configuration |
transfer | Transfer content. |
kStatus_InvalidArgument | Argument is invalid. |
kStatus_USDHC_PrepareAdmaDescriptorFailed | Prepare ADMA descriptor failed. |
kStatus_USDHC_SendCommandFailed | Send command failed. |
kStatus_USDHC_TransferDataFailed | Transfer data failed. |
kStatus_Success | Operate successfully. |
void USDHC_TransferCreateHandle | ( | USDHC_Type * | base, |
usdhc_handle_t * | handle, | ||
const usdhc_transfer_callback_t * | callback, | ||
void * | userData | ||
) |
base | USDHC peripheral base address. |
handle | USDHC handle pointer. |
callback | Structure pointer to contain all callback functions. |
userData | Callback function parameter. |
status_t USDHC_TransferNonBlocking | ( | USDHC_Type * | base, |
usdhc_handle_t * | handle, | ||
usdhc_adma_config_t * | dmaConfig, | ||
usdhc_transfer_t * | transfer | ||
) |
This function sends a command and data and returns immediately. It doesn't wait the transfer complete or encounter an error. The application must not call this API in multiple threads at the same time. Because of that this API doesn't support the re-entry mechanism.
base | USDHC peripheral base address. |
handle | USDHC handle. |
adma | configuration. |
transfer | Transfer content. |
kStatus_InvalidArgument | Argument is invalid. |
kStatus_USDHC_BusyTransferring | Busy transferring. |
kStatus_USDHC_PrepareAdmaDescriptorFailed | Prepare ADMA descriptor failed. |
kStatus_Success | Operate successfully. |
void USDHC_TransferHandleIRQ | ( | USDHC_Type * | base, |
usdhc_handle_t * | handle | ||
) |
This function deals with the IRQs on the given host controller.
base | USDHC peripheral base address. |
handle | USDHC handle. |