AM263Px MCU+ SDK: mmcsd_lld.h File Reference

| AM263Px MCU+ SDK 26.00.00 |

Data Structures | Typedefs | Functions
mmcsd_lld.h File Reference
APIs for SOC Specific Device Drivers » APIs for MMCSD LLD

## Introduction

MMCSD LLD Driver API/interface file.

Go to the source code of this file.

## Return status
#define | MMCSD_STS_SUCCESS ((int32_t) 0)
| Return status when the API execution was successful. More...
#define | MMCSD_STS_ERR ((int32_t)-1)
| Return status when the API execution was not successful due to a generic Error. More...
#define | MMCSD_STS_ERR_TIMEOUT ((int32_t)-2)
| Return status when the API execution was not successful due to a time out. More...
#define | MMCSD_STS_ERR_INVALID_PARAM ((int32_t)-3)
| Return status when the API execution failed due invalid parameters. More...
#define | MMCSD_STS_ERR_BUSY ((int32_t)-4)
| Return status when the API execution failed due to driver busy. More...
#define | MMCSD_STS_ERR_CARD_NOT_FOUND ((int32_t)-5)
| Return status when the API execution failed due to missing card. More...
#define | MMCSD_STS_ERR_CARD_UNUSEABLE ((int32_t)-6)
| Return status when the API execution failed due to unuseable card. More...
#define | MMCSD_STS_ERR_CARD_UNLOCK_FAIL ((int32_t)-7)
| Return status when the API execution failed due to card Unlock Failure. More...
typedef EDMA_Handle | MMCSD_DmaHandle
typedef struct MMCSD_EdmaChConfig_s * | MMCSD_DmaChConfig

## Data Structures
struct | MMCSD_EmmcDeviceData
| eMMC device properties More...
struct | MMCSD_SdDeviceData
| SD device properties. More...
struct | MMCSDLLD_Transaction
| MMCSD LLD Transaction. More...
struct | MMCSDLLD_InitObject
| MMCSD Driver Initialization Object. More...
struct | MMCSDLLD_Object
| MMCSD Driver Object. More...

## Macros
Timeout values
#define | MMCSD_NO_WAIT ((uint32_t)0)
| Value to use when needing a timeout of zero or NO timeout, return immediately on resource not available. More...
#define | MMCSD_WAIT_FOREVER ((uint32_t)-1)
| Value to use when needing a timeout of infinity or wait forever until resource is available. More...
MMCSD Driver states
#define | MMCSD_STATE_RESET ((uint8_t) 0U)
| MMCSD driver is in Reset State prior to driver init and post driver deinit. More...
#define | MMCSD_STATE_IDLE ((uint8_t) 1U)
| MMCSD driver accepts runtime APIs only Ready State, otherwise return error. More...
#define | MMCSD_STATE_BUSY ((uint8_t) 2U)
| MMCSD driver is busy performing operation with peripherals, return error when APIs are invoked. More...
#define | MMCSD_STATE_ERROR ((uint8_t) 3U)
| MMCSD driver ran into error, returns error for all APIs other than deinit in this state. More...
MMCSD Transfer states
#define | MMCSD_XFER_IDLE_STATE ((uint8_t) 0U)
| XFER is in IDLE state. More...
#define | MMCSD_XFER_CMD_STATE ((uint8_t) 1U)
| XFER is in CMD state. More...
#define | MMCSD_XFER_WRITE_STATE ((uint8_t) 2U)
| XFER is in Write state. More...
#define | MMCSD_XFER_READ_STATE ((uint8_t) 3U)
| XFER is in Read state. More...
MACROS used to select one of the possible Card Types.
#define | MMCSD_CARD_TYPE_SD ((uint32_t) 0U)
| Card type SD. More...
#define | MMCSD_CARD_TYPE_EMMC ((uint32_t) 2U)
| Card type MMC. More...
#define | MMCSD_CARD_TYPE_NO_DEVICE ((uint32_t) 3U)
| No Card Installed. More...
MACROS for the possible values of Bus Width configuration.
#define | MMCSD_BUS_WIDTH_1BIT ((uint32_t) 1U)
| Card bus width configuration for 1-bit mode. More...
#define | MMCSD_BUS_WIDTH_4BIT ((uint32_t) 4U)
| Card bus width configuration for 4-bit mode. More...
#define | MMCSD_BUS_WIDTH_8BIT ((uint32_t) 8U)
| Card bus width configuration for 8-bit mode. More...
ECSD Bus Width Macros
Macros for Extended CSD (ECSD) bus width configuration in eMMC devices. These macros are used to set or interpret the bus width field in the ECSD register.
#define | MMCSD_ECSD_BUS_WIDTH_INDEX (183U)
| ECSD register index for bus width configuration. More...
#define | MMCSD_ECSD_BUS_WIDTH_1BIT (0U)
| ECSD value for 1-bit bus width. More...
#define | MMCSD_ECSD_BUS_WIDTH_4BIT (1U)
| ECSD value for 4-bit bus width. More...
#define | MMCSD_ECSD_BUS_WIDTH_8BIT (2U)
| ECSD value for 8-bit bus width. More...
#define | MMCSD_ECSD_BUS_WIDTH_4BIT_DDR (5U)
| ECSD value for 4-bit DDR bus width. More...
#define | MMCSD_ECSD_BUS_WIDTH_8BIT_DDR (6U)
| ECSD value for 8-bit DDR bus width. More...
#define | MMCSD_ECSD_BUS_WIDTH_BUSWIDTH_MASK (0x0FU)
| Mask for extracting bus width bits from ECSD value. More...
#define | MMCSD_ECSD_BUS_WIDTH_BUSWIDTH_SHIFT (0U)
| Bit shift for bus width bits in ECSD value. More...
#define | MMCSD_ECSD_BUS_WIDTH_ES_ENABLE (0x80U)
| Enable Enhanced Strobe in ECSD bus width field. More...
#define | MMCSD_ECSD_BUS_WIDTH_ES_MASK (0x80U)
| Mask for Enhanced Strobe bit in ECSD bus width field. More...
#define | MMCSD_ECSD_BUS_WIDTH_ES_SHIFT (7U)
| Bit shift for Enhanced Strobe bit in ECSD bus width field. More...
MACROS used to select one of the possible Speed Modes for SD Device.
#define | MMCSD_SD_MODE_DS ((uint32_t) 10U)
| Default Speed. More...
#define | MMCSD_SD_MODE_HS ((uint32_t) 11U)
| High Speed. More...

