This module contains APIs to program and use the MMCSD LLD modules. The APIs can be used by other drivers to get access to MMCSD and also by application to initiate transaction operations.
The MMCSD LLD header file should be included in an application as follows:
#include <drivers/MMCSD/v1/lld/mmcsd_lld.h>
|
| int32_t | MMCSD_lld_init (MMCSDLLD_Handle handle) |
| | This API Initializes the MMCSD instance. More...
|
| |
| int32_t | MMCSD_lld_deInit (MMCSDLLD_Handle handle) |
| | This API De-Initializes the MMCSD instance. 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...
|
| |
| 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_Isr (void *args) |
| | This is the MMCSD Controller ISR and can be used as IRQ handler. More...
|
| |
|
|
| #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...
|
| |
|
|
| #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_STS_SUCCESS
| #define MMCSD_STS_SUCCESS ((int32_t) 0) |
Return status when the API execution was successful.
◆ MMCSD_STS_ERR
| #define MMCSD_STS_ERR ((int32_t)-1) |
Return status when the API execution was not successful due to a generic Error.
◆ MMCSD_STS_ERR_TIMEOUT
| #define MMCSD_STS_ERR_TIMEOUT ((int32_t)-2) |
Return status when the API execution was not successful due to a time out.
◆ MMCSD_STS_ERR_INVALID_PARAM
| #define MMCSD_STS_ERR_INVALID_PARAM ((int32_t)-3) |
Return status when the API execution failed due invalid parameters.
◆ MMCSD_STS_ERR_BUSY
| #define MMCSD_STS_ERR_BUSY ((int32_t)-4) |
Return status when the API execution failed due to driver busy.
◆ MMCSD_STS_ERR_CARD_NOT_FOUND
| #define MMCSD_STS_ERR_CARD_NOT_FOUND ((int32_t)-5) |
Return status when the API execution failed due to missing card.
◆ MMCSD_STS_ERR_CARD_UNUSEABLE
| #define MMCSD_STS_ERR_CARD_UNUSEABLE ((int32_t)-6) |
Return status when the API execution failed due to unuseable card.
◆ MMCSD_STS_ERR_CARD_UNLOCK_FAIL
| #define MMCSD_STS_ERR_CARD_UNLOCK_FAIL ((int32_t)-7) |
Return status when the API execution failed due to card Unlock Failure.
◆ MMCSD_NO_WAIT
| #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.
◆ MMCSD_WAIT_FOREVER
| #define MMCSD_WAIT_FOREVER ((uint32_t)-1) |
Value to use when needing a timeout of infinity or wait forever until resource is available.
◆ MMCSD_STATE_RESET
| #define MMCSD_STATE_RESET ((uint8_t) 0U) |
MMCSD driver is in Reset State prior to driver init and post driver deinit.
◆ MMCSD_STATE_IDLE
| #define MMCSD_STATE_IDLE ((uint8_t) 1U) |
MMCSD driver accepts runtime APIs only Ready State, otherwise return error.
◆ MMCSD_STATE_BUSY
| #define MMCSD_STATE_BUSY ((uint8_t) 2U) |
MMCSD driver is busy performing operation with peripherals, return error when APIs are invoked.
◆ MMCSD_STATE_ERROR
| #define MMCSD_STATE_ERROR ((uint8_t) 3U) |
MMCSD driver ran into error, returns error for all APIs other than deinit in this state.
◆ MMCSD_XFER_IDLE_STATE
| #define MMCSD_XFER_IDLE_STATE ((uint8_t) 0U) |
◆ MMCSD_XFER_CMD_STATE
| #define MMCSD_XFER_CMD_STATE ((uint8_t) 1U) |
◆ MMCSD_XFER_WRITE_STATE
| #define MMCSD_XFER_WRITE_STATE ((uint8_t) 2U) |
◆ MMCSD_XFER_READ_STATE
| #define MMCSD_XFER_READ_STATE ((uint8_t) 3U) |
◆ MMCSD_CARD_TYPE_SD
| #define MMCSD_CARD_TYPE_SD ((uint32_t) 0U) |
◆ MMCSD_CARD_TYPE_EMMC
| #define MMCSD_CARD_TYPE_EMMC ((uint32_t) 2U) |
◆ MMCSD_CARD_TYPE_NO_DEVICE
| #define MMCSD_CARD_TYPE_NO_DEVICE ((uint32_t) 3U) |
◆ MMCSD_BUS_WIDTH_1BIT
| #define MMCSD_BUS_WIDTH_1BIT ((uint32_t) 1U) |
Card bus width configuration for 1-bit mode.
◆ MMCSD_BUS_WIDTH_4BIT
| #define MMCSD_BUS_WIDTH_4BIT ((uint32_t) 4U) |
Card bus width configuration for 4-bit mode.
◆ MMCSD_BUS_WIDTH_8BIT
| #define MMCSD_BUS_WIDTH_8BIT ((uint32_t) 8U) |
Card bus width configuration for 8-bit mode.
◆ MMCSD_SD_MODE_DS
| #define MMCSD_SD_MODE_DS ((uint32_t) 10U) |
◆ MMCSD_SD_MODE_HS
| #define MMCSD_SD_MODE_HS ((uint32_t) 11U) |
◆ MMCSD_Clock_uSleep
| typedef void(* MMCSD_Clock_uSleep) (uint32_t usec) |
The definition of a sleep function used by the MMCSD driver for delay.
- Parameters
-
◆ MMCSD_lld_transferCompleteCallback
| 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.
- Parameters
-
| args | Void Pointer |
| xferStatus | Transfer Status |
◆ MMCSDLLD_InitHandle
◆ MMCSDLLD_Handle
◆ MMCSD_lld_init()
This API Initializes the MMCSD instance.
- Parameters
-
| handle | [IN] Handle to the MMCSD instance used. |
- Returns
- MMCSD_StatusCode
◆ MMCSD_lld_deInit()
This API De-Initializes the MMCSD instance.
- Parameters
-
| handle | [IN] Handle to the MMCSD instance used. |
- Returns
- MMCSD_StatusCode
◆ MMCSD_lld_write_SD_Poll()
| 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.
- Parameters
-
| handle | [IN] Handle to the MMCSD instance used. |
| buf | [IN] Pointer to buffer from which data is to be written from. |
| startBlk | [IN] Block to start Writing data from. |
| numBlks | [IN] Number of blocks to write. |
- Returns
- MMCSD_StatusCode
◆ MMCSD_lld_read_SD_Poll()
| 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.
- Parameters
-
| handle | [IN] Handle to the MMCSD instance used. |
| buf | [IN] Pointer to buffer to which data is to be read into. |
| startBlk | [IN] Block to start reading data from. |
| numBlks | [IN] Number of blocks to read. |
- Returns
- MMCSD_StatusCode
◆ MMCSD_lld_write_SD_Intr()
| 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.
- Parameters
-
| handle | [IN] Handle to the MMCSD instance used. |
| buf | [IN] Pointer to buffer from which data is to be written from. |
| startBlk | [IN] Block to start Writing data from. |
| numBlks | [IN] Number of blocks to write. |
- Returns
- MMCSD_StatusCode
◆ MMCSD_lld_read_SD_Intr()
| 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.
- Parameters
-
| handle | [IN] Handle to the MMCSD instance used. |
| buf | [IN] Pointer to buffer to which data is to be read into. |
| startBlk | [IN] Block to start reading data from. |
| numBlks | [IN] Number of blocks to read. |
- Returns
- MMCSD_StatusCode
◆ MMCSD_lld_getBlockSize()
This function returns the block size of the MMC/SD media connected to the MMCSD controller.
- Precondition
- MMCSD controller has been initialized using MMCSD_lld_init().
- Parameters
-
| handle | [IN] Handle to the MMCSD instance used. |
- Returns
- Block size of the media.
- See also
- MMCSD_lld_init()
◆ MMCSD_lld_Isr()
| void MMCSD_lld_Isr |
( |
void * |
args | ) |
|
This is the MMCSD Controller ISR and can be used as IRQ handler.
- Parameters
-
| args | [IN] Argument to the ISR. |