SD card interface functions for sam0 class devices. More...
SD card interface functions for sam0 class devices.
Definition in file sdhc.h.
 Include dependency graph for sdhc.h:
 This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | sdhc_state_t | 
| SD Card driver context.  More... | |
Macros | |
| #define | SD_MMC_BLOCK_SIZE 512 | 
| This SD stack uses the maximum block size authorized (512 bytes)  More... | |
| #define | SDHC_SLOW_CLOCK_HZ 400000 | 
| Clock frequency on init.  | |
| #define | SDHC_FAST_CLOCK_HZ 25000000 | 
| Clock frequency after init.  | |
Functions | |
| int | sdhc_init (sdhc_state_t *state) | 
| Initialize the SD host controller.  More... | |
| bool | sdhc_send_cmd (sdhc_state_t *state, uint32_t cmd, uint32_t arg) | 
| Send a command to the SD card.  More... | |
| int | sdhc_read_blocks (sdhc_state_t *state, uint32_t block, void *dst, uint16_t num) | 
| Read blocks from the SD card into memory.  More... | |
| int | sdhc_write_blocks (sdhc_state_t *state, uint32_t block, const void *src, uint16_t num) | 
| Write memory to SD card blocks.  More... | |
| int | sdhc_erase_blocks (sdhc_state_t *state, uint32_t block, uint16_t num) | 
| Erase memory from SD card blocks.  More... | |
Card Types | |
| #define | CARD_TYPE_UNKNOWN (0) | 
| Unknown type card.  | |
| #define | CARD_TYPE_SD (1 << 0) | 
| SD card.  | |
| #define | CARD_TYPE_MMC (1 << 1) | 
| MMC card.  | |
| #define | CARD_TYPE_SDIO (1 << 2) | 
| SDIO card.  | |
| #define | CARD_TYPE_HC (1 << 3) | 
| High capacity card.  | |
| #define | CARD_TYPE_SD_COMBO (CARD_TYPE_SD | CARD_TYPE_SDIO) | 
| SD combo card (io + memory)  | |
Card Versions | |
| #define | CARD_VER_UNKNOWN (0) | 
| Unknown card version.  | |
| #define | CARD_VER_SD_1_0 (0x10) | 
| SD version 1.0 and 1.01.  | |
| #define | CARD_VER_SD_1_10 (0x1A) | 
| SD version 1.10.  | |
| #define | CARD_VER_SD_2_0 (0X20) | 
| SD version 2.00.  | |
| #define | CARD_VER_SD_3_0 (0X30) | 
| SD version 3.0X.  | |
| #define | CARD_VER_MMC_1_2 (0x12) | 
| MMC version 1.2.  | |
| #define | CARD_VER_MMC_1_4 (0x14) | 
| MMC version 1.4.  | |
| #define | CARD_VER_MMC_2_2 (0x22) | 
| MMC version 2.2.  | |
| #define | CARD_VER_MMC_3 (0x30) | 
| MMC version 3.  | |
| #define | CARD_VER_MMC_4 (0x40) | 
| MMC version 4.  | |
Flags used to define MCI parser for SD/MMC command | |
| #define | MCI_RESP_PRESENT (1ul << 8) | 
| Have response.  | |
| #define | MCI_RESP_136 (1ul << 11) | 
| 136 bit response  | |
| #define | MCI_RESP_CRC (1ul << 12) | 
| Expect valid crc.  | |
| #define | MCI_RESP_BUSY (1ul << 13) | 
| Card may send busy.  | |
| #define | MCI_CMD_OPENDRAIN (1ul << 14) | 
| Open drain for a broadcast command.  | |
| #define | MCI_CMD_WRITE (1ul << 15) | 
| To signal a data write operation.  | |
| #define | MCI_CMD_SDIO_BYTE (1ul << 16) | 
| To signal a SDIO transfer in multi byte mode.  | |
| #define | MCI_CMD_SDIO_BLOCK (1ul << 17) | 
| To signal a SDIO transfer in block mode.  | |
| #define | MCI_CMD_STREAM (1ul << 18) | 
| To signal a data transfer in stream mode.  | |
| #define | MCI_CMD_SINGLE_BLOCK (1ul << 19) | 
| To signal a data transfer in single block mode.  | |
| #define | MCI_CMD_MULTI_BLOCK (1ul << 20) | 
| To signal a data transfer in multi block mode.  | |