8 #ifndef HPM_SDXC_SOC_DRV_H
9 #define HPM_SDXC_SOC_DRV_H
12 #include "hpm_sdxc_regs.h"
14 #if defined(__cplusplus)
24 (*reg) |= (1UL << 10);
41 for (
volatile uint32_t i = 0; i < 50000U; i++) {
59 return ((*reg) & (1UL << 28)) != 0U;
65 (void) delay_from_pad;
104 uint32_t num_delaycells = 1;
105 if (clock_freq <= 52000000) {
108 return num_delaycells;
117 #if defined(__cplusplus)
#define HPM_SDXC0
Definition: hpm_soc_ip.h:351
#define SDXC_SYS_CTRL_SD_CLK_EN_MASK
Definition: hpm_sdxc_regs.h:1087
static bool sdxc_is_ddr50_supported(SDXC_Type *base)
Definition: hpm_sdxc_soc_drv.h:111
static void sdxc_set_cardclk_delay_chain(SDXC_Type *base, uint32_t delay_chain)
Definition: hpm_sdxc_soc_drv.h:68
static void sdxc_enable_inverse_clock(SDXC_Type *base, bool enable)
Definition: hpm_sdxc_soc_drv.h:46
static void sdxc_set_data_strobe_delay(SDXC_Type *base, uint32_t num_delaycells)
Definition: hpm_sdxc_soc_drv.h:76
static uint32_t sdxc_get_default_strobe_delay(SDXC_Type *base)
Definition: hpm_sdxc_soc_drv.h:86
static uint32_t sdxc_get_default_cardclk_delay_chain(SDXC_Type *base, uint32_t clock_freq)
Definition: hpm_sdxc_soc_drv.h:101
static void sdxc_enable_tm_clock(SDXC_Type *base)
Enable TMCLK (for Data timeout detection)
Definition: hpm_sdxc_soc_drv.h:21
static bool sdxc_is_inverse_clock_enabled(SDXC_Type *base)
Definition: hpm_sdxc_soc_drv.h:56
static void sdxc_set_rxclk_delay_chain(SDXC_Type *base, uint32_t num_delaycells)
Definition: hpm_sdxc_soc_drv.h:92
static void sdxc_wait_card_active(SDXC_Type *base)
Wait at least 74 clocks until card is ready to receive the first command.
Definition: hpm_sdxc_soc_drv.h:30
static void sdxc_select_cardclk_delay_source(SDXC_Type *base, bool delay_from_pad)
Definition: hpm_sdxc_soc_drv.h:62
#define HPM_CONCTL
Definition: hpm_soc_ip.h:522
#define IS_HPM_BITMASK_SET(val, mask)
Definition: hpm_common.h:61
#define CONCTL_CTRL4_SDXC0_GPR_CCLK_RX_DLY_SW_SEL_MASK
Definition: hpm_conctl_regs.h:226
#define CONCTL_CTRL4_SDXC0_GPR_TUNING_CARD_CLK_SEL_SET(x)
Definition: hpm_conctl_regs.h:199
#define CONCTL_CTRL4_SDXC0_GPR_TUNING_CARD_CLK_SEL_MASK
Definition: hpm_conctl_regs.h:197
#define CONCTL_CTRL4_SDXC0_GPR_CCLK_RX_DLY_SW_FORCE_MASK
Definition: hpm_conctl_regs.h:236
#define CONCTL_CTRL4_SDXC0_GPR_TUNING_STROBE_SEL_MASK
Definition: hpm_conctl_regs.h:207
#define CONCTL_CTRL4_SDXC0_GPR_STROBE_IN_ENABLE_MASK
Definition: hpm_conctl_regs.h:217
#define CONCTL_CTRL4_SDXC0_GPR_CCLK_RX_DLY_SW_SEL_SET(x)
Definition: hpm_conctl_regs.h:228
#define CONCTL_CTRL4_SDXC0_GPR_TUNING_STROBE_SEL_SET(x)
Definition: hpm_conctl_regs.h:209
Definition: hpm_sdxc_regs.h:12
__R uint32_t CAPABILITIES1
Definition: hpm_sdxc_regs.h:26
__RW uint32_t SYS_CTRL
Definition: hpm_sdxc_regs.h:21