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. | |