Lines Matching refs:info

68 	struct ram_info info;  member
94 static void ast2500_ddr_phy_init_process(struct dram_info *info) in ast2500_ddr_phy_init_process() argument
96 struct ast2500_sdrammc_regs *regs = info->regs; in ast2500_ddr_phy_init_process()
99 writel(0x4040, &info->phy->phy[51]); in ast2500_ddr_phy_init_process()
108 static void ast2500_sdrammc_set_vref(struct dram_info *info, u32 vref) in ast2500_sdrammc_set_vref() argument
110 writel(0, &info->regs->phy_ctrl[0]); in ast2500_sdrammc_set_vref()
111 writel((vref << 8) | 0x6, &info->phy->phy[48]); in ast2500_sdrammc_set_vref()
112 ast2500_ddr_phy_init_process(info); in ast2500_sdrammc_set_vref()
115 static int ast2500_ddr_cbr_test(struct dram_info *info) in ast2500_ddr_cbr_test() argument
117 struct ast2500_sdrammc_regs *regs = info->regs; in ast2500_ddr_cbr_test()
155 static int ast2500_sdrammc_ddr4_calibrate_vref(struct dram_info *info) in ast2500_sdrammc_ddr4_calibrate_vref() argument
165 ast2500_sdrammc_set_vref(info, i); in ast2500_sdrammc_ddr4_calibrate_vref()
166 res = ast2500_ddr_cbr_test(info); in ast2500_sdrammc_ddr4_calibrate_vref()
178 ast2500_sdrammc_set_vref(info, (vref_min + vref_max + 1) / 2); in ast2500_sdrammc_ddr4_calibrate_vref()
183 static size_t ast2500_sdrammc_get_vga_mem_size(struct dram_info *info) in ast2500_sdrammc_get_vga_mem_size() argument
186 u32 vga_hwconf = (readl(&info->scu->hwstrap) & SCU_HWSTRAP_VGAMEM_MASK) in ast2500_sdrammc_get_vga_mem_size()
197 static void ast2500_sdrammc_calc_size(struct dram_info *info) in ast2500_sdrammc_calc_size() argument
228 clrsetbits_le32(&info->regs->ac_timing[1], in ast2500_sdrammc_calc_size()
233 info->info.base = CONFIG_SYS_SDRAM_BASE; in ast2500_sdrammc_calc_size()
234 info->info.size = ram_size - ast2500_sdrammc_get_vga_mem_size(info); in ast2500_sdrammc_calc_size()
235 clrsetbits_le32(&info->regs->config, in ast2500_sdrammc_calc_size()
241 static int ast2500_sdrammc_init_ddr4(struct dram_info *info) in ast2500_sdrammc_init_ddr4() argument
256 writel(conf, &info->regs->config); in ast2500_sdrammc_init_ddr4()
258 writel(ddr4_ac_timing[i], &info->regs->ac_timing[i]); in ast2500_sdrammc_init_ddr4()
260 writel(DDR4_MR46_MODE, &info->regs->mr46_mode_setting); in ast2500_sdrammc_init_ddr4()
261 writel(DDR4_MR5_MODE, &info->regs->mr5_mode_setting); in ast2500_sdrammc_init_ddr4()
262 writel(DDR4_MR02_MODE, &info->regs->mr02_mode_setting); in ast2500_sdrammc_init_ddr4()
263 writel(DDR4_MR13_MODE, &info->regs->mr13_mode_setting); in ast2500_sdrammc_init_ddr4()
267 &info->phy->phy[ddr4_phy_config.index[i]]); in ast2500_sdrammc_init_ddr4()
270 writel(power_control, &info->regs->power_control); in ast2500_sdrammc_init_ddr4()
272 ast2500_ddr_phy_init_process(info); in ast2500_sdrammc_init_ddr4()
274 ret = ast2500_sdrammc_ddr4_calibrate_vref(info); in ast2500_sdrammc_init_ddr4()
282 &info->regs->refresh_timing); in ast2500_sdrammc_init_ddr4()
284 setbits_le32(&info->regs->power_control, in ast2500_sdrammc_init_ddr4()
287 ast2500_sdrammc_calc_size(info); in ast2500_sdrammc_init_ddr4()
289 setbits_le32(&info->regs->config, SDRAM_CONF_CACHE_INIT_EN); in ast2500_sdrammc_init_ddr4()
290 while (!(readl(&info->regs->config) & SDRAM_CONF_CACHE_INIT_DONE)) in ast2500_sdrammc_init_ddr4()
292 setbits_le32(&info->regs->config, SDRAM_CONF_CACHE_EN); in ast2500_sdrammc_init_ddr4()
294 writel(SDRAM_MISC_DDR4_TREFRESH, &info->regs->misc_control); in ast2500_sdrammc_init_ddr4()
310 | SDRAM_REQ_MEMCHECK, &info->regs->req_limit_mask); in ast2500_sdrammc_init_ddr4()
315 static void ast2500_sdrammc_unlock(struct dram_info *info) in ast2500_sdrammc_unlock() argument
317 writel(SDRAM_UNLOCK_KEY, &info->regs->protection_key); in ast2500_sdrammc_unlock()
318 while (!readl(&info->regs->protection_key)) in ast2500_sdrammc_unlock()
322 static void ast2500_sdrammc_lock(struct dram_info *info) in ast2500_sdrammc_lock() argument
324 writel(~SDRAM_UNLOCK_KEY, &info->regs->protection_key); in ast2500_sdrammc_lock()
325 while (readl(&info->regs->protection_key)) in ast2500_sdrammc_lock()
413 static int ast2500_sdrammc_get_info(struct udevice *dev, struct ram_info *info) in ast2500_sdrammc_get_info() argument
417 *info = priv->info; in ast2500_sdrammc_get_info()