HPM SDK
HPMicro Software Development Kit
hpm_sdmmc_common.h File Reference
#include "hpm_common.h"
#include "hpm_sdmmc_card.h"
#include "hpm_sdmmc_host.h"

Go to the source code of this file.

Macros

#define SDMMC_CLOCK_400KHZ   (400000UL)
 
#define SD_CLOCK_25MHZ   (25000000UL)
 
#define SD_CLOCK_50MHZ   (50000000UL)
 
#define SD_CLOCK_100MHZ   (100000000UL)
 
#define SD_CLOCK_208MHZ   (208000000UL)
 
#define MMC_CLOCK_26MHz   (26000000UL)
 
#define MMC_CLOCK_52MHz   (52000000UL)
 
#define MMC_CLOCK_DDR52   (52000000UL)
 
#define MMC_CLOCK_HS200   (200000000UL)
 
#define MMC_CLOCK_HS400   (200000000UL)
 
#define HPM_SDMMC_MALLOC   malloc
 
#define HPM_SDMMC_FREE   free
 

Enumerations

enum  {
  sdmmc_state_idle = 0 , sdmmc_state_ready = 1 , sdmmc_state_identify = 2 , sdmmc_state_standby = 3 ,
  sdmmc_state_transfer = 4 , sdmmc_state_send_data = 5 , sdmmc_state_receive_data = 6 , sdmmc_state_program = 7 ,
  sdmmc_state_disconnect = 8
}
 
enum  sdmmc_operation_voltage_t { sdmmc_operation_voltage_1v8 = 5 , sdmmc_operation_voltage_3v0 = 6 , sdmmc_operation_voltage_3v3 = 7 }
 
enum  sdmmc_resp_type_t {
  sdmmc_resp_none = 0 , sdmmc_resp_r1 , sdmmc_resp_r1b , sdmmc_resp_r2 ,
  sdmmc_resp_r3 , sdmmc_resp_r4 , sdmmc_resp_r5 , sdmmc_resp_r5b ,
  sdmmc_resp_r6 , sdmmc_resp_r7
}
 
enum  {
  status_sdmmc_card_not_support = MAKE_STATUS(status_group_sdmmc, 0) , status_sdmmc_wait_card_insert_timeout = MAKE_STATUS(status_group_sdmmc, 1) , status_sdmmc_no_sd_card_inserted = MAKE_STATUS(status_group_sdmmc, 2) , status_sdmmc_device_init_required = MAKE_STATUS(status_group_sdmmc, 3) ,
  status_sdmmc_wait_busy_timeout = MAKE_STATUS(status_group_sdmmc, 4)
}
 

Functions

hpm_stat_t sdmmc_go_idle_state (sdmmc_host_t *host, uint32_t argument)
 Switch device to Idle state. More...
 
hpm_stat_t sdmmc_go_inactive_state (sdmmc_host_t *host, uint16_t relative_addr)
 Switch device to Inactive state. More...
 
hpm_stat_t sdmmc_select_card (sdmmc_host_t *host, uint16_t relative_addr, bool is_selected)
 Select/De-select the device. More...
 
hpm_stat_t sdmmc_send_application_command (sdmmc_host_t *host, uint16_t relative_addr)
 Send Application Command. More...
 
hpm_stat_t sdmmc_set_block_count (sdmmc_host_t *host, uint32_t block_count)
 Set block count. More...
 
hpm_stat_t sdmmc_set_block_size (sdmmc_host_t *host, uint32_t block_size)
 Set Block size. More...
 
hpm_stat_t sdmmc_enable_auto_tuning (const sdmmc_host_t *host)
 Enable Auto Tuning mode. More...
 
uint32_t extract_csd_field (const uint32_t *raw_csd, uint8_t end_offset, uint8_t start_offset)
 Extract Fields from raw CSD data. More...
 
uint32_t sdmmc_get_sys_addr (const sdmmc_host_t *host, uint32_t addr)
 Get System address. More...