Classes | |
| struct | sd_mmc_card | 
| SD/MMC card information structure.  More... | |
Macros | |
| #define | driver_adtc_start ATPASTE2(driver, _adtc_start) | 
| #define | driver_adtc_stop ATPASTE2(driver, _send_cmd) | 
| #define | driver_deselect_device ATPASTE2(driver, _deselect_device) | 
| #define | driver_get_bus_width ATPASTE2(driver, _get_bus_width) | 
| #define | driver_get_response ATPASTE2(driver, _get_response) | 
| #define | driver_get_response_128 ATPASTE2(driver, _get_response_128) | 
| #define | driver_init ATPASTE2(driver, _init) | 
| #define | driver_is_high_speed_capable ATPASTE2(driver, _is_high_speed_capable) | 
| #define | driver_read_word ATPASTE2(driver, _read_word) | 
| #define | driver_select_device ATPASTE2(driver, _select_device) | 
| #define | driver_send_clock ATPASTE2(driver, _send_clock) | 
| #define | driver_send_cmd ATPASTE2(driver, _send_cmd) | 
| #define | driver_start_read_blocks ATPASTE2(driver, _start_read_blocks) | 
| #define | driver_start_write_blocks ATPASTE2(driver, _start_write_blocks) | 
| #define | driver_wait_end_of_read_blocks ATPASTE2(driver, _wait_end_of_read_blocks) | 
| #define | driver_wait_end_of_write_blocks ATPASTE2(driver, _wait_end_of_write_blocks) | 
| #define | driver_write_word ATPASTE2(driver, _write_word) | 
| #define | IS_SDIO() false | 
| #define | sd_mmc_debug(...) | 
| #define | SD_MMC_HSMCI_MEM_CNT 0 | 
| #define | sd_mmc_is_mci() (!sd_mmc_is_spi()) | 
| #define | SD_MMC_MCI_MEM_CNT 0 | 
| #define | SD_MMC_SPI_MEM_CNT 0 | 
| #define | SD_MMC_VOLTAGE_SUPPORT | 
| This SD MMC stack supports only the high voltage.  More... | |
Enumerations | |
| enum | card_state {  SD_MMC_CARD_STATE_READY = 0, SD_MMC_CARD_STATE_DEBOUNCE = 1, SD_MMC_CARD_STATE_INIT = 2, SD_MMC_CARD_STATE_UNUSABLE = 3, SD_MMC_CARD_STATE_NO_CARD = 4 }  | 
| SD/MMC card states.  More... | |
Functions | |
| sd_mmc_err_t | sd_mmc_check (uint8_t slot) | 
| Performs a card checks.  More... | |
| uint32_t | sd_mmc_get_capacity (uint8_t slot) | 
| Get the memory capacity.  More... | |
| card_type_t | sd_mmc_get_type (uint8_t slot) | 
| Get the card type.  More... | |
| card_version_t | sd_mmc_get_version (uint8_t slot) | 
| Get the card version.  More... | |
| void | sd_mmc_init (void) | 
| Initialize the SD/MMC stack and low level driver required.  More... | |
| sd_mmc_err_t | sd_mmc_init_read_blocks (uint8_t slot, uint32_t start, uint16_t nb_block) | 
| Initialize the read blocks of data from the card.  More... | |
| sd_mmc_err_t | sd_mmc_init_write_blocks (uint8_t slot, uint32_t start, uint16_t nb_block) | 
| Initialize the write blocks of data.  More... | |
| bool | sd_mmc_is_write_protected (uint8_t slot) | 
| Get the card write protection status.  More... | |
| uint8_t | sd_mmc_nb_slot (void) | 
| Return the number of slot available.  More... | |
| sd_mmc_err_t | sd_mmc_start_read_blocks (void *dest, uint16_t nb_block) | 
| Start the read blocks of data from the card.  More... | |
| sd_mmc_err_t | sd_mmc_start_write_blocks (const void *src, uint16_t nb_block) | 
| Start the write blocks of data.  More... | |
| sd_mmc_err_t | sd_mmc_wait_end_of_read_blocks (bool abort) | 
| Wait the end of read blocks of data from the card.  More... | |
| sd_mmc_err_t | sd_mmc_wait_end_of_write_blocks (bool abort) | 
| Wait the end of write blocks of data.  More... | |
Variables | |
| const uint32_t | mmc_trans_multipliers [16] | 
| MMC transfer multiplier factor codes (1/10) list.  More... | |
| static struct sd_mmc_card * | sd_mmc_card | 
| Pointer on current slot configurated.  More... | |
| static struct sd_mmc_card | sd_mmc_cards [SD_MMC_MEM_CNT] | 
| static uint16_t | sd_mmc_nb_block_remaining = 0 | 
| Number of block remaining to read or write on the current transfer.  More... | |
| static uint16_t | sd_mmc_nb_block_to_tranfer = 0 | 
| Number of block to read or write on the current transfer.  More... | |
| static uint8_t | sd_mmc_slot_sel | 
| Index of current slot configurated.  More... | |
| const uint32_t | sd_mmc_trans_units [7] | 
| SD/MMC transfer rate unit codes (10K) list.  More... | |
| const uint32_t | sd_trans_multipliers [16] | 
| SD transfer multiplier factor codes (1/10) list.  More... | |
MMC, SD and SDIO commands process | |
| static bool | mmc_spi_op_cond (void) | 
| Sends operation condition command and read OCR (SPI only)  More... | |
| static bool | mmc_mci_op_cond (void) | 
| Sends operation condition command and read OCR (MCI only)  More... | |
| static bool | sd_spi_op_cond (uint8_t v2) | 
| Ask to all cards to send their operations conditions (SPI only).  More... | |
| static bool | sd_mci_op_cond (uint8_t v2) | 
| Ask to all cards to send their operations conditions (MCI only).  More... | |
| static bool | sdio_op_cond (void) | 
| static bool | sdio_get_max_speed (void) | 
| static bool | sdio_cmd52_set_bus_width (void) | 
| static bool | sdio_cmd52_set_high_speed (void) | 
| static bool | sd_cm6_set_high_speed (void) | 
| CMD6 for SD - Switch card in high speed mode.  More... | |
| static bool | mmc_cmd6_set_bus_width (uint8_t bus_width) | 
| CMD6 for MMC - Switches the bus width mode.  More... | |
| static bool | mmc_cmd6_set_high_speed (void) | 
| CMD6 for MMC - Switches in high speed mode.  More... | |
| static bool | sd_cmd8 (uint8_t *v2) | 
| CMD8 for SD card - Send Interface Condition Command.  More... | |
| static bool | mmc_cmd8 (uint8_t *b_authorize_high_speed) | 
| CMD8 - The card sends its EXT_CSD register as a block of data.  More... | |
| static bool | sd_mmc_cmd9_spi (void) | 
| CMD9: Addressed card sends its card-specific data (CSD) on the CMD line spi.  More... | |
| static bool | sd_mmc_cmd9_mci (void) | 
| CMD9: Addressed card sends its card-specific data (CSD) on the CMD line mci.  More... | |
| static void | mmc_decode_csd (void) | 
| Decodes MMC CSD register.  More... | |
| static void | sd_decode_csd (void) | 
| Decodes SD CSD register.  More... | |
| static bool | sd_mmc_cmd13 (void) | 
| CMD13 - Addressed card sends its status register. This function waits the clear of the busy flag.  More... | |
| static bool | sd_acmd6 (void) | 
| ACMD6 - Define the data bus width to 4 bits bus.  More... | |
| static bool | sd_acmd51 (void) | 
| ACMD51 - Read the SD Configuration Register.  More... | |
Internal function to process the initialization and install | |
| static sd_mmc_err_t | sd_mmc_select_slot (uint8_t slot) | 
| Select a card slot and initialize the associated driver.  More... | |
| static void | sd_mmc_configure_slot (void) | 
| Configures the driver with the selected card configuration.  More... | |
| static void | sd_mmc_deselect_slot (void) | 
| Deselect the current card slot.  More... | |
| static bool | sd_mmc_spi_card_init (void) | 
| Initialize the SD card in SPI mode.  More... | |
| static bool | sd_mmc_mci_card_init (void) | 
| Initialize the SD card in MCI mode.  More... | |
| static bool | sd_mmc_spi_install_mmc (void) | 
| Initialize the MMC card in SPI mode.  More... | |
| static bool | sd_mmc_mci_install_mmc (void) | 
| Initialize the MMC card in MCI mode.  More... | |
Internal functions to manage a large timeout after a card insertion | |
| #define | SD_MMC_DEBOUNCE_TIMEOUT 1000 | 
| #define driver_deselect_device ATPASTE2(driver, _deselect_device) | 
| #define driver_get_bus_width ATPASTE2(driver, _get_bus_width) | 
| #define driver_get_response ATPASTE2(driver, _get_response) | 
| #define driver_get_response_128 ATPASTE2(driver, _get_response_128) | 
| #define driver_is_high_speed_capable ATPASTE2(driver, _is_high_speed_capable) | 
| #define driver_select_device ATPASTE2(driver, _select_device) | 
| #define driver_start_read_blocks ATPASTE2(driver, _start_read_blocks) | 
| #define driver_start_write_blocks ATPASTE2(driver, _start_write_blocks) | 
| #define driver_wait_end_of_read_blocks ATPASTE2(driver, _wait_end_of_read_blocks) | 
| #define driver_wait_end_of_write_blocks ATPASTE2(driver, _wait_end_of_write_blocks) | 
| #define SD_MMC_VOLTAGE_SUPPORT | 
This SD MMC stack supports only the high voltage.
| enum card_state | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
ACMD51 - Read the SD Configuration Register.
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
CMD8 for SD card - Send Interface Condition Command.
| v2 | Pointer to v2 flag to update | 
      
  | 
  static | 
      
  | 
  static | 
