| ChibiOS/HAL
    6.1.0
    | 
Generic SD Card Driver. More...
|   | 
Generic SD Card Driver.
This module implements a generic SDC (Secure Digital Card) driver.
HAL_USE_SDC option must be enabled in halconf.h.This driver implements a state machine internally, see the Abstract I/O Block Device module documentation for details.
This driver allows to read or write single or multiple 512 bytes blocks on a SD Card.
| Macros | |
| #define | _sdc_driver_methods _mmcsd_block_device_methods | 
| SDCDriverspecific methods.  More... | |
| SD card types | |
| #define | SDC_MODE_CARDTYPE_MASK 0xFU | 
| #define | SDC_MODE_CARDTYPE_SDV11 0U | 
| #define | SDC_MODE_CARDTYPE_SDV20 1U | 
| #define | SDC_MODE_CARDTYPE_MMC 2U | 
| #define | SDC_MODE_HIGH_CAPACITY 0x10U | 
| SDC configuration options | |
| #define | SDC_INIT_RETRY 100 | 
| Number of initialization attempts before rejecting the card.  More... | |
| #define | SDC_MMC_SUPPORT FALSE | 
| Include support for MMC cards.  More... | |
| #define | SDC_NICE_WAITING TRUE | 
| Delays insertions.  More... | |
| #define | SDC_INIT_OCR_V20 0x50FF8000U | 
| OCR initialization constant for V20 cards.  More... | |
| #define | SDC_INIT_OCR 0x80100000U | 
| OCR initialization constant for non-V20 cards.  More... | |
| Macro Functions | |
| #define | sdcIsCardInserted(sdcp) (sdc_lld_is_card_inserted(sdcp)) | 
| Returns the card insertion status.  More... | |
| #define | sdcIsWriteProtected(sdcp) (sdc_lld_is_write_protected(sdcp)) | 
| Returns the write protect status.  More... | |
| PLATFORM configuration options | |
| #define | PLATFORM_SDC_USE_SDC1 FALSE | 
| PWMD1 driver enable switch.  More... | |
| Typedefs | |
| typedef uint32_t | sdcmode_t | 
| Type of card flags.  More... | |
| typedef uint32_t | sdcflags_t | 
| SDC Driver condition flags type.  More... | |
| typedef struct SDCDriver | SDCDriver | 
| Type of a structure representing an SDC driver.  More... | |
| Data Structures | |
| struct | SDCConfig | 
| Driver configuration structure.  More... | |
| struct | SDCDriverVMT | 
| SDCDrivervirtual methods table.  More... | |
| struct | SDCDriver | 
| Structure representing an SDC driver.  More... | |
| Functions | |
| static bool | mode_detect (SDCDriver *sdcp) | 
| Detects card mode.  More... | |
| static bool | mmc_init (SDCDriver *sdcp) | 
| Init procedure for MMC.  More... | |
| static bool | sdc_init (SDCDriver *sdcp) | 
| Init procedure for SDC.  More... | |
| static uint32_t | mmc_cmd6_construct (mmc_switch_t access, uint32_t idx, uint32_t value, uint32_t cmd_set) | 
| Constructs CMD6 argument for MMC.  More... | |
| static uint32_t | sdc_cmd6_construct (sd_switch_t mode, sd_switch_function_t function, uint32_t value) | 
| Constructs CMD6 argument for SDC.  More... | |
| static uint16_t | sdc_cmd6_extract_info (sd_switch_function_t function, const uint8_t *buf) | 
| Extracts information from CMD6 answer.  More... | |
| static bool | sdc_cmd6_check_status (sd_switch_function_t function, const uint8_t *buf) | 
| Checks status after switching using CMD6.  More... | |
| static bool | sdc_detect_bus_clk (SDCDriver *sdcp, sdcbusclk_t *clk) | 
| Reads supported bus clock and switch SDC to appropriate mode.  More... | |
| static bool | mmc_detect_bus_clk (SDCDriver *sdcp, sdcbusclk_t *clk) | 
| Reads supported bus clock and switch MMC to appropriate mode.  More... | |
| static bool | detect_bus_clk (SDCDriver *sdcp, sdcbusclk_t *clk) | 
| Reads supported bus clock and switch card to appropriate mode.  More... | |
| static bool | sdc_set_bus_width (SDCDriver *sdcp) | 
| Sets bus width for SDC.  More... | |
| static bool | mmc_set_bus_width (SDCDriver *sdcp) | 
| Sets bus width for MMC.  More... | |
| bool | _sdc_wait_for_transfer_state (SDCDriver *sdcp) | 
| Wait for the card to complete pending operations.  More... | |
| void | sdcInit (void) | 
| SDC Driver initialization.  More... | |
| void | sdcObjectInit (SDCDriver *sdcp) | 
| Initializes the standard part of a SDCDriverstructure.  More... | |
| void | sdcStart (SDCDriver *sdcp, const SDCConfig *config) | 
| Configures and activates the SDC peripheral.  More... | |
| void | sdcStop (SDCDriver *sdcp) | 
| Deactivates the SDC peripheral.  More... | |
| bool | sdcConnect (SDCDriver *sdcp) | 
| Performs the initialization procedure on the inserted card.  More... | |
| bool | sdcDisconnect (SDCDriver *sdcp) | 
| Brings the driver in a state safe for card removal.  More... | |
| bool | sdcRead (SDCDriver *sdcp, uint32_t startblk, uint8_t *buf, uint32_t n) | 
| Reads one or more blocks.  More... | |
| bool | sdcWrite (SDCDriver *sdcp, uint32_t startblk, const uint8_t *buf, uint32_t n) | 
| Writes one or more blocks.  More... | |
| sdcflags_t | sdcGetAndClearErrors (SDCDriver *sdcp) | 
| Returns the errors mask associated to the previous operation.  More... | |
| bool | sdcSync (SDCDriver *sdcp) | 
| Waits for card idle condition.  More... | |
| bool | sdcGetInfo (SDCDriver *sdcp, BlockDeviceInfo *bdip) | 
| Returns the media info.  More... | |
| bool | sdcErase (SDCDriver *sdcp, uint32_t startblk, uint32_t endblk) | 
| Erases the supplied blocks.  More... | |
| void | sdc_lld_init (void) | 
| Low level SDC driver initialization.  More... | |
| void | sdc_lld_start (SDCDriver *sdcp) | 
| Configures and activates the SDC peripheral.  More... | |
| void | sdc_lld_stop (SDCDriver *sdcp) | 
| Deactivates the SDC peripheral.  More... | |
| void | sdc_lld_start_clk (SDCDriver *sdcp) | 
| Starts the SDIO clock and sets it to init mode (400kHz or less).  More... | |
| void | sdc_lld_set_data_clk (SDCDriver *sdcp, sdcbusclk_t clk) | 
| Sets the SDIO clock to data mode (25MHz or less).  More... | |
| void | sdc_lld_stop_clk (SDCDriver *sdcp) | 
| Stops the SDIO clock.  More... | |
| void | sdc_lld_set_bus_mode (SDCDriver *sdcp, sdcbusmode_t mode) | 
| Switches the bus to 4 bits mode.  More... | |
| void | sdc_lld_send_cmd_none (SDCDriver *sdcp, uint8_t cmd, uint32_t arg) | 
| Sends an SDIO command with no response expected.  More... | |
| bool | sdc_lld_send_cmd_short (SDCDriver *sdcp, uint8_t cmd, uint32_t arg, uint32_t *resp) | 
| Sends an SDIO command with a short response expected.  More... | |
| bool | sdc_lld_send_cmd_short_crc (SDCDriver *sdcp, uint8_t cmd, uint32_t arg, uint32_t *resp) | 
| Sends an SDIO command with a short response expected and CRC.  More... | |
| bool | sdc_lld_send_cmd_long_crc (SDCDriver *sdcp, uint8_t cmd, uint32_t arg, uint32_t *resp) | 
| Sends an SDIO command with a long response expected and CRC.  More... | |
| bool | sdc_lld_read (SDCDriver *sdcp, uint32_t startblk, uint8_t *buf, uint32_t n) | 
| Reads one or more blocks.  More... | |
| bool | sdc_lld_write (SDCDriver *sdcp, uint32_t startblk, const uint8_t *buf, uint32_t n) | 
| Writes one or more blocks.  More... | |
| bool | sdc_lld_sync (SDCDriver *sdcp) | 
| Waits for card idle condition.  More... | |
| Enumerations | 
| Variables | |
| static const struct SDCDriverVMT | sdc_vmt | 
| Virtual methods table.  More... | |
| SDCDriver | SDCD1 | 
| SDCD1 driver identifier.  More... | |
| #define SDC_INIT_RETRY 100 | 
Number of initialization attempts before rejecting the card.
Definition at line 74 of file hal_sdc.h.
Referenced by mmc_init(), and sdc_init().
| #define SDC_MMC_SUPPORT FALSE | 
| #define SDC_NICE_WAITING TRUE | 
| #define SDC_INIT_OCR_V20 0x50FF8000U | 
OCR initialization constant for V20 cards.
Definition at line 100 of file hal_sdc.h.
Referenced by sdc_init().
| #define SDC_INIT_OCR 0x80100000U | 
OCR initialization constant for non-V20 cards.
Definition at line 107 of file hal_sdc.h.
Referenced by sdc_init().
| #define sdcIsCardInserted | ( | sdcp | ) | (sdc_lld_is_card_inserted(sdcp)) | 
Returns the card insertion status.
sdc_lld_is_card_inserted(), this function must be provided by the application because it is not part of the SDC driver.| [in] | sdcp | pointer to the SDCDriverobject | 
| false | card not inserted. | 
| true | card inserted. | 
| #define sdcIsWriteProtected | ( | sdcp | ) | (sdc_lld_is_write_protected(sdcp)) | 
Returns the write protect status.
sdc_lld_is_write_protected(), this function must be provided by the application because it is not part of the SDC driver.| [in] | sdcp | pointer to the SDCDriverobject | 
| false | not write protected. | 
| true | write protected. | 
| #define PLATFORM_SDC_USE_SDC1 FALSE | 
PWMD1 driver enable switch.
If set to TRUE the support for PWM1 is included. 
FALSE. Definition at line 48 of file hal_sdc_lld.h.
| #define _sdc_driver_methods _mmcsd_block_device_methods | 
SDCDriver specific methods. 
Definition at line 98 of file hal_sdc_lld.h.
| typedef uint32_t sdcmode_t | 
Type of card flags.
Definition at line 63 of file hal_sdc_lld.h.
| typedef uint32_t sdcflags_t | 
SDC Driver condition flags type.
Definition at line 68 of file hal_sdc_lld.h.
Type of a structure representing an SDC driver.
Definition at line 73 of file hal_sdc_lld.h.
| enum mmc_switch_t | 
| enum sd_switch_t | 
| enum sd_switch_function_t | 
| enum sdcbusmode_t | 
| enum sdcbusclk_t | 
| 
 | static | 
