3 #ifndef CPU_SAMSUNG_EXYNOS5420_DMC_H
4 #define CPU_SAMSUNG_EXYNOS5420_DMC_H
6 #define DMC_INTERLEAVE_SIZE 0x1f
8 #define PAD_RETENTION_DRAM_COREBLK_VAL 0x10000000
11 #define CONCONTROL_DFI_INIT_START_SHIFT 28
12 #define CONCONTROL_RD_FETCH_SHIFT 12
13 #define CONCONTROL_RD_FETCH_MASK (0x7 << CONCONTROL_RD_FETCH_SHIFT)
14 #define CONCONTROL_AREF_EN_SHIFT 5
17 #define PRECHCONFIG_TP_CNT_SHIFT 24
20 #define PWRDNCONFIG_DPWRDN_CYC_SHIFT 0
21 #define PWRDNCONFIG_DSREF_CYC_SHIFT 16
24 #define PHY_CON0_T_WRRDCMD_SHIFT 17
25 #define PHY_CON0_T_WRRDCMD_MASK (0x7 << PHY_CON0_T_WRRDCMD_SHIFT)
26 #define PHY_CON0_CTRL_DDR_MODE_MASK 0x3
27 #define PHY_CON0_CTRL_DDR_MODE_SHIFT 11
30 #define PHY_CON1_RDLVL_RDDATA_ADJ_SHIFT 0
33 #define PHY_CON12_CTRL_START_POINT_SHIFT 24
34 #define PHY_CON12_CTRL_INC_SHIFT 16
35 #define PHY_CON12_CTRL_FORCE_SHIFT 8
36 #define PHY_CON12_CTRL_START_SHIFT 6
37 #define PHY_CON12_CTRL_START_MASK (1 << PHY_CON12_CTRL_START_SHIFT)
38 #define PHY_CON12_CTRL_DLL_ON_SHIFT 5
39 #define PHY_CON12_CTRL_DLL_ON_MASK (1 << PHY_CON12_CTRL_DLL_ON_SHIFT)
40 #define PHY_CON12_CTRL_REF_SHIFT 1
43 #define PHY_CON16_ZQ_MODE_DDS_SHIFT 24
44 #define PHY_CON16_ZQ_MODE_DDS_MASK (0x7 << PHY_CON16_ZQ_MODE_DDS_SHIFT)
46 #define PHY_CON16_ZQ_MODE_TERM_SHIFT 21
47 #define PHY_CON16_ZQ_MODE_TERM_MASK (0x7 << PHY_CON16_ZQ_MODE_TERM_SHIFT)
49 #define PHY_CON16_ZQ_MODE_NOTERM_MASK (1 << 19)
52 #define PHY_CON42_CTRL_BSTLEN_SHIFT 8
53 #define PHY_CON42_CTRL_BSTLEN_MASK (0xff << PHY_CON42_CTRL_BSTLEN_SHIFT)
55 #define PHY_CON42_CTRL_RDLAT_SHIFT 0
56 #define PHY_CON42_CTRL_RDLAT_MASK (0x1f << PHY_CON42_CTRL_RDLAT_SHIFT)
struct mem_timings * get_mem_timings(void)
Get the correct memory timings for our selected memory type and speed.
check_member(exynos5_dmc, pmcnt3_ppc_a, 0xe140)
static struct exynos5_phy_control *const exynos_phy0_control
static struct exynos5_phy_control *const exynos_phy1_control
struct exynos5_dmc __packed
static struct exynos5_tzasc *const exynos_tzasc1
static struct exynos5_tzasc *const exynos_tzasc0
static struct exynos5_dmc *const exynos_drex0
static struct exynos5_dmc *const exynos_drex1
#define EXYNOS5_DMC_PHY0_BASE
#define EXYNOS5_DMC_PHY1_BASE
#define EXYNOS5420_DMC_DREXI_0
#define EXYNOS5420_DMC_TZASC_0
#define EXYNOS5420_DMC_DREXI_1
#define EXYNOS5420_DMC_TZASC_1
unsigned char res24[0xdebc]
uint32_t winconfig_ctrl_gate
uint32_t winconfig_ctrl_read
uint32_t ctrl_io_rdata_ch0
unsigned char res20[0x14]
uint32_t emergent_config1
uint32_t ctrl_io_rdata_ch1
uint32_t emergent_config0
unsigned char res30[0xac]
unsigned int membaseconfig0
unsigned int frequency_mhz
unsigned int membaseconfig1
uint8_t gate_leveling_enable
unsigned int prechconfig_tp_cnt
uint8_t chips_per_channel
unsigned int timing_power
uint8_t lpddr3_ctrl_phy_reset
uint8_t chips_to_configure
unsigned int direct_cmd_msr[MEM_TIMINGS_MSR_COUNT]