## Typedefs
typedef void(* | MMCSD_lld_transferCompleteCallback) (void *args, int32_t xferStatus)
| The definition of a transfer completion callback function used by the MMCSD driver when used in Callback Mode. More...
typedef struct MMCSDLLD_InitObject * | MMCSDLLD_InitHandle
typedef struct MMCSDLLD_Object * | MMCSDLLD_Handle

## Functions
int32_t | MMCSD_lld_init (MMCSDLLD_Handle handle)
| This API Initializes the MMCSD instance. More...
int32_t | MMCSD_lld_InitDma (MMCSDLLD_Handle handle)
| This API Initializes the MMCSD instance for DMA transfers. More...
int32_t | MMCSD_lld_deInit (MMCSDLLD_Handle handle)
| This API De-Initializes the MMCSD instance. More...
int32_t | MMCSD_lld_deInitDma (MMCSDLLD_Handle handle)
| This API De-Initializes the MMCSD instance with DMA transfers. More...
int32_t | MMCSD_lld_write_SD_Poll (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Function to perform block writes to the SD media in Polling Mode. More...
int32_t | MMCSD_lld_read_SD_Poll (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Function to perform block reads from the SD media in Polling Mode. More...
int32_t | MMCSD_lld_write_SD_Intr (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Function to perform block writes to the SD media in Interrupt Mode. More...
int32_t | MMCSD_lld_read_SD_Intr (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Function to perform block reads from the SD media in Interrupt Mode. More...
int32_t | MMCSD_lld_write_SD_Dma (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Function to perform block writes to the SD media in DMA Mode. More...
int32_t | MMCSD_lld_read_SD_Dma (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Function to perform block reads from the SD media in DMA Mode. More...
int32_t | MMCSD_lld_write_MMC_Poll (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Writes data to the MMC card using polling method. More...
int32_t | MMCSD_lld_read_MMC_Poll (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Reads data from the MMC card using polling method. More...
int32_t | MMCSD_lld_write_MMC_Intr (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Writes data to the MMC card using interrupt method. More...
int32_t | MMCSD_lld_read_MMC_Intr (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Reads data from the MMC card using interrupt method. More...
int32_t | MMCSD_lld_write_MMC_Dma (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Function to perform block writes to the MMC media in DMA Mode. More...
int32_t | MMCSD_lld_read_MMC_Dma (MMCSDLLD_Handle handle, uint8_t *buf, uint32_t startBlk, uint32_t numBlks)
| Function to perform block reads from the MMC media in DMA Mode. More...
uint32_t | MMCSD_lld_getBlockSize (MMCSDLLD_Handle handle)
| This function returns the block size of the MMC/SD media connected to the MMCSD controller. More...
void | MMCSD_lld_completeCurrTransfer (MMCSDLLD_Handle handle, int32_t xferStatus)
| Completes the current MMC/SD data transfer operation. More...
void | MMCSD_lld_Isr (void *args)
| This is the MMCSD Controller ISR and can be used as IRQ handler. More...