HPM SDK
HPMicro Software Development Kit
hpm_sdmmc_host.c File Reference
#include "hpm_sdmmc_common.h"
#include "hpm_sdmmc_host.h"
#include "board.h"

Macros

#define HPM_SDMMC_HOST_TIMEOUT_DEFAULT   (1000UL)
 

Functions

static void sdmmchost_power_control (const sdmmc_host_t *host, hpm_sdmmc_power_option_t option)
 
static void sdmmchost_switch_to_3v3_as_needed (const sdmmc_host_t *host)
 
static hpm_stat_t sdmmchost_check_host_availability (sdmmc_host_t *host)
 
void sdmmchost_delay_ms (const sdmmc_host_t *host, uint32_t ms)
 Host delay. More...
 
hpm_stat_t sdmmchost_init (sdmmc_host_t *host)
 SDMMC Host Initialization. More...
 
void sdmmchost_vsel_pin_control (const sdmmc_host_t *host, hpm_sdmmc_io_volt_t io_volt)
 Control the Voltage selection pin. More...
 
hpm_stat_t sdmmchost_switch_to_1v8 (sdmmc_host_t *host)
 Switch the Host to 1.8V IO voltage. More...
 
void sdmmchost_deinit (sdmmc_host_t *host)
 Deinitialize the host. More...
 
void sdmmchost_reset (const sdmmc_host_t *host)
 Reset the host. More...
 
void sdmmchost_enable_emmc_support (const sdmmc_host_t *host, bool enable)
 Enable the eMMC support on the host. More...
 
bool sdmmchost_is_card_detected (const sdmmc_host_t *host)
 Check whether the card is detected or not. More...
 
void sdmmchost_set_card_bus_width (sdmmc_host_t *host, sdmmc_buswidth_t bus_width)
 Set the card bus width. More...
 
uint32_t sdmmchost_set_card_clock (sdmmc_host_t *host, uint32_t freq, bool clock_inverse)
 Set the Card clock. More...
 
void sdmmchost_wait_card_active (const sdmmc_host_t *host)
 Wait until the card is active. More...
 
static hpm_stat_t sdmmchost_wait_command_done (const sdmmc_host_t *host, uint32_t timeout_ms)
 
static hpm_stat_t sdmmchost_wait_xfer_done (sdmmc_host_t *host, uint32_t timeout_ms)
 
static hpm_stat_t sdmmchost_wait_idle (const sdmmc_host_t *host)
 
hpm_stat_t sdmmchost_send_command (sdmmc_host_t *host, const sdmmchost_cmd_t *cmd)
 Send command via the host. More...
 
hpm_stat_t sdmmchost_transfer (sdmmc_host_t *host, const sdmmchost_xfer_t *content)
 Transfer data via the host. More...
 
hpm_stat_t sdmmchost_set_speed_mode (const sdmmc_host_t *host, sdmmc_speed_mode_t speed_mode)
 Set the speed mode via the Host. More...
 
hpm_stat_t sdmmchost_error_recovery (sdmmc_host_t *host, sdmmchost_cmd_t *cmd)
 Trigger the Error recovery via the Host. More...
 
void sdmmchost_set_cardclk_delay_chain (const sdmmc_host_t *host)
 Set the Card clock delay chain for the host. More...
 
bool sdmmchost_is_8bit_supported (const sdmmc_host_t *host)
 
bool sdmmchost_is_voltage_switch_supported (const sdmmc_host_t *host)
 Check whether the host support voltage switch. More...
 
void sdmmchost_init_io (sdmmc_host_t *host, hpm_sdmmc_operation_mode_t operation_mode)
 Initialize the Host IO according to the operation mode. More...
 
void sdmmchost_enable_enhanced_data_strobe (const sdmmc_host_t *host, bool enable)
 Enable the enhanced data strboe. More...
 
void sdmmchost_set_data_strobe_delay (const sdmmc_host_t *host)
 Set the Data strobe delay for Host. More...
 
void sdmmchost_select_voltage (sdmmc_host_t *host, hpm_sdmmc_io_volt_t io_volt)
 Select the IO voltage. More...
 
ATTR_RAMFUNC void sdmmchost_irq_handler (sdmmc_host_t *host)
 THe Host IRQ Handler. More...
 
void sdmmchost_enable_sdio_interrupt (sdmmc_host_t *host, bool enable)
 Enable or disable SDIO interrupt on the SDMMC host controller. More...
 
void sdmmchost_register_sdio_callback (sdmmc_host_t *host, void(*sdio_irq_callback)(void *param), void *param)
 Registers an SDIO interrupt callback function for the SDMMC host controller. More...
 
uint32_t sdmmchost_get_data_pin_level (sdmmc_host_t *host)
 Return the data pin level. More...
 

Macro Definition Documentation

◆ HPM_SDMMC_HOST_TIMEOUT_DEFAULT

#define HPM_SDMMC_HOST_TIMEOUT_DEFAULT   (1000UL)

Function Documentation

◆ sdmmchost_check_host_availability()

static hpm_stat_t sdmmchost_check_host_availability ( sdmmc_host_t host)
static

◆ sdmmchost_is_8bit_supported()

bool sdmmchost_is_8bit_supported ( const sdmmc_host_t host)

◆ sdmmchost_power_control()

void sdmmchost_power_control ( const sdmmc_host_t host,
hpm_sdmmc_power_option_t  option 
)
static

◆ sdmmchost_switch_to_3v3_as_needed()

static void sdmmchost_switch_to_3v3_as_needed ( const sdmmc_host_t host)
static

◆ sdmmchost_wait_command_done()

static hpm_stat_t sdmmchost_wait_command_done ( const sdmmc_host_t host,
uint32_t  timeout_ms 
)
static

◆ sdmmchost_wait_idle()

static hpm_stat_t sdmmchost_wait_idle ( const sdmmc_host_t host)
static

◆ sdmmchost_wait_xfer_done()

static hpm_stat_t sdmmchost_wait_xfer_done ( sdmmc_host_t host,
uint32_t  timeout_ms 
)
static