8 #ifndef HPM_SDXC_SOC_DRV_H
9 #define HPM_SDXC_SOC_DRV_H
12 #include "hpm_sdxc_regs.h"
14 #if defined(__cplusplus)
101 if (loopback_from_pad) {
133 uint32_t num_delaycells = 0;
137 return num_delaycells;
143 uint32_t num_delaycells = 3;
144 if (clock_freq <= 52000000) {
147 return num_delaycells;
157 #if defined(__cplusplus)
#define HPM_IOC
Definition: hpm_soc_ip.h:267
#define IOC_PAD_FUNC_CTL_ALT_SELECT_GET(x)
Definition: hpm_ioc_regs.h:57
#define IOC_PAD_PC00
Definition: hpm_ioc_regs.h:239
#define SDXC_MISC_CTRL0_FREQ_SEL_SW_SET(x)
Definition: hpm_sdxc_regs.h:4350
#define SDXC_MISC_CTRL0_PAD_CLK_SEL_B_MASK
Definition: hpm_sdxc_regs.h:4316
#define SDXC_MISC_CTRL0_FREQ_SEL_SW_MASK
Definition: hpm_sdxc_regs.h:4348
#define SDXC_MISC_CTRL0_FREQ_SEL_SW_EN_MASK
Definition: hpm_sdxc_regs.h:4327
#define SDXC_MISC_CTRL0_TMCLK_EN_MASK
Definition: hpm_sdxc_regs.h:4338
#define SDXC_SYS_CTRL_SD_CLK_EN_MASK
Definition: hpm_sdxc_regs.h:1087
#define SDXC_MISC_CTRL1_CARD_ACTIVE_MASK
Definition: hpm_sdxc_regs.h:4361
#define SDXC_MISC_CTRL0_CARDCLK_INV_EN_MASK
Definition: hpm_sdxc_regs.h:4305
#define SDXC_MISC_CTRL0_FREQ_SEL_SW_GET(x)
Definition: hpm_sdxc_regs.h:4351
#define IOC_PC00_FUNC_CTL_SDC0_DS
Definition: hpm_iomux.h:562
static void sdxc_enable_freq_selection(SDXC_Type *base)
Definition: hpm_sdxc_soc_drv.h:24
static bool sdxc_is_ddr50_supported(SDXC_Type *base)
Definition: hpm_sdxc_soc_drv.h:150
static void sdxc_set_clock_divider(SDXC_Type *base, uint32_t div)
Set SDXC clock divider.
Definition: hpm_sdxc_soc_drv.h:39
static void sdxc_enable_inverse_clock(SDXC_Type *base, bool enable)
Inverse SDXC clock.
Definition: hpm_sdxc_soc_drv.h:74
static uint32_t sdxc_get_default_strobe_delay(SDXC_Type *base)
Definition: hpm_sdxc_soc_drv.h:130
static uint32_t sdxc_get_clock_divider(SDXC_Type *base)
Get SDXC divider.
Definition: hpm_sdxc_soc_drv.h:51
static uint32_t sdxc_get_default_cardclk_delay_chain(SDXC_Type *base, uint32_t clock_freq)
Definition: hpm_sdxc_soc_drv.h:140
static void sdxc_select_cardclk_delay_source(SDXC_Type *base, bool loopback_from_pad)
Select the Card Clock Delay source.
Definition: hpm_sdxc_soc_drv.h:99
static void sdxc_enable_tm_clock(SDXC_Type *base)
Definition: hpm_sdxc_soc_drv.h:19
static void sdxc_set_cardclk_delay_chain(SDXC_Type *base, uint32_t num_delaycells)
Set Card Clock delay chain.
Definition: hpm_sdxc_soc_drv.h:113
static bool sdxc_is_inverse_clock_enabled(SDXC_Type *base)
Check whether SDXC inverse clock is enabled or not.
Definition: hpm_sdxc_soc_drv.h:89
static void sdxc_disable_freq_selection(SDXC_Type *base)
Definition: hpm_sdxc_soc_drv.h:29
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:59
static void sdxc_set_data_strobe_delay(SDXC_Type *base, uint8_t num_of_delaycells)
Set SDXC data strobe delay chain.
Definition: hpm_sdxc_soc_drv.h:124
#define SDXC_MISC_CTRL1_CARDCLK_DLYSEL_MASK
Definition: hpm_sdxc_regs.h:4382
#define SDXC_MISC_CTRL1_CARDCLK_DLYSEL_SET(x)
Definition: hpm_sdxc_regs.h:4384
#define SDXC_MISC_CTRL1_STROBE_DLYSEL_MASK
Definition: hpm_sdxc_regs.h:4392
#define SDXC_MISC_CTRL1_STROBE_DLYSEL_SET(x)
Definition: hpm_sdxc_regs.h:4394
#define IS_HPM_BITMASK_SET(val, mask)
Definition: hpm_common.h:61
Definition: hpm_sdxc_regs.h:12
__RW uint32_t MISC_CTRL1
Definition: hpm_sdxc_regs.h:78
__RW uint32_t MISC_CTRL0
Definition: hpm_sdxc_regs.h:77
__RW uint32_t SYS_CTRL
Definition: hpm_sdxc_regs.h:21