| sd_mmc_err_t sd_mmc_check | ( | uint8_t | slot | ) | 
Performs a card checks.
| slot | Card slot to use | 
| SD_MMC_OK | Card ready | 
| SD_MMC_INIT_ONGOING | Initialization on going | 
| SD_MMC_ERR_NO_CARD | Card not present in slot | 
| Other | value for error cases, see sd_mmc_err_t | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
| uint32_t sd_mmc_get_capacity | ( | uint8_t | slot | ) | 
| card_type_t sd_mmc_get_type | ( | uint8_t | slot | ) | 
| card_version_t sd_mmc_get_version | ( | uint8_t | slot | ) | 
| void sd_mmc_init | ( | void | ) | 
| sd_mmc_err_t sd_mmc_init_read_blocks | ( | uint8_t | slot, | 
| uint32_t | start, | ||
| uint16_t | nb_block | ||
| ) | 
Initialize the read blocks of data from the card.
| slot | Card slot to use | 
| start | Start block number to to read. | 
| nb_block | Total number of blocks to be read. | 
| sd_mmc_err_t sd_mmc_init_write_blocks | ( | uint8_t | slot, | 
| uint32_t | start, | ||
| uint16_t | nb_block | ||
| ) | 
Initialize the write blocks of data.
| slot | Card slot to use | 
| start | Start block number to be written. | 
| nb_block | Total number of blocks to be written. | 
| bool sd_mmc_is_write_protected | ( | uint8_t | slot | ) | 
      
  | 
  static | 
