ChibiOS 21.11.4
|
SDC Driver code. More...
Go to the source code of this file.
Enumerations | |
enum | mmc_switch_t { MMC_SWITCH_COMMAND_SET = 0 , MMC_SWITCH_SET_BITS = 1 , MMC_SWITCH_CLEAR_BITS = 2 , MMC_SWITCH_WRITE_BYTE = 3 } |
MMC switch mode. More... | |
enum | sd_switch_t { SD_SWITCH_CHECK = 0 , SD_SWITCH_SET = 1 } |
SDC switch mode. More... | |
enum | sd_switch_function_t { SD_SWITCH_FUNCTION_SPEED = 0 , SD_SWITCH_FUNCTION_CMD_SYSTEM = 1 , SD_SWITCH_FUNCTION_DRIVER_STRENGTH = 2 , SD_SWITCH_FUNCTION_CURRENT_LIMIT = 3 } |
SDC switch function. More... |
Functions | |
static bool | mode_detect (SDCDriver *sdcp) |
Detects card mode. | |
static bool | mmc_init (SDCDriver *sdcp) |
Init procedure for MMC. | |
static bool | sdc_init (SDCDriver *sdcp) |
Init procedure for SDC. | |
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. | |
static uint32_t | sdc_cmd6_construct (sd_switch_t mode, sd_switch_function_t function, uint32_t value) |
Constructs CMD6 argument for SDC. | |
static uint16_t | sdc_cmd6_extract_info (sd_switch_function_t function, const uint8_t *buf) |
Extracts information from CMD6 answer. | |
static bool | sdc_cmd6_check_status (sd_switch_function_t function, const uint8_t *buf) |
Checks status after switching using CMD6. | |
static bool | sdc_detect_bus_clk (SDCDriver *sdcp, sdcbusclk_t *clk) |
Reads supported bus clock and switch SDC to appropriate mode. | |
static bool | mmc_detect_bus_clk (SDCDriver *sdcp, sdcbusclk_t *clk) |
Reads supported bus clock and switch MMC to appropriate mode. | |
static bool | detect_bus_clk (SDCDriver *sdcp, sdcbusclk_t *clk) |
Reads supported bus clock and switch card to appropriate mode. | |
static bool | sdc_set_bus_width (SDCDriver *sdcp) |
Sets bus width for SDC. | |
static bool | mmc_set_bus_width (SDCDriver *sdcp) |
Sets bus width for MMC. | |
static bool | _sdc_wait_for_transfer_state_internal (SDCDriver *sdcp, bool crc_check) |
Wait for the card to complete pending operations. | |
bool | _sdc_wait_for_transfer_state (SDCDriver *sdcp) |
Wait for the card to complete pending operations with CRC check. | |
bool | _sdc_wait_for_transfer_state_nocrc (SDCDriver *sdcp) |
Wait for the card to complete pending operations without CRC check. | |
void | sdcInit (void) |
SDC Driver initialization. | |
void | sdcObjectInit (SDCDriver *sdcp) |
Initializes the standard part of a SDCDriver structure. | |
msg_t | sdcStart (SDCDriver *sdcp, const SDCConfig *config) |
Configures and activates the SDC peripheral. | |
void | sdcStop (SDCDriver *sdcp) |
Deactivates the SDC peripheral. | |
bool | sdcConnect (SDCDriver *sdcp) |
Performs the initialization procedure on the inserted card. | |
bool | sdcDisconnect (SDCDriver *sdcp) |
Brings the driver in a state safe for card removal. | |
bool | sdcRead (SDCDriver *sdcp, uint32_t startblk, uint8_t *buf, uint32_t n) |
Reads one or more blocks. | |
bool | sdcWrite (SDCDriver *sdcp, uint32_t startblk, const uint8_t *buf, uint32_t n) |
Writes one or more blocks. | |
sdcflags_t | sdcGetAndClearErrors (SDCDriver *sdcp) |
Returns the errors mask associated to the previous operation. | |
bool | sdcSync (SDCDriver *sdcp) |
Waits for card idle condition. | |
bool | sdcGetInfo (SDCDriver *sdcp, BlockDeviceInfo *bdip) |
Returns the media info. | |
bool | sdcErase (SDCDriver *sdcp, uint32_t startblk, uint32_t endblk) |
Erases the supplied blocks. |
Variables | |
static const struct SDCDriverVMT | sdc_vmt |
Virtual methods table. |
SDC Driver code.
Definition in file hal_sdc.c.