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)   | |
| #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.   | |
| bool | sdhc_send_cmd (sdhc_state_t *state, uint32_t cmd, uint32_t arg) | 
| Send a command to the SD card.   | |
| int | sdhc_read_blocks (sdhc_state_t *state, uint32_t block, void *dst, uint16_t num) | 
| Read blocks from the SD card into memory.   | |
| int | sdhc_write_blocks (sdhc_state_t *state, uint32_t block, const void *src, uint16_t num) | 
| Write memory to SD card blocks.   | |
| int | sdhc_erase_blocks (sdhc_state_t *state, uint32_t block, uint16_t num) | 
| Erase memory from SD card blocks.   | |
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.   | |