Detects card mode.
| [in] | sdcp | pointer to the SDCDriverobject | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 100 of file hal_sdc.c.
References SDCDriver::cardmode, MMCSD_CMD8_PATTERN, MMCSD_R1_ERROR, sdc_lld_send_cmd_none(), and sdc_lld_send_cmd_short_crc().
Referenced by sdcConnect().

| 
 | static | 
Init procedure for MMC.
| [in] | sdcp | pointer to the SDCDriverobject | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 144 of file hal_sdc.c.
References SDCDriver::cardmode, osalThreadSleepMilliseconds, SDC_INIT_RETRY, and sdc_lld_send_cmd_short().
Referenced by sdcConnect().

| 
 | static | 
Init procedure for SDC.
| [in] | sdcp | pointer to the SDCDriverobject | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 181 of file hal_sdc.c.
References SDCDriver::cardmode, MMCSD_R1_ERROR, osalThreadSleepMilliseconds, SDC_INIT_OCR, SDC_INIT_OCR_V20, SDC_INIT_RETRY, sdc_lld_send_cmd_short(), and sdc_lld_send_cmd_short_crc().
Referenced by sdcConnect().

| 
 | static | 
Constructs CMD6 argument for MMC.
| [in] | access | EXT_CSD access mode | 
| [in] | idx | EXT_CSD byte number | 
| [in] | value | value to be written in target field | 
| [in] | cmd_set | switch current command set | 
Definition at line 229 of file hal_sdc.c.
References osalDbgAssert.
Referenced by mmc_detect_bus_clk(), and mmc_set_bus_width().
| 
 | static | 
