Lines Matching refs:nr
38 static inline u32 get_mr(int nr, u32 cs, u32 mr_addr) in get_mr() argument
43 writel(mr_addr, &emif_reg[nr]->emif_lpddr2_mode_reg_cfg); in get_mr()
45 mr = readl(&emif_reg[nr]->emif_lpddr2_mode_reg_data); in get_mr()
55 static inline void set_mr(int nr, u32 cs, u32 mr_addr, u32 mr_val) in set_mr() argument
58 writel(mr_addr, &emif_reg[nr]->emif_lpddr2_mode_reg_cfg); in set_mr()
59 writel(mr_val, &emif_reg[nr]->emif_lpddr2_mode_reg_data); in set_mr()
62 static void configure_mr(int nr, u32 cs) in configure_mr() argument
66 while (get_mr(nr, cs, LPDDR2_MR0) & LPDDR2_MR0_DAI_MASK) in configure_mr()
68 set_mr(nr, cs, LPDDR2_MR10, 0x56); in configure_mr()
70 set_mr(nr, cs, LPDDR2_MR1, 0x43); in configure_mr()
71 set_mr(nr, cs, LPDDR2_MR2, 0x2); in configure_mr()
74 set_mr(nr, cs, mr_addr, 0x2); in configure_mr()
81 void config_sdram_emif4d5(const struct emif_regs *regs, int nr) in config_sdram_emif4d5() argument
88 writel(0xA0, &emif_reg[nr]->emif_pwr_mgmt_ctrl); in config_sdram_emif4d5()
89 writel(0xA0, &emif_reg[nr]->emif_pwr_mgmt_ctrl_shdw); in config_sdram_emif4d5()
90 writel(regs->zq_config, &emif_reg[nr]->emif_zq_config); in config_sdram_emif4d5()
92 writel(regs->temp_alert_config, &emif_reg[nr]->emif_temp_alert_config); in config_sdram_emif4d5()
94 &emif_reg[nr]->emif_rd_wr_lvl_rmp_win); in config_sdram_emif4d5()
96 &emif_reg[nr]->emif_rd_wr_lvl_rmp_ctl); in config_sdram_emif4d5()
97 writel(regs->emif_rd_wr_lvl_ctl, &emif_reg[nr]->emif_rd_wr_lvl_ctl); in config_sdram_emif4d5()
99 &emif_reg[nr]->emif_rd_wr_exec_thresh); in config_sdram_emif4d5()
107 writel(regs->emif_prio_class_serv_map, &emif_reg[nr]->emif_prio_class_serv_map); in config_sdram_emif4d5()
108 writel(regs->emif_connect_id_serv_1_map, &emif_reg[nr]->emif_connect_id_serv_1_map); in config_sdram_emif4d5()
109 writel(regs->emif_connect_id_serv_2_map, &emif_reg[nr]->emif_connect_id_serv_2_map); in config_sdram_emif4d5()
110 writel(regs->emif_cos_config, &emif_reg[nr]->emif_cos_config); in config_sdram_emif4d5()
118 writel(0x2011, &emif_reg[nr]->emif_iodft_tlgc); in config_sdram_emif4d5()
119 writel(0x2411, &emif_reg[nr]->emif_iodft_tlgc); in config_sdram_emif4d5()
120 writel(0x2011, &emif_reg[nr]->emif_iodft_tlgc); in config_sdram_emif4d5()
122 clrbits_le32(&emif_reg[nr]->emif_sdram_ref_ctrl, in config_sdram_emif4d5()
125 writel(regs->sdram_config, &emif_reg[nr]->emif_sdram_config); in config_sdram_emif4d5()
131 writel(regs->ref_ctrl, &emif_reg[nr]->emif_sdram_ref_ctrl); in config_sdram_emif4d5()
132 writel(regs->ref_ctrl, &emif_reg[nr]->emif_sdram_ref_ctrl_shdw); in config_sdram_emif4d5()
145 writel(readl(&emif_reg[nr]->emif_ddr_ext_phy_ctrl_36) | in config_sdram_emif4d5()
146 0x100, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_36); in config_sdram_emif4d5()
147 writel(readl(&emif_reg[nr]->emif_ddr_ext_phy_ctrl_36_shdw) | in config_sdram_emif4d5()
148 0x100, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_36_shdw); in config_sdram_emif4d5()
150 writel(0x80000000, &emif_reg[nr]->emif_rd_wr_lvl_rmp_ctl); in config_sdram_emif4d5()
153 writel(0x80000000, &emif_reg[nr]->emif_rd_wr_lvl_ctl); in config_sdram_emif4d5()
162 while ((readl(&emif_reg[nr]->emif_rd_wr_lvl_ctl) & 0x80000000) in config_sdram_emif4d5()
167 if ((readl(&emif_reg[nr]->emif_status) & 0x70) != 0) in config_sdram_emif4d5()
172 configure_mr(nr, 0); in config_sdram_emif4d5()
173 configure_mr(nr, 1); in config_sdram_emif4d5()
180 void config_sdram(const struct emif_regs *regs, int nr) in config_sdram() argument
183 writel(regs->sdram_config, &emif_reg[nr]->emif_sdram_config); in config_sdram()
184 writel(regs->emif_ddr_phy_ctlr_1, &emif_reg[nr]->emif_ddr_phy_ctrl_1); in config_sdram()
185 writel(regs->emif_ddr_phy_ctlr_1, &emif_reg[nr]->emif_ddr_phy_ctrl_1_shdw); in config_sdram()
186 writel(0x0000613B, &emif_reg[nr]->emif_sdram_ref_ctrl); /* initially a large refresh period */ in config_sdram()
187 writel(0x1000613B, &emif_reg[nr]->emif_sdram_ref_ctrl); /* trigger initialization */ in config_sdram()
188 writel(regs->ref_ctrl, &emif_reg[nr]->emif_sdram_ref_ctrl); in config_sdram()
191 writel(regs->zq_config, &emif_reg[nr]->emif_zq_config); in config_sdram()
193 writel(regs->sdram_config, &emif_reg[nr]->emif_sdram_config); in config_sdram()
196 writel(0x00003100, &emif_reg[nr]->emif_sdram_ref_ctrl); in config_sdram()
201 writel(regs->ref_ctrl, &emif_reg[nr]->emif_sdram_ref_ctrl); in config_sdram()
202 writel(regs->ref_ctrl, &emif_reg[nr]->emif_sdram_ref_ctrl_shdw); in config_sdram()
204 writel(regs->ref_ctrl, &emif_reg[nr]->emif_sdram_ref_ctrl); in config_sdram()
205 writel(regs->ref_ctrl, &emif_reg[nr]->emif_sdram_ref_ctrl_shdw); in config_sdram()
206 writel(regs->sdram_config, &emif_reg[nr]->emif_sdram_config); in config_sdram()
210 writel(regs->ocp_config, &emif_reg[nr]->emif_l3_config); in config_sdram()
217 void set_sdram_timings(const struct emif_regs *regs, int nr) in set_sdram_timings() argument
219 writel(regs->sdram_tim1, &emif_reg[nr]->emif_sdram_tim_1); in set_sdram_timings()
220 writel(regs->sdram_tim1, &emif_reg[nr]->emif_sdram_tim_1_shdw); in set_sdram_timings()
221 writel(regs->sdram_tim2, &emif_reg[nr]->emif_sdram_tim_2); in set_sdram_timings()
222 writel(regs->sdram_tim2, &emif_reg[nr]->emif_sdram_tim_2_shdw); in set_sdram_timings()
223 writel(regs->sdram_tim3, &emif_reg[nr]->emif_sdram_tim_3); in set_sdram_timings()
224 writel(regs->sdram_tim3, &emif_reg[nr]->emif_sdram_tim_3_shdw); in set_sdram_timings()
230 static void ext_phy_settings_swlvl(const struct emif_regs *regs, int nr) in ext_phy_settings_swlvl() argument
240 (u32 *)&(emif_reg[nr]->emif_ddr_ext_phy_ctrl_1); in ext_phy_settings_swlvl()
270 static void ext_phy_settings_hwlvl(const struct emif_regs *regs, int nr) in ext_phy_settings_hwlvl() argument
278 writel(0x00040100, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_1); in ext_phy_settings_hwlvl()
279 writel(0x00040100, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_1_shdw); in ext_phy_settings_hwlvl()
282 writel(0x08020080, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_1); in ext_phy_settings_hwlvl()
283 writel(0x08020080, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_1_shdw); in ext_phy_settings_hwlvl()
286 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_22); in ext_phy_settings_hwlvl()
287 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_22_shdw); in ext_phy_settings_hwlvl()
288 writel(0x00600020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_23); in ext_phy_settings_hwlvl()
289 writel(0x00600020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_23_shdw); in ext_phy_settings_hwlvl()
290 writel(0x40010080, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_24); in ext_phy_settings_hwlvl()
291 writel(0x40010080, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_24_shdw); in ext_phy_settings_hwlvl()
292 writel(0x08102040, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_25); in ext_phy_settings_hwlvl()
293 writel(0x08102040, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_25_shdw); in ext_phy_settings_hwlvl()
294 writel(0x00200020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_26); in ext_phy_settings_hwlvl()
295 writel(0x00200020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_26_shdw); in ext_phy_settings_hwlvl()
296 writel(0x00200020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_27); in ext_phy_settings_hwlvl()
297 writel(0x00200020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_27_shdw); in ext_phy_settings_hwlvl()
298 writel(0x00200020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_28); in ext_phy_settings_hwlvl()
299 writel(0x00200020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_28_shdw); in ext_phy_settings_hwlvl()
300 writel(0x00200020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_29); in ext_phy_settings_hwlvl()
301 writel(0x00200020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_29_shdw); in ext_phy_settings_hwlvl()
302 writel(0x00200020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_30); in ext_phy_settings_hwlvl()
303 writel(0x00200020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_30_shdw); in ext_phy_settings_hwlvl()
304 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_31); in ext_phy_settings_hwlvl()
305 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_31_shdw); in ext_phy_settings_hwlvl()
306 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_32); in ext_phy_settings_hwlvl()
307 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_32_shdw); in ext_phy_settings_hwlvl()
308 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_33); in ext_phy_settings_hwlvl()
309 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_33_shdw); in ext_phy_settings_hwlvl()
310 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_34); in ext_phy_settings_hwlvl()
311 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_34_shdw); in ext_phy_settings_hwlvl()
312 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_35); in ext_phy_settings_hwlvl()
313 writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_35_shdw); in ext_phy_settings_hwlvl()
314 writel(0x00000077, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_36); in ext_phy_settings_hwlvl()
315 writel(0x00000077, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_36_shdw); in ext_phy_settings_hwlvl()
321 writel(0x2011, &emif_reg[nr]->emif_iodft_tlgc); in ext_phy_settings_hwlvl()
322 writel(0x2411, &emif_reg[nr]->emif_iodft_tlgc); in ext_phy_settings_hwlvl()
323 writel(0x2011, &emif_reg[nr]->emif_iodft_tlgc); in ext_phy_settings_hwlvl()
329 void config_ddr_phy(const struct emif_regs *regs, int nr) in config_ddr_phy() argument
339 &emif_reg[nr]->emif_sdram_ref_ctrl); in config_ddr_phy()
342 &emif_reg[nr]->emif_ddr_phy_ctrl_1); in config_ddr_phy()
344 &emif_reg[nr]->emif_ddr_phy_ctrl_1_shdw); in config_ddr_phy()
346 if (get_emif_rev((u32)emif_reg[nr]) == EMIF_4D5) { in config_ddr_phy()
348 ext_phy_settings_hwlvl(regs, nr); in config_ddr_phy()
350 ext_phy_settings_swlvl(regs, nr); in config_ddr_phy()
357 void config_cmd_ctrl(const struct cmd_control *cmd, int nr) in config_cmd_ctrl() argument
362 writel(cmd->cmd0csratio, &ddr_cmd_reg[nr]->cm0csratio); in config_cmd_ctrl()
363 writel(cmd->cmd0iclkout, &ddr_cmd_reg[nr]->cm0iclkout); in config_cmd_ctrl()
365 writel(cmd->cmd1csratio, &ddr_cmd_reg[nr]->cm1csratio); in config_cmd_ctrl()
366 writel(cmd->cmd1iclkout, &ddr_cmd_reg[nr]->cm1iclkout); in config_cmd_ctrl()
368 writel(cmd->cmd2csratio, &ddr_cmd_reg[nr]->cm2csratio); in config_cmd_ctrl()
369 writel(cmd->cmd2iclkout, &ddr_cmd_reg[nr]->cm2iclkout); in config_cmd_ctrl()
375 void config_ddr_data(const struct ddr_data *data, int nr) in config_ddr_data() argument
384 &(ddr_data_reg[nr]+i)->dt0rdsratio0); in config_ddr_data()
386 &(ddr_data_reg[nr]+i)->dt0wdsratio0); in config_ddr_data()
388 &(ddr_data_reg[nr]+i)->dt0wiratio0); in config_ddr_data()
390 &(ddr_data_reg[nr]+i)->dt0giratio0); in config_ddr_data()
392 &(ddr_data_reg[nr]+i)->dt0fwsratio0); in config_ddr_data()
394 &(ddr_data_reg[nr]+i)->dt0wrsratio0); in config_ddr_data()