Initialize the SD card in MCI mode.
      
  | 
  static | 
Initialize the MMC card in MCI mode.
| uint8_t sd_mmc_nb_slot | ( | void | ) | 
      
  | 
  static | 
Select a card slot and initialize the associated driver.
| slot | Card slot number | 
| SD_MMC_ERR_SLOT | Wrong slot number | 
| SD_MMC_ERR_NO_CARD | No card present on slot | 
| SD_MMC_ERR_UNUSABLE | Unusable card | 
| SD_MMC_INIT_ONGOING | Card initialization requested | 
| SD_MMC_OK | Card present | 
      
  | 
  static | 
Initialize the SD card in SPI mode.
      
  | 
  static | 
Initialize the MMC card in SPI mode.
| sd_mmc_err_t sd_mmc_start_read_blocks | ( | void * | dest, | 
| uint16_t | nb_block | ||
| ) | 
Start the read blocks of data from the card.
| dest | Pointer to read buffer. | 
| nb_block | Number of blocks to be read. | 
| sd_mmc_err_t sd_mmc_start_write_blocks | ( | const void * | src, | 
| uint16_t | nb_block | ||
| ) | 
Start the write blocks of data.
| src | Pointer to write buffer. | 
| nb_block | Number of blocks to be written. | 
| sd_mmc_err_t sd_mmc_wait_end_of_read_blocks | ( | bool | abort | ) | 
Wait the end of read blocks of data from the card.
| abort | Abort reading process initialized by sd_mmc_init_read_blocks() after the reading issued by sd_mmc_start_read_blocks() is done | 
| sd_mmc_err_t sd_mmc_wait_end_of_write_blocks | ( | bool | abort | ) | 
Wait the end of write blocks of data.
| abort | Abort writing process initialized by sd_mmc_init_write_blocks() after the writing issued by sd_mmc_start_write_blocks() is done | 
      
  | 
  static | 
| const uint32_t mmc_trans_multipliers[16] | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
| const uint32_t sd_mmc_trans_units[7] |