HPM SDK
HPMicro Software Development Kit
hpm_sdmmc_sdio.c File Reference
#include "hpm_sdmmc_common.h"
#include "hpm_sdmmc_sdio.h"
#include "hpm_l1c_drv.h"

Functions

static hpm_stat_t sdio_send_if_cond (sdio_card_t *card)
 
static hpm_stat_t sdio_io_send_op_if_cond (sdio_card_t *card, uint32_t arg)
 
static hpm_stat_t sdio_send_rca (sdio_card_t *card)
 
static hpm_stat_t sdio_probe_sdio_card (sdio_card_t *card)
 
static hpm_stat_t sdio_read_cccr (sdio_card_t *card)
 
static hpm_stat_t sdio_set_timing (sdio_card_t *card)
 
static hpm_stat_t sdio_set_bus_width (sdio_card_t *card)
 
static void sdio_switch_to_1v8 (sdio_card_t *card)
 
static hpm_stat_t sdio_send_command (sdio_card_t *card, sdmmchost_cmd_t *cmd)
 
static hpm_stat_t sdio_transfer (sdio_card_t *card, sdmmchost_xfer_t *xfer)
 
static hpm_stat_t sdio_error_recovery (sdio_card_t *card)
 
hpm_stat_t sdio_read_cis (sdio_card_t *card, uint32_t cis_ptr, sdio_cis_t *cis, bool keep_tpl_raw_data)
 Read Card Information Structure (CIS) More...
 
hpm_stat_t sdio_read_fbr (sdio_card_t *card, uint32_t func_idx, sdio_fbr_t *fbr)
 Read the specified Function Basic Register. More...
 
hpm_stat_t sdio_io_rw_direct (sdio_card_t *card, bool write, uint32_t func_idx, uint32_t reg_addr, uint8_t *pdata, bool read_after_write)
 Execute SDIO_IO_RW_DIRECT command (CMD52) More...
 
hpm_stat_t sdio_set_block_size (sdio_card_t *card, uint32_t func_idx, uint32_t block_size)
 Set the Block size for specified Function. More...
 
hpm_stat_t sdio_io_read_byte (sdio_card_t *card, uint32_t func_num, uint32_t reg, uint8_t *pdata)
 Read 1 byte from the address for specified SDIO Function. More...
 
hpm_stat_t sdio_io_write_byte (sdio_card_t *card, uint32_t func_num, uint32_t reg, uint8_t byte_data)
 Write 1 byte to the address for specified SDIO Function. More...
 
hpm_stat_t sdio_io_rw_extend (sdio_card_t *card, bool write, uint32_t func_idx, uint32_t reg_addr, uint32_t op_code, uint8_t *pbuf, uint32_t blocks, uint32_t block_size)
 Execute SDIO_IO_RW_EXTEND command (CMD53) More...
 
hpm_stat_t sdio_io_write_multi_bytes_to_fifo (sdio_card_t *card, uint32_t func_idx, uint32_t reg_addr, uint8_t *pbuf, uint32_t length)
 Write multiple bytes to the FIFO address for specified SDIO Function. More...
 
hpm_stat_t sdio_io_read_multi_bytes_from_fifo (sdio_card_t *card, uint32_t func_idx, uint32_t reg_addr, uint8_t *pbuf, uint32_t length)
 Read multiple bytes from the FIFO address for specified SDIO Function. More...
 
hpm_stat_t sdio_io_write_incr_multi_bytes (sdio_card_t *card, uint32_t func_idx, uint32_t reg_addr, uint8_t *pbuf, uint32_t length)
 Write multiple bytes to the address for specified SDIO Function. More...
 
hpm_stat_t sdio_io_read_incr_multi_bytes (sdio_card_t *card, uint32_t func_idx, uint32_t reg_addr, uint8_t *pbuf, uint32_t length)
 Read multiple bytes from the address for specified SDIO Function. More...
 
hpm_stat_t sdio_init (sdio_card_t *card)
 Initialize SDIO device. More...
 
void sdio_deinit (sdio_card_t *card)
 De-initialize SDIO device. More...
 
hpm_stat_t sdio_card_init (sdio_card_t *card)
 Initialize SDIO card. More...
 
hpm_stat_t sdio_card_deinit (sdio_card_t *card)
 De-Initialize SDIO card. More...
 
hpm_stat_t sdio_get_max_transfer_speed (sdio_card_t *card)
 Get the maximum transfer speed. More...
 
hpm_stat_t sdio_init_funcs (sdio_card_t *card)
 Initialize SDIO functions. More...
 
hpm_stat_t sdio_deinit_funcs (sdio_card_t *card)
 De-Initialize SDIO functions. More...
 
hpm_stat_t sdio_host_init (sdio_card_t *card)
 Initialize SDIO host. More...
 
hpm_stat_t sdio_host_deinit (sdio_card_t *card)
 De-initialize SDIO host. More...
 
const char * sdio_get_func_if_code_str (uint8_t std_func_if_code)
 Get the string for specified function interface code. More...
 
hpm_stat_t sdio_enable_interrupt (sdio_card_t *card)
 Enables SDIO interrupts for the specified card. More...
 
hpm_stat_t sdio_disable_interrupt (sdio_card_t *card)
 Disables SDIO interrupts for the specified card. More...
 
hpm_stat_t sdio_register_irq_callback (sdio_card_t *card, void(*sdio_irq_callback)(void *param), void *sdio_irq_param)
 Registers an interrupt callback function for an SDIO card. More...
 

Function Documentation

◆ sdio_error_recovery()

static hpm_stat_t sdio_error_recovery ( sdio_card_t card)
static

◆ sdio_io_send_op_if_cond()

static hpm_stat_t sdio_io_send_op_if_cond ( sdio_card_t card,
uint32_t  arg 
)
static

◆ sdio_probe_sdio_card()

static hpm_stat_t sdio_probe_sdio_card ( sdio_card_t card)
static

◆ sdio_read_cccr()

static hpm_stat_t sdio_read_cccr ( sdio_card_t card)
static

◆ sdio_send_command()

static hpm_stat_t sdio_send_command ( sdio_card_t card,
sdmmchost_cmd_t cmd 
)
static

◆ sdio_send_if_cond()

static hpm_stat_t sdio_send_if_cond ( sdio_card_t card)
static

◆ sdio_send_rca()

static hpm_stat_t sdio_send_rca ( sdio_card_t card)
static

◆ sdio_set_bus_width()

static hpm_stat_t sdio_set_bus_width ( sdio_card_t card)
static

◆ sdio_set_timing()

static hpm_stat_t sdio_set_timing ( sdio_card_t card)
static

◆ sdio_switch_to_1v8()

static void sdio_switch_to_1v8 ( sdio_card_t card)
static

◆ sdio_transfer()

static hpm_stat_t sdio_transfer ( sdio_card_t card,
sdmmchost_xfer_t xfer 
)
static