SD card interface functions for sam0 class devices. More...
SD card interface functions for sam0 class devices.
Definition in file sdhc.h.
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. | |