Constructs CMD6 argument for SDC.
| [in] | mode | switch/test mode | 
| [in] | function | function number to be switched | 
| [in] | value | value to be written in target function | 
Definition at line 249 of file hal_sdc.c.
References osalDbgAssert.
Referenced by sdc_detect_bus_clk().
| 
 | static | 
Extracts information from CMD6 answer.
| [in] | function | function number to be switched | 
| [in] | buf | buffer with answer | 
Definition at line 271 of file hal_sdc.c.
Referenced by sdc_detect_bus_clk().
| 
 | static | 
Checks status after switching using CMD6.
| [in] | function | function number to be switched | 
| [in] | buf | buffer with answer | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 291 of file hal_sdc.c.
Referenced by sdc_detect_bus_clk().
| 
 | static | 
Reads supported bus clock and switch SDC to appropriate mode.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [out] | clk | pointer to clock enum | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 319 of file hal_sdc.c.
References _mmcsd_get_slice(), sdc_cmd6_check_status(), sdc_cmd6_construct(), and sdc_cmd6_extract_info().
Referenced by detect_bus_clk().

| 
 | static | 
Reads supported bus clock and switch MMC to appropriate mode.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [out] | clk | pointer to clock enum | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 373 of file hal_sdc.c.
References SDCDriver::config, mmc_cmd6_construct(), MMCSD_R1_ERROR, SDCConfig::scratchpad, and sdc_lld_send_cmd_short_crc().
Referenced by detect_bus_clk().

| 
 | static | 
Reads supported bus clock and switch card to appropriate mode.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [out] | clk | pointer to clock enum | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 407 of file hal_sdc.c.
References SDCDriver::cardmode, mmc_detect_bus_clk(), and sdc_detect_bus_clk().
Referenced by sdcConnect().

| 
 | static | 
Sets bus width for SDC.
| [in] | sdcp | pointer to the SDCDriverobject | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 426 of file hal_sdc.c.
References SDCConfig::bus_width, SDCDriver::config, MMCSD_R1_ERROR, SDCDriver::rca, sdc_lld_send_cmd_short_crc(), and sdc_lld_set_bus_mode().
Referenced by sdcConnect().

| 
 | static | 
Sets bus width for MMC.
| [in] | sdcp | pointer to the SDCDriverobject | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 464 of file hal_sdc.c.
References SDCConfig::bus_width, SDCDriver::config, mmc_cmd6_construct(), MMCSD_R1_ERROR, osalDbgAssert, sdc_lld_send_cmd_short_crc(), and sdc_lld_set_bus_mode().
Referenced by sdcConnect().

| bool _sdc_wait_for_transfer_state | ( | SDCDriver * | sdcp | ) | 
Wait for the card to complete pending operations.
| [in] | sdcp | pointer to the SDCDriverobject | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 503 of file hal_sdc.c.
References MMCSD_R1_ERROR, MMCSD_R1_STS, osalThreadSleepMilliseconds, SDCDriver::rca, and sdc_lld_send_cmd_short_crc().
Referenced by sdcDisconnect(), and sdcErase().

| void sdcInit | ( | void | ) | 
SDC Driver initialization.
halInit(), there is no need to explicitly initialize the driver.Definition at line 542 of file hal_sdc.c.
References sdc_lld_init().
Referenced by halInit().

| void sdcObjectInit | ( | SDCDriver * | sdcp | ) | 
Initializes the standard part of a SDCDriver structure. 
| [out] | sdcp | pointer to the SDCDriverobject | 
Definition at line 554 of file hal_sdc.c.
References BLK_STOP, SDCDriver::config, SDCDriver::errors, sdc_vmt, and SDCDriver::vmt.
Referenced by sdc_lld_init().
Configures and activates the SDC peripheral.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | config | pointer to the SDCConfigobject, can beNULLif the driver supports a default configuration or requires no configuration | 
Definition at line 573 of file hal_sdc.c.
References BLK_ACTIVE, BLK_STOP, SDCDriver::config, osalDbgAssert, osalDbgCheck, osalSysLock(), osalSysUnlock(), and sdc_lld_start().

| void sdcStop | ( | SDCDriver * | sdcp | ) | 
Deactivates the SDC peripheral.
| [in] | sdcp | pointer to the SDCDriverobject | 
Definition at line 593 of file hal_sdc.c.
References BLK_ACTIVE, BLK_STOP, SDCDriver::config, osalDbgAssert, osalDbgCheck, osalSysLock(), osalSysUnlock(), and sdc_lld_stop().

| bool sdcConnect | ( | SDCDriver * | sdcp | ) | 
Performs the initialization procedure on the inserted card.
This function should be invoked when a card is inserted and brings the driver in the BLK_READY state where it is possible to perform read and write operations.
| [in] | sdcp | pointer to the SDCDriverobject | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 623 of file hal_sdc.c.
References _mmcsd_get_capacity(), _mmcsd_get_capacity_ext(), _mmcsd_get_slice(), BLK_ACTIVE, BLK_CONNECTING, BLK_READY, SDCDriver::cardmode, SDCDriver::config, detect_bus_clk(), mmc_init(), mmc_set_bus_width(), MMCSD_BLOCK_SIZE, MMCSD_CSD_MMC_CSD_STRUCTURE_SLICE, MMCSD_R1_ERROR, mode_detect(), osalDbgAssert, osalDbgCheck, SDCDriver::rca, SDCConfig::scratchpad, sdc_init(), sdc_lld_send_cmd_long_crc(), sdc_lld_send_cmd_none(), sdc_lld_send_cmd_short_crc(), sdc_lld_set_data_clk(), sdc_lld_start_clk(), sdc_lld_stop_clk(), and sdc_set_bus_width().

| bool sdcDisconnect | ( | SDCDriver * | sdcp | ) | 
Brings the driver in a state safe for card removal.
| [in] | sdcp | pointer to the SDCDriverobject | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 762 of file hal_sdc.c.
References _sdc_wait_for_transfer_state(), BLK_ACTIVE, BLK_DISCONNECTING, BLK_READY, osalDbgAssert, osalDbgCheck, osalSysLock(), osalSysUnlock(), and sdc_lld_stop_clk().

| bool sdcRead | ( | SDCDriver * | sdcp, | 
| uint32_t | startblk, | ||
| uint8_t * | buf, | ||
| uint32_t | n | ||
| ) | 
Reads one or more blocks.
BLK_READY state after a successful sdcConnect() invocation.| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | startblk | first block to read | 
| [out] | buf | pointer to the read buffer | 
| [in] | n | number of blocks to read | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 805 of file hal_sdc.c.
References BLK_READING, BLK_READY, SDCDriver::errors, osalDbgAssert, osalDbgCheck, and sdc_lld_read().

| bool sdcWrite | ( | SDCDriver * | sdcp, | 
| uint32_t | startblk, | ||
| const uint8_t * | buf, | ||
| uint32_t | n | ||
| ) | 
Writes one or more blocks.
BLK_READY state after a successful sdcConnect() invocation.| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | startblk | first block to write | 
| [out] | buf | pointer to the write buffer | 
| [in] | n | number of blocks to write | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 842 of file hal_sdc.c.
References BLK_READY, BLK_WRITING, SDCDriver::errors, osalDbgAssert, osalDbgCheck, and sdc_lld_write().

| sdcflags_t sdcGetAndClearErrors | ( | SDCDriver * | sdcp | ) | 
Returns the errors mask associated to the previous operation.
| [in] | sdcp | pointer to the SDCDriverobject | 
Definition at line 872 of file hal_sdc.c.
References BLK_READY, SDCDriver::errors, osalDbgAssert, osalDbgCheck, osalSysLock(), and osalSysUnlock().

| bool sdcSync | ( | SDCDriver * | sdcp | ) | 
Waits for card idle condition.
| [in] | sdcp | pointer to the SDCDriverobject | 
| HAL_SUCCESS | the operation succeeded. | 
| HAL_FAILED | the operation failed. | 
Definition at line 896 of file hal_sdc.c.
References BLK_READY, BLK_SYNCING, osalDbgCheck, and sdc_lld_sync().

| bool sdcGetInfo | ( | SDCDriver * | sdcp, | 
| BlockDeviceInfo * | bdip | ||
| ) | 
Returns the media info.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [out] | bdip | pointer to a BlockDeviceInfostructure | 
| HAL_SUCCESS | the operation succeeded. | 
| HAL_FAILED | the operation failed. | 
Definition at line 927 of file hal_sdc.c.
References BlockDeviceInfo::blk_num, BLK_READY, BlockDeviceInfo::blk_size, MMCSD_BLOCK_SIZE, and osalDbgCheck.
| bool sdcErase | ( | SDCDriver * | sdcp, | 
| uint32_t | startblk, | ||
| uint32_t | endblk | ||
| ) | 
Erases the supplied blocks.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | startblk | starting block number | 
| [in] | endblk | ending block number | 
| HAL_SUCCESS | the operation succeeded. | 
| HAL_FAILED | the operation failed. | 
Definition at line 954 of file hal_sdc.c.
References _sdc_wait_for_transfer_state(), BLK_READY, BLK_WRITING, SDCDriver::cardmode, MMCSD_BLOCK_SIZE, MMCSD_R1_ERROR, osalDbgAssert, osalDbgCheck, and sdc_lld_send_cmd_short_crc().

| void sdc_lld_init | ( | void | ) | 
Low level SDC driver initialization.
Definition at line 65 of file hal_sdc_lld.c.
References sdcObjectInit().
Referenced by sdcInit().

| void sdc_lld_start | ( | SDCDriver * | sdcp | ) | 
Configures and activates the SDC peripheral.
| [in] | sdcp | pointer to the SDCDriverobject | 
Definition at line 79 of file hal_sdc_lld.c.
References BLK_STOP.
Referenced by sdcStart().
| void sdc_lld_stop | ( | SDCDriver * | sdcp | ) | 
Deactivates the SDC peripheral.
| [in] | sdcp | pointer to the SDCDriverobject | 
Definition at line 93 of file hal_sdc_lld.c.
References BLK_STOP.
Referenced by sdcStop().
| void sdc_lld_start_clk | ( | SDCDriver * | sdcp | ) | 
Starts the SDIO clock and sets it to init mode (400kHz or less).
| [in] | sdcp | pointer to the SDCDriverobject | 
Definition at line 107 of file hal_sdc_lld.c.
Referenced by sdcConnect().
| void sdc_lld_set_data_clk | ( | SDCDriver * | sdcp, | 
| sdcbusclk_t | clk | ||
| ) | 
Sets the SDIO clock to data mode (25MHz or less).
| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | clk | the clock mode | 
Definition at line 120 of file hal_sdc_lld.c.
Referenced by sdcConnect().
| void sdc_lld_stop_clk | ( | SDCDriver * | sdcp | ) | 
Stops the SDIO clock.
| [in] | sdcp | pointer to the SDCDriverobject | 
Definition at line 133 of file hal_sdc_lld.c.
Referenced by sdcConnect(), and sdcDisconnect().
| void sdc_lld_set_bus_mode | ( | SDCDriver * | sdcp, | 
| sdcbusmode_t | mode | ||
| ) | 
Switches the bus to 4 bits mode.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | mode | bus mode | 
Definition at line 146 of file hal_sdc_lld.c.
References osalDbgAssert.
Referenced by mmc_set_bus_width(), and sdc_set_bus_width().
| void sdc_lld_send_cmd_none | ( | SDCDriver * | sdcp, | 
| uint8_t | cmd, | ||
| uint32_t | arg | ||
| ) | 
Sends an SDIO command with no response expected.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | cmd | card command | 
| [in] | arg | command argument | 
Definition at line 175 of file hal_sdc_lld.c.
Referenced by mode_detect(), and sdcConnect().
| bool sdc_lld_send_cmd_short | ( | SDCDriver * | sdcp, | 
| uint8_t | cmd, | ||
| uint32_t | arg, | ||
| uint32_t * | resp | ||
| ) | 
Sends an SDIO command with a short response expected.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | cmd | card command | 
| [in] | arg | command argument | 
| [out] | resp | pointer to the response buffer (one word) | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 197 of file hal_sdc_lld.c.
Referenced by mmc_init(), and sdc_init().
| bool sdc_lld_send_cmd_short_crc | ( | SDCDriver * | sdcp, | 
| uint8_t | cmd, | ||
| uint32_t | arg, | ||
| uint32_t * | resp | ||
| ) | 
Sends an SDIO command with a short response expected and CRC.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | cmd | card command | 
| [in] | arg | command argument | 
| [out] | resp | pointer to the response buffer (one word) | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 222 of file hal_sdc_lld.c.
Referenced by _sdc_wait_for_transfer_state(), mmc_detect_bus_clk(), mmc_set_bus_width(), mode_detect(), sdc_init(), sdc_set_bus_width(), sdcConnect(), and sdcErase().
| bool sdc_lld_send_cmd_long_crc | ( | SDCDriver * | sdcp, | 
| uint8_t | cmd, | ||
| uint32_t | arg, | ||
| uint32_t * | resp | ||
| ) | 
Sends an SDIO command with a long response expected and CRC.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | cmd | card command | 
| [in] | arg | command argument | 
| [out] | resp | pointer to the response buffer (four words) | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 247 of file hal_sdc_lld.c.
Referenced by sdcConnect().
| bool sdc_lld_read | ( | SDCDriver * | sdcp, | 
| uint32_t | startblk, | ||
| uint8_t * | buf, | ||
| uint32_t | n | ||
| ) | 
Reads one or more blocks.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | startblk | first block to read | 
| [out] | buf | pointer to the read buffer | 
| [in] | n | number of blocks to read | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 272 of file hal_sdc_lld.c.
Referenced by sdcRead().
| bool sdc_lld_write | ( | SDCDriver * | sdcp, | 
| uint32_t | startblk, | ||
| const uint8_t * | buf, | ||
| uint32_t | n | ||
| ) | 
Writes one or more blocks.
| [in] | sdcp | pointer to the SDCDriverobject | 
| [in] | startblk | first block to write | 
| [out] | buf | pointer to the write buffer | 
| [in] | n | number of blocks to write | 
| HAL_SUCCESS | operation succeeded. | 
| HAL_FAILED | operation failed. | 
Definition at line 297 of file hal_sdc_lld.c.
Referenced by sdcWrite().
| bool sdc_lld_sync | ( | SDCDriver * | sdcp | ) | 
Waits for card idle condition.
| [in] | sdcp | pointer to the SDCDriverobject | 
| HAL_SUCCESS | the operation succeeded. | 
| HAL_FAILED | the operation failed. | 
Definition at line 319 of file hal_sdc_lld.c.
Referenced by sdcSync().
| 
 | static | 
Virtual methods table.
Definition at line 74 of file hal_sdc.c.
Referenced by sdcObjectInit().
| SDCDriver SDCD1 | 
SDCD1 driver identifier.
Definition at line 41 of file hal_sdc_lld.c.