8 #ifndef HPM_SDMMC_COMMON_H
9 #define HPM_SDMMC_COMMON_H
20 #define SDMMC_CLOCK_400KHZ (400000UL)
21 #define SD_CLOCK_25MHZ (25000000UL)
22 #define SD_CLOCK_50MHZ (50000000UL)
23 #define SD_CLOCK_100MHZ (100000000UL)
24 #define SD_CLOCK_208MHZ (208000000UL)
26 #define MMC_CLOCK_26MHz (26000000UL)
27 #define MMC_CLOCK_52MHz (52000000UL)
28 #define MMC_CLOCK_DDR52 (52000000UL)
29 #define MMC_CLOCK_HS200 (200000000UL)
30 #define MMC_CLOCK_HS400 (200000000UL)
135 uint32_t
extract_csd_field(
const uint32_t *raw_csd, uint8_t end_offset, uint8_t start_offset);
uint32_t hpm_stat_t
Definition: hpm_common.h:123
#define MAKE_STATUS(group, code)
Definition: hpm_common.h:132
@ status_group_sdmmc
Definition: hpm_common.h:166
sdmmc_operation_voltage_t
Definition: hpm_sdmmc_common.h:44
@ sdmmc_operation_voltage_3v0
Definition: hpm_sdmmc_common.h:46
@ sdmmc_operation_voltage_3v3
Definition: hpm_sdmmc_common.h:47
@ sdmmc_operation_voltage_1v8
Definition: hpm_sdmmc_common.h:45
@ sdmmc_state_standby
Definition: hpm_sdmmc_common.h:36
@ sdmmc_state_disconnect
Definition: hpm_sdmmc_common.h:41
@ sdmmc_state_identify
Definition: hpm_sdmmc_common.h:35
@ sdmmc_state_ready
Definition: hpm_sdmmc_common.h:34
@ sdmmc_state_program
Definition: hpm_sdmmc_common.h:40
@ sdmmc_state_receive_data
Definition: hpm_sdmmc_common.h:39
@ sdmmc_state_idle
Definition: hpm_sdmmc_common.h:33
@ sdmmc_state_send_data
Definition: hpm_sdmmc_common.h:38
@ sdmmc_state_transfer
Definition: hpm_sdmmc_common.h:37
hpm_stat_t sdmmc_send_application_command(sdmmc_host_t *host, uint16_t relative_addr)
Send Application Command.
Definition: hpm_sdmmc_common.c:76
uint32_t extract_csd_field(const uint32_t *raw_csd, uint8_t end_offset, uint8_t start_offset)
Extract Fields from raw CSD data.
Definition: hpm_sdmmc_common.c:161
hpm_stat_t sdmmc_select_card(sdmmc_host_t *host, uint16_t relative_addr, bool is_selected)
Select/De-select the device.
Definition: hpm_sdmmc_common.c:52
hpm_stat_t sdmmc_go_idle_state(sdmmc_host_t *host, uint32_t argument)
Switch device to Idle state.
Definition: hpm_sdmmc_common.c:12
hpm_stat_t sdmmc_enable_auto_tuning(sdmmc_host_t *host)
Enable Auto Tuning mode.
Definition: hpm_sdmmc_common.c:136
uint32_t sdmmc_get_sys_addr(sdmmc_host_t *host, uint32_t addr)
Get System address.
Definition: hpm_sdmmc_port.c:13
@ status_sdmmc_wait_busy_timeout
Definition: hpm_sdmmc_common.h:69
@ status_sdmmc_card_not_support
Definition: hpm_sdmmc_common.h:65
@ status_sdmmc_device_init_required
Definition: hpm_sdmmc_common.h:68
@ status_sdmmc_wait_card_insert_timeout
Definition: hpm_sdmmc_common.h:66
@ status_sdmmc_no_sd_card_inserted
Definition: hpm_sdmmc_common.h:67
hpm_stat_t sdmmc_set_block_count(sdmmc_host_t *host, uint32_t block_count)
Set block count.
Definition: hpm_sdmmc_common.c:96
hpm_stat_t sdmmc_go_inactive_state(sdmmc_host_t *host, uint16_t relative_addr)
Switch device to Inactive state.
Definition: hpm_sdmmc_common.c:32
sdmmc_resp_type_t
Definition: hpm_sdmmc_common.h:51
@ sdmmc_resp_r7
Definition: hpm_sdmmc_common.h:61
@ sdmmc_resp_none
Definition: hpm_sdmmc_common.h:52
@ sdmmc_resp_r6
Definition: hpm_sdmmc_common.h:60
@ sdmmc_resp_r1
Definition: hpm_sdmmc_common.h:53
@ sdmmc_resp_r5b
Definition: hpm_sdmmc_common.h:59
@ sdmmc_resp_r3
Definition: hpm_sdmmc_common.h:56
@ sdmmc_resp_r4
Definition: hpm_sdmmc_common.h:57
@ sdmmc_resp_r1b
Definition: hpm_sdmmc_common.h:54
@ sdmmc_resp_r2
Definition: hpm_sdmmc_common.h:55
@ sdmmc_resp_r5
Definition: hpm_sdmmc_common.h:58
hpm_stat_t sdmmc_set_block_size(sdmmc_host_t *host, uint32_t block_size)
Set Block size.
Definition: hpm_sdmmc_common.c:116
Definition: hpm_sdmmc_host.h:180