RTEMS 6.1-rc1
|
Data Structures | |
struct | _usdhc_adma2_descriptor |
Defines the ADMA2 descriptor structure. More... | |
struct | _usdhc_capability |
USDHC capability information. More... | |
struct | _usdhc_boot_config |
Data structure to configure the MMC boot feature. More... | |
struct | _usdhc_config |
Data structure to initialize the USDHC. More... | |
struct | _usdhc_command |
Card command descriptor. More... | |
struct | _usdhc_adma_config |
ADMA configuration. More... | |
struct | _usdhc_scatter_gather_data_list |
Card scatter gather data list. More... | |
struct | _usdhc_scatter_gather_data |
Card scatter gather data descriptor. More... | |
struct | _usdhc_scatter_gather_transfer |
usdhc scatter gather transfer. More... | |
struct | _usdhc_data |
Card data descriptor. More... | |
struct | _usdhc_transfer |
Transfer state. More... | |
struct | _usdhc_transfer_callback |
USDHC callback functions. More... | |
struct | _usdhc_handle |
USDHC handle. More... | |
struct | _usdhc_host |
USDHC host descriptor. More... | |
Driver version | |
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) , kStatus_USDHC_SendCommandSuccess = MAKE_STATUS(kStatusGroup_USDHC, 9U) , kStatus_USDHC_TransferDMAComplete = MAKE_STATUS(kStatusGroup_USDHC, 10U) } |
Enum _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 } |
Enum _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 } |
Enum _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 = (kUSDHC_ResetAll | kUSDHC_ResetCommand | kUSDHC_ResetData | kUSDHC_ResetTuning) } |
Enum _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 } |
Enum _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)) } |
Enum _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_SDR104TuningFlag = (kUSDHC_TuningErrorFlag | kUSDHC_TuningPassFlag | kUSDHC_ReTuningEventFlag) , kUSDHC_AllInterruptFlags } |
Enum _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 } |
Enum _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 } |
Enum _usdhc_standard_tuning. Standard tuning flag. More... | |
enum | { kUSDHC_AdmaLenghMismatchFlag = USDHC_ADMA_ERR_STATUS_ADMALME_MASK , kUSDHC_AdmaDescriptorErrorFlag = USDHC_ADMA_ERR_STATUS_ADMADCE_MASK } |
Enum _usdhc_adma_error_status_flag. ADMA error status flag mask. . More... | |
enum | { kUSDHC_AdmaErrorStateStopDma = 0x00U , kUSDHC_AdmaErrorStateFetchDescriptor = 0x01U , kUSDHC_AdmaErrorStateChangeAddress = 0x02U , kUSDHC_AdmaErrorStateTransferData = 0x03U , kUSDHC_AdmaErrorStateInvalidLength = 0x04U , kUSDHC_AdmaErrorStateInvalidDescriptor = 0x08U , kUSDHC_AdmaErrorState } |
Enum _usdhc_adma_error_state. ADMA error state. More... | |
enum | { kUSDHC_ForceEventAutoCommand12NotExecuted , 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 } |
Enum _usdhc_force_event. Force event bit position. . More... | |
enum | _usdhc_transfer_direction { kUSDHC_TransferDirectionReceive = 1U , kUSDHC_TransferDirectionSend = 0U } |
Data transfer direction. More... | |
enum | _usdhc_data_bus_width { kUSDHC_DataBusWidth1Bit = 0U , kUSDHC_DataBusWidth4Bit = 1U , kUSDHC_DataBusWidth8Bit = 2U } |
Data transfer width. More... | |
enum | _usdhc_endian_mode { kUSDHC_EndianModeBig = 0U , kUSDHC_EndianModeHalfWordBig = 1U , kUSDHC_EndianModeLittle = 2U } |
Endian mode. More... | |
enum | _usdhc_dma_mode { 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 } |
Enum _usdhc_sdio_control_flag. SDIO control flag mask. . More... | |
enum | _usdhc_boot_mode { kUSDHC_BootModeNormal = 0U , kUSDHC_BootModeAlternative = 1U } |
MMC card boot mode. More... | |
enum | _usdhc_card_command_type { kCARD_CommandTypeNormal = 0U , kCARD_CommandTypeSuspend = 1U , kCARD_CommandTypeResume = 2U , kCARD_CommandTypeAbort = 3U , kCARD_CommandTypeEmpty = 4U } |
The command type. More... | |
enum | _usdhc_card_response_type { 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_Adma1DescriptorActivity2Flag | kUSDHC_Adma1DescriptorValidFlag) , kUSDHC_Adma1DescriptorTypeLink , kUSDHC_Adma1DescriptorTypeSetLength = (kUSDHC_Adma1DescriptorActivity1Flag | kUSDHC_Adma1DescriptorValidFlag) } |
Enum _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_Adma2DescriptorActivity1Flag | kUSDHC_Adma2DescriptorValidFlag) , kUSDHC_Adma2DescriptorTypeTransfer = (kUSDHC_Adma2DescriptorActivity2Flag | kUSDHC_Adma2DescriptorValidFlag) , kUSDHC_Adma2DescriptorTypeLink } |
Enum _usdhc_adma2_descriptor_flag. ADMA1 descriptor control and status mask. More... | |
enum | { kUSDHC_AdmaDescriptorSingleFlag = 0U , kUSDHC_AdmaDescriptorMultipleFlag } |
Enum _usdhc_adma_flag. ADMA descriptor configuration flag. . More... | |
enum | _usdhc_burst_len { 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 } |
Enum _usdhc_transfer_data_type. Tansfer data type definition. More... | |
typedef enum _usdhc_transfer_direction | usdhc_transfer_direction_t |
Data transfer direction. | |
typedef enum _usdhc_data_bus_width | usdhc_data_bus_width_t |
Data transfer width. | |
typedef enum _usdhc_endian_mode | usdhc_endian_mode_t |
Endian mode. | |
typedef enum _usdhc_dma_mode | usdhc_dma_mode_t |
DMA mode. | |
typedef enum _usdhc_boot_mode | usdhc_boot_mode_t |
MMC card boot mode. | |
typedef enum _usdhc_card_command_type | usdhc_card_command_type_t |
The command type. | |
typedef enum _usdhc_card_response_type | usdhc_card_response_type_t |
The command response type. More... | |
typedef enum _usdhc_burst_len | usdhc_burst_len_t |
DMA transfer burst len config. | |
typedef uint32_t | usdhc_adma1_descriptor_t |
Defines the ADMA1 descriptor structure. | |
typedef struct _usdhc_adma2_descriptor | usdhc_adma2_descriptor_t |
Defines the ADMA2 descriptor structure. | |
typedef struct _usdhc_capability | usdhc_capability_t |
USDHC capability information. More... | |
typedef struct _usdhc_boot_config | usdhc_boot_config_t |
Data structure to configure the MMC boot feature. | |
typedef struct _usdhc_config | usdhc_config_t |
Data structure to initialize the USDHC. | |
typedef struct _usdhc_command | usdhc_command_t |
Card command descriptor. More... | |
typedef struct _usdhc_adma_config | usdhc_adma_config_t |
ADMA configuration. | |
typedef struct _usdhc_scatter_gather_data_list | usdhc_scatter_gather_data_list_t |
Card scatter gather data list. More... | |
typedef struct _usdhc_scatter_gather_data | usdhc_scatter_gather_data_t |
Card scatter gather data descriptor. More... | |
typedef struct _usdhc_scatter_gather_transfer | usdhc_scatter_gather_transfer_t |
usdhc scatter gather transfer. | |
typedef struct _usdhc_data | usdhc_data_t |
Card data descriptor. More... | |
typedef struct _usdhc_transfer | usdhc_transfer_t |
Transfer state. | |
typedef struct _usdhc_handle | usdhc_handle_t |
USDHC handle typedef. | |
typedef struct _usdhc_transfer_callback | usdhc_transfer_callback_t |
USDHC callback functions. | |
typedef status_t(* | usdhc_transfer_function_t) (USDHC_Type *base, usdhc_transfer_t *content) |
USDHC transfer function. | |
typedef struct _usdhc_host | usdhc_host_t |
USDHC host descriptor. | |
#define | FSL_USDHC_DRIVER_VERSION (MAKE_VERSION(2U, 8U, 2U)) |
Driver version 2.8.2. | |
#define | USDHC_MAX_BLOCK_COUNT (USDHC_BLK_ATT_BLKCNT_MASK >> USDHC_BLK_ATT_BLKCNT_SHIFT) |
Maximum block count can be set one time. | |
#define | FSL_USDHC_ENABLE_SCATTER_GATHER_TRANSFER 0U |
USDHC scatter gather feature control macro. | |
#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. More... | |
#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 max transfer size ADMA1 support is 65535 which is indivisible by 4096, so to make sure a large data load transfer (>64KB) continuously (require the data address be always 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. More... | |
#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. | |
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. A high level DMA descriptor configuration function. More... | |
status_t | USDHC_SetInternalDmaConfig (USDHC_Type *base, usdhc_adma_config_t *dmaConfig, const uint32_t *dataAddr, bool enAutoCmd23) |
Internal DMA configuration. This function is used to config the USDHC DMA related registers. 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... | |
Bus Operations | |
void | USDHC_GetCapability (USDHC_Type *base, usdhc_capability_t *capability) |
Gets the capability information. 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... | |
void | USDHC_SendCommand (USDHC_Type *base, usdhc_command_t *command) |
Sends command function. More... | |
void | USDHC_SetMmcBootConfig (USDHC_Type *base, const usdhc_boot_config_t *config) |
Configures the MMC boot feature. More... | |
void | USDHC_EnableDDRMode (USDHC_Type *base, bool enable, uint32_t nibblePos) |
The enable/disable DDR mode. More... | |
void | USDHC_SetDataConfig (USDHC_Type *base, usdhc_transfer_direction_t dataDirection, uint32_t blockCount, uint32_t blockSize) |
USDHC data configuration. More... | |
Transactional functions | |
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... | |
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_TransferHandleIRQ (USDHC_Type *base, usdhc_handle_t *handle) |
IRQ handler for the USDHC. More... | |
#define USDHC_ADMA1_DESCRIPTOR_ADDRESS_SHIFT (12U) |
The bit shift for ADDRESS filed in ADMA1's descriptor.
Address/page field | Reserved | Attribute | |||||
---|---|---|---|---|---|---|---|
31 12 | 11 6 | 05 | 04 | 03 | 02 | 01 | 00 |
address or data length | 000000 | Act2 | Act1 | 0 | Int | End | Valid |
Act2 | Act1 | Comment | 31-28 | 27-12 |
---|---|---|---|---|
0 | 0 | No op | Don't care | |
0 | 1 | Set data length | 0000 | Data Length |
1 | 0 | Transfer data | Data address | |
1 | 1 | Link descriptor | Descriptor address |
#define USDHC_ADMA2_DESCRIPTOR_LENGTH_SHIFT (16U) |
The bit shift for LENGTH field in ADMA2's descriptor.
Address field | Length | Reserved | Attribute | |||||
---|---|---|---|---|---|---|---|---|
63 32 | 31 16 | 15 06 | 05 | 04 | 03 | 02 | 01 | 00 |
32-bit address | 16-bit length | 0000000000 | Act2 | Act1 | 0 | Int | End | Valid |
Act2 | Act1 | Comment | Operation |
---|---|---|---|
0 | 0 | No op | Don't care |
0 | 1 | Reserved | Read this line and go to next one |
1 | 0 | Transfer data | Transfer data with address and length set in this descriptor line |
1 | 1 | Link descriptor | Link to another descriptor |
typedef struct _usdhc_capability usdhc_capability_t |
USDHC capability information.
Defines a structure to save the capability information of USDHC.
typedef enum _usdhc_card_response_type usdhc_card_response_type_t |
The command response type.
Defines the command response type from card to host controller.
typedef struct _usdhc_command usdhc_command_t |
Card command descriptor.
Defines card command-related attribute.
typedef struct _usdhc_data usdhc_data_t |
Card data descriptor.
Defines a structure to contain data-related attribute. The 'enableIgnoreError' is used when upper card driver wants to ignore the error event to read/write all the data and not to stop read/write immediately when an error event happens. For example, bus testing procedure for MMC card.
typedef struct _usdhc_scatter_gather_data_list usdhc_scatter_gather_data_list_t |
Card scatter gather data list.
Allow application register uncontinuous data buffer for data transfer.
typedef struct _usdhc_scatter_gather_data usdhc_scatter_gather_data_t |
Card scatter gather data descriptor.
Defines a structure to contain data-related attribute. The 'enableIgnoreError' is used when upper card driver wants to ignore the error event to read/write all the data and not to stop read/write immediately when an error event happens. For example, bus testing procedure for MMC card.
anonymous enum |
Enum _usdhc_status. USDHC status.
anonymous enum |
Enum _usdhc_capability_flag. Host controller capabilities flag mask. .
anonymous enum |
anonymous enum |
anonymous enum |
Enum _usdhc_transfer_flag. Transfer flag mask.
anonymous enum |
Enum _usdhc_present_status_flag. Present status flag mask. .
anonymous enum |
Enum _usdhc_interrupt_status_flag. Interrupt status flag mask. .
anonymous enum |
Enum _usdhc_auto_command12_error_status_flag. Auto CMD12 error status flag mask. .
anonymous enum |
anonymous enum |
anonymous enum |
Enum _usdhc_adma_error_state. ADMA error state.
This state is the detail state when ADMA error has occurred.
anonymous enum |
Enum _usdhc_force_event. Force event bit position. .
anonymous enum |
Enum _usdhc_sdio_control_flag. SDIO control flag mask. .
anonymous enum |
Enum _usdhc_adma1_descriptor_flag. The mask for the control/status field in ADMA1 descriptor.
anonymous enum |
Enum _usdhc_adma2_descriptor_flag. ADMA1 descriptor control and status mask.
anonymous enum |
Enum _usdhc_adma_flag. ADMA descriptor configuration flag. .
anonymous enum |
enum _usdhc_boot_mode |
enum _usdhc_burst_len |
The command response type.
Defines the command response type from card to host controller.
enum _usdhc_dma_mode |
enum _usdhc_endian_mode |
void USDHC_Deinit | ( | USDHC_Type * | base | ) |
Deinitializes the USDHC.
base | USDHC peripheral base address. |
brief Deinitializes the USDHC.
param base USDHC peripheral base address.
void USDHC_EnableDDRMode | ( | USDHC_Type * | base, |
bool | enable, | ||
uint32_t | nibblePos | ||
) |
The enable/disable DDR mode.
base | USDHC peripheral base address. |
enable | enable/disable flag |
nibblePos | nibble position |
brief the enable/disable DDR mode
param base USDHC peripheral base address. param enable/disable flag param nibble position
void USDHC_GetCapability | ( | USDHC_Type * | base, |
usdhc_capability_t * | capability | ||
) |
Gets the capability information.
base | USDHC peripheral base address. |
capability | Structure to save capability information. |
brief Gets the capability information.
param base USDHC peripheral base address. param capability Structure to save capability information.
void USDHC_Init | ( | USDHC_Type * | base, |
const usdhc_config_t * | config | ||
) |
USDHC module initialization function.
Configures the USDHC according to the user configuration.
Example:
base | USDHC peripheral base address. |
config | USDHC configuration information. |
kStatus_Success | Operate successfully. |
brief USDHC module initialization function.
Configures the USDHC according to the user configuration.
Example: code usdhc_config_t config; config.cardDetectDat3 = false; config.endianMode = kUSDHC_EndianModeLittle; config.dmaMode = kUSDHC_DmaModeAdma2; config.readWatermarkLevel = 128U; config.writeWatermarkLevel = 128U; USDHC_Init(USDHC, &config); endcode
param base USDHC peripheral base address. param config USDHC configuration information. retval kStatus_Success Operate successfully.
bool USDHC_Reset | ( | USDHC_Type * | base, |
uint32_t | mask, | ||
uint32_t | timeout | ||
) |
Resets the USDHC.
base | USDHC peripheral base address. |
mask | The reset type mask(_usdhc_reset). |
timeout | Timeout for reset. |
true | Reset successfully. |
false | Reset failed. |
brief Resets the USDHC.
param base USDHC peripheral base address. param mask The reset type mask(_usdhc_reset). param timeout Timeout for reset. retval true Reset successfully. retval false Reset failed.
void USDHC_SendCommand | ( | USDHC_Type * | base, |
usdhc_command_t * | command | ||
) |
Sends command function.
base | USDHC peripheral base address. |
command | configuration |
brief send command function
param base USDHC peripheral base address. param command configuration
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.
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 refer to enum _usdhc_adma_flag. |
kStatus_OutOfRange | ADMA descriptor table length isn't enough to describe data. |
kStatus_Success | Operate successfully. |
brief Sets the ADMA1 descriptor table configuration.
param admaTable Adma table address. param admaTableWords Adma table length. param dataBufferAddr Data buffer address. param dataBytes Data length. param flags ADAM descriptor flag, used to indicate to create multiple or single descriptor, please reference _usdhc_adma_flag. retval kStatus_OutOfRange ADMA descriptor table length isn't enough to describe data. retval kStatus_Success Operate successfully.
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.
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 refer to enum _usdhc_adma_flag. |
kStatus_OutOfRange | ADMA descriptor table length isn't enough to describe data. |
kStatus_Success | Operate successfully. |
brief Sets the ADMA2 descriptor table configuration.
param admaTable Adma table address. param admaTableWords Adma table length. param dataBufferAddr Data buffer address. param dataBytes Data Data length. param flags ADAM descriptor flag, used to indicate to create multiple or single descriptor, please reference _usdhc_adma_flag. retval kStatus_OutOfRange ADMA descriptor table length isn't enough to describe data. retval kStatus_Success Operate successfully.
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. A high level DMA descriptor configuration function.
base | USDHC peripheral base address. |
dmaConfig | ADMA configuration |
dataConfig | Data descriptor |
flags | ADAM descriptor flag, used to indicate to create multiple or single descriptor, please refer to enum _usdhc_adma_flag. |
kStatus_OutOfRange | ADMA descriptor table length isn't enough to describe data. |
kStatus_Success | Operate successfully. |
brief Sets the DMA descriptor table configuration. A high level DMA descriptor configuration function. param base USDHC peripheral base address. param adma configuration param data Data descriptor param flags ADAM descriptor flag, used to indicate to create multiple or single descriptor, please reference _usdhc_adma_flag retval kStatus_OutOfRange ADMA descriptor table length isn't enough to describe data. retval kStatus_Success Operate successfully.
bool USDHC_SetCardActive | ( | USDHC_Type * | base, |
uint32_t | timeout | ||
) |
Sends 80 clocks to the card to set it to the active state.
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. |
brief Sends 80 clocks to the card to set it to the active state.
This function must be called each time the card is inserted to ensure that the card can receive the command correctly.
param base USDHC peripheral base address. param timeout Timeout to initialize card. retval true Set card active successfully. retval false Set card active failed.
void USDHC_SetDataConfig | ( | USDHC_Type * | base, |
usdhc_transfer_direction_t | dataDirection, | ||
uint32_t | blockCount, | ||
uint32_t | blockSize | ||
) |
USDHC data configuration.
base | USDHC peripheral base address. |
dataDirection | Data direction, tx or rx. |
blockCount | Data block count. |
blockSize | Data block size. |
status_t USDHC_SetInternalDmaConfig | ( | USDHC_Type * | base, |
usdhc_adma_config_t * | dmaConfig, | ||
const uint32_t * | dataAddr, | ||
bool | enAutoCmd23 | ||
) |
Internal DMA configuration. This function is used to config the USDHC DMA related registers.
base | USDHC peripheral base address. |
dmaConfig | 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. |
brief Internal DMA configuration. This function is used to config the USDHC DMA related registers. param base USDHC peripheral base address. param adma configuration param dataAddr transfer data address, a simple DMA parameter, if ADMA is used, leave it to NULL. param enAutoCmd23 flag to indicate Auto CMD23 is enable or not, a simple DMA parameter,if ADMA is used, leave it to false. retval kStatus_OutOfRange ADMA descriptor table length isn't enough to describe data. retval kStatus_Success Operate successfully.
void USDHC_SetMmcBootConfig | ( | USDHC_Type * | base, |
const usdhc_boot_config_t * | config | ||
) |
Configures the MMC boot feature.
Example:
base | USDHC peripheral base address. |
config | The MMC boot configuration information. |
brief Configures the MMC boot feature.
Example: code usdhc_boot_config_t config; config.ackTimeoutCount = 4; config.bootMode = kUSDHC_BootModeNormal; config.blockCount = 5; config.enableBootAck = true; config.enableBoot = true; config.enableAutoStopAtBlockGap = true; USDHC_SetMmcBootConfig(USDHC, &config); endcode
param base USDHC peripheral base address. param config The MMC boot configuration information.
uint32_t USDHC_SetSdClock | ( | USDHC_Type * | base, |
uint32_t | srcClock_Hz, | ||
uint32_t | busClock_Hz | ||
) |
Sets the SD bus clock frequency.
base | USDHC peripheral base address. |
srcClock_Hz | USDHC source clock frequency united in Hz. |
busClock_Hz | SD bus clock frequency united in Hz. |
brief Sets the SD bus clock frequency.
param base USDHC peripheral base address. param srcClock_Hz USDHC source clock frequency united in Hz. param busClock_Hz SD bus clock frequency united in Hz.
return The nearest frequency of busClock_Hz configured to SD bus.
status_t USDHC_TransferBlocking | ( | USDHC_Type * | base, |
usdhc_adma_config_t * | dmaConfig, | ||
usdhc_transfer_t * | transfer | ||
) |
Transfers the command/data using a blocking method.
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 this API doesn't support the re-entry mechanism.
base | USDHC peripheral base address. |
dmaConfig | 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. |
brief Transfers the command/data using a blocking method.
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.
note There is no need to call the API 'USDHC_TransferCreateHandle' when calling this API.
param base USDHC peripheral base address. param adma configuration param transfer Transfer content. retval kStatus_InvalidArgument Argument is invalid. retval kStatus_USDHC_PrepareAdmaDescriptorFailed Prepare ADMA descriptor failed. retval kStatus_USDHC_SendCommandFailed Send command failed. retval kStatus_USDHC_TransferDataFailed Transfer data failed. retval kStatus_Success Operate successfully.
void USDHC_TransferCreateHandle | ( | USDHC_Type * | base, |
usdhc_handle_t * | handle, | ||
const usdhc_transfer_callback_t * | callback, | ||
void * | userData | ||
) |
Creates the USDHC handle.
base | USDHC peripheral base address. |
handle | USDHC handle pointer. |
callback | Structure pointer to contain all callback functions. |
userData | Callback function parameter. |
brief Creates the USDHC handle.
param base USDHC peripheral base address. param handle USDHC handle pointer. param callback Structure pointer to contain all callback functions. param userData Callback function parameter.
void USDHC_TransferHandleIRQ | ( | USDHC_Type * | base, |
usdhc_handle_t * | handle | ||
) |
IRQ handler for the USDHC.
This function deals with the IRQs on the given host controller.
base | USDHC peripheral base address. |
handle | USDHC handle. |
brief IRQ handler for the USDHC.
This function deals with the IRQs on the given host controller.
param base USDHC peripheral base address. param handle USDHC handle.
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.
This function sends a command and data and returns immediately. It doesn't wait for the transfer to complete or to 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. |
dmaConfig | 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. |
brief Transfers the command/data using an interrupt and an asynchronous method.
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.
note Call the API 'USDHC_TransferCreateHandle' when calling this API.
param base USDHC peripheral base address. param handle USDHC handle. param adma configuration. param transfer Transfer content. retval kStatus_InvalidArgument Argument is invalid. retval kStatus_USDHC_BusyTransferring Busy transferring. retval kStatus_USDHC_PrepareAdmaDescriptorFailed Prepare ADMA descriptor failed. retval kStatus_Success Operate successfully.
uint32_t _usdhc_boot_config::ackTimeoutCount |
Timeout value for the boot ACK. The available range is 0 ~ 15.
const uint32_t* _usdhc_adma2_descriptor::address |
The address field.
uint32_t* _usdhc_adma_config::admaTable |
ADMA table address, can't be null if transfer way is ADMA1/ADMA2.
uint32_t _usdhc_adma_config::admaTableWords |
ADMA table length united as words, can't be 0 if transfer way is ADMA1/ADMA2.
uint32_t _usdhc_command::argument |
Command argument.
uint32_t _usdhc_adma2_descriptor::attribute |
The control and status field.
USDHC_Type* _usdhc_host::base |
USDHC peripheral base address.
uint32_t _usdhc_boot_config::blockCount |
Stop at block gap value of automatic mode. Available range is 0 ~ 65535.
uint32_t _usdhc_data::blockCount |
Block count.
void(* _usdhc_transfer_callback::BlockGap) (USDHC_Type *base, void *userData) |
stopped at block gap event
size_t _usdhc_boot_config::blockSize |
Block size.
size_t _usdhc_scatter_gather_data::blockSize |
Block size.
size_t _usdhc_data::blockSize |
Block size.
usdhc_boot_mode_t _usdhc_boot_config::bootMode |
Boot mode selection.
usdhc_burst_len_t _usdhc_adma_config::burstLen |
Burst len config.
usdhc_transfer_callback_t _usdhc_handle::callback |
Callback function.
usdhc_capability_t _usdhc_host::capability |
USDHC capability information.
void(* _usdhc_transfer_callback::CardInserted) (USDHC_Type *base, void *userData) |
Card inserted occurs when DAT3/CD pin is for card detect
void(* _usdhc_transfer_callback::CardRemoved) (USDHC_Type *base, void *userData) |
Card removed occurs
usdhc_command_t* _usdhc_scatter_gather_transfer::command |
Command to send.
usdhc_command_t* _usdhc_transfer::command |
Command to send.
usdhc_command_t* volatile _usdhc_handle::command |
Transfer parameter. Command to send.
usdhc_config_t _usdhc_host::config |
USDHC configuration.
usdhc_scatter_gather_data_t* _usdhc_scatter_gather_transfer::data |
Data to transfer.
usdhc_data_t* _usdhc_transfer::data |
Data to transfer.
usdhc_data_t* volatile _usdhc_handle::data |
Transfer parameter. Data to transfer.
usdhc_transfer_direction_t _usdhc_scatter_gather_data::dataDirection |
data direction
uint32_t _usdhc_config::dataTimeout |
Data timeout value.
uint8_t _usdhc_scatter_gather_data::dataType |
this is used to distinguish the normal/tuning/boot data.
uint8_t _usdhc_data::dataType |
this is used to distinguish the normal/tuning/boot data.
usdhc_dma_mode_t _usdhc_adma_config::dmaMode |
DMA mode.
bool _usdhc_scatter_gather_data::enableAutoCommand12 |
Enable auto CMD12.
bool _usdhc_data::enableAutoCommand12 |
Enable auto CMD12.
bool _usdhc_scatter_gather_data::enableAutoCommand23 |
Enable auto CMD23.
bool _usdhc_data::enableAutoCommand23 |
Enable auto CMD23.
bool _usdhc_boot_config::enableAutoStopAtBlockGap |
Enable or disable auto stop at block gap function in boot period.
bool _usdhc_boot_config::enableBootAck |
Enable or disable boot ACK.
bool _usdhc_scatter_gather_data::enableIgnoreError |
Enable to ignore error event to read/write all the data.
bool _usdhc_data::enableIgnoreError |
Enable to ignore error event to read/write all the data.
usdhc_endian_mode_t _usdhc_config::endianMode |
Endian mode.
uint32_t _usdhc_capability::flags |
Capability flags to indicate the support information(_usdhc_capability_flag).
uint32_t _usdhc_command::flags |
Cmd flags.
uint32_t _usdhc_command::index |
Command index.
uint32_t _usdhc_capability::maxBlockCount |
Maximum block count can be set one time.
uint32_t _usdhc_capability::maxBlockLength |
Maximum block length united as byte.
uint32_t _usdhc_capability::mmcVersion |
Support EMMC card version.
uint8_t _usdhc_config::readBurstLen |
Read burst len.
uint8_t _usdhc_config::readWatermarkLevel |
Watermark level for DMA read operation. Available range is 1 ~ 128.
uint32_t _usdhc_command::response[4U] |
Response for this command.
uint32_t _usdhc_command::responseErrorFlags |
Response error flag, which need to check the command reponse.
usdhc_card_response_type_t _usdhc_command::responseType |
Command response type.
void(* _usdhc_transfer_callback::ReTuning) (USDHC_Type *base, void *userData) |
Handle the re-tuning.
uint32_t* _usdhc_data::rxData |
Buffer to save data read.
void(* _usdhc_transfer_callback::SdioInterrupt) (USDHC_Type *base, void *userData) |
SDIO card interrupt occurs
uint32_t _usdhc_capability::sdVersion |
Support SD card/sdio version.
usdhc_scatter_gather_data_list_t _usdhc_scatter_gather_data::sgData |
scatter gather data
uint32_t _usdhc_host::sourceClock_Hz |
USDHC source clock frequency united in Hz.
usdhc_transfer_function_t _usdhc_host::transfer |
USDHC transfer function.
void(* _usdhc_transfer_callback::TransferComplete) (USDHC_Type *base, usdhc_handle_t *handle, status_t status, void *userData) |
Transfer complete callback.
volatile uint32_t _usdhc_handle::transferredWords |
Transfer status. Words transferred by DATAPORT way.
const uint32_t* _usdhc_data::txData |
Data buffer to write.
usdhc_card_command_type_t _usdhc_command::type |
Command type.
void* _usdhc_handle::userData |
Parameter for transfer complete callback.
uint8_t _usdhc_config::writeBurstLen |
Write burst len.
uint8_t _usdhc_config::writeWatermarkLevel |
Watermark level for DMA write operation. Available range is 1 ~ 128.