Common SPI interface for SD/MMC stack.
Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.
Macros | |
Return error codes | |
#define | SD_MMC_SPI_NO_ERR 0 |
#define | SD_MMC_SPI_ERR 1 |
#define | SD_MMC_SPI_ERR_RESP_TIMEOUT 2 |
#define | SD_MMC_SPI_ERR_RESP_BUSY_TIMEOUT 3 |
#define | SD_MMC_SPI_ERR_READ_TIMEOUT 4 |
#define | SD_MMC_SPI_ERR_WRITE_TIMEOUT 5 |
#define | SD_MMC_SPI_ERR_RESP_CRC 6 |
#define | SD_MMC_SPI_ERR_READ_CRC 7 |
#define | SD_MMC_SPI_ERR_WRITE_CRC 8 |
#define | SD_MMC_SPI_ERR_ILLEGAL_COMMAND 9 |
#define | SD_MMC_SPI_ERR_WRITE 10 |
#define | SD_MMC_SPI_ERR_OUT_OF_RANGE 11 |
Typedefs | |
typedef uint8_t | sd_mmc_spi_errno_t |
Type of return error code. More... | |
Functions | |
bool | sd_mmc_spi_adtc_start (sdmmc_cmd_def_t cmd, uint32_t arg, uint16_t block_size, uint16_t nb_block, bool access_block) |
Send a adtc command on the selected slot A adtc command is used for read/write access. More... | |
bool | sd_mmc_spi_adtc_stop (sdmmc_cmd_def_t cmd, uint32_t arg) |
Send a command to stop a adtc command on the selected slot. More... | |
void | sd_mmc_spi_deselect_device (uint8_t slot) |
Deselect a slot. More... | |
static __inline__ uint8_t | sd_mmc_spi_get_bus_width (uint8_t slot) |
Return the maximum bus width of a slot. More... | |
sd_mmc_spi_errno_t | sd_mmc_spi_get_errno (void) |
Return the error code of last function. More... | |
uint32_t | sd_mmc_spi_get_response (void) |
Return the 32 bits response of the last command. More... | |
static __inline__ void | sd_mmc_spi_get_response_128 (uint8_t *resp) |
void | sd_mmc_spi_init (void) |
Initializes the low level driver. More... | |
static __inline__ bool | sd_mmc_spi_is_high_speed_capable (void) |
Return the high speed capability of the driver. More... | |
bool | sd_mmc_spi_read_word (uint32_t *value) |
Read a word on the line. More... | |
void | sd_mmc_spi_select_device (uint8_t slot, uint32_t clock, uint8_t bus_width, bool high_speed) |
Select a slot and initialize it. More... | |
void | sd_mmc_spi_send_clock (void) |
Send 74 clock cycles on the line of selected slot Note: It is required after card plug and before card install. More... | |
bool | sd_mmc_spi_send_cmd (sdmmc_cmd_def_t cmd, uint32_t arg) |
Send a command on the selected slot. More... | |
bool | sd_mmc_spi_start_read_blocks (void *dest, uint16_t nb_block) |
Start a read blocks transfer on the line Note: The driver will use the DMA available to speed up the transfer. More... | |
bool | sd_mmc_spi_start_write_blocks (const void *src, uint16_t nb_block) |
Start a write blocks transfer on the line Note: The driver will use the DMA available to speed up the transfer. More... | |
bool | sd_mmc_spi_wait_end_of_read_blocks (void) |
Wait the end of transfer initiated by mci_start_read_blocks() More... | |
bool | sd_mmc_spi_wait_end_of_write_blocks (void) |
Wait the end of transfer initiated by mci_start_write_blocks() More... | |
bool | sd_mmc_spi_write_word (uint32_t value) |
Write a word on the line. More... | |