Lines Matching refs:chan

38 	struct chan_info chan[2];  member
139 static void set_memory_map(const struct chan_info *chan, u32 channel, in set_memory_map() argument
144 u32 *denali_ctl = chan->pctl->denali_ctl; in set_memory_map()
145 u32 *denali_pi = chan->pi->denali_pi; in set_memory_map()
195 static void phy_io_config(const struct chan_info *chan, in phy_io_config() argument
212 denali_phy = chan->publ->denali_phy; in phy_io_config()
213 denali_ctl = chan->pctl->denali_ctl; in phy_io_config()
535 static void set_ds_odt(const struct chan_info *chan, in set_ds_odt() argument
552 denali_phy = chan->publ->denali_phy; in set_ds_odt()
553 denali_ctl = chan->pctl->denali_ctl; in set_ds_odt()
768 phy_io_config(chan, sdram_params, io->rd_vref, b_reg, channel); in set_ds_odt()
770 phy_io_config(chan, sdram_params, 0, b_reg, channel); in set_ds_odt()
777 const struct chan_info *chan_0 = &dram->chan[0]; in pctl_start()
778 const struct chan_info *chan_1 = &dram->chan[1]; in pctl_start()
894 static void set_lp4_dq_odt(const struct chan_info *chan, in set_lp4_dq_odt() argument
904 denali_pi = chan->pi->denali_pi; in set_lp4_dq_odt()
905 denali_ctl = chan->pctl->denali_ctl; in set_lp4_dq_odt()
953 static void set_lp4_ca_odt(const struct chan_info *chan, in set_lp4_ca_odt() argument
963 denali_pi = chan->pi->denali_pi; in set_lp4_ca_odt()
964 denali_ctl = chan->pctl->denali_ctl; in set_lp4_ca_odt()
1012 static void set_lp4_MR3(const struct chan_info *chan, in set_lp4_MR3() argument
1022 denali_pi = chan->pi->denali_pi; in set_lp4_MR3()
1023 denali_ctl = chan->pctl->denali_ctl; in set_lp4_MR3()
1070 static void set_lp4_MR12(const struct chan_info *chan, in set_lp4_MR12() argument
1080 denali_pi = chan->pi->denali_pi; in set_lp4_MR12()
1081 denali_ctl = chan->pctl->denali_ctl; in set_lp4_MR12()
1130 static void set_lp4_MR14(const struct chan_info *chan, in set_lp4_MR14() argument
1140 denali_pi = chan->pi->denali_pi; in set_lp4_MR14()
1141 denali_ctl = chan->pctl->denali_ctl; in set_lp4_MR14()
1185 static void modify_param(const struct chan_info *chan, in modify_param() argument
1198 set_lp4_dq_odt(chan, sdram_params, 2, 1, 0, 0, 0); in modify_param()
1199 set_lp4_ca_odt(chan, sdram_params, 2, 1, 0, 0, 0); in modify_param()
1200 set_lp4_MR3(chan, sdram_params, 2, 0, 0, 0); in modify_param()
1201 set_lp4_MR12(chan, sdram_params, 2, 0, 0, 0); in modify_param()
1202 set_lp4_MR14(chan, sdram_params, 2, 0, 0, 0); in modify_param()
1204 set_ds_odt(chan, params, 0, 0, 0); in modify_param()
1232 set_ds_odt(chan, params, 0, 0, 0); in modify_param()
1241 static int pctl_cfg(const struct chan_info *chan, u32 channel, in pctl_cfg() argument
1244 u32 *denali_ctl = chan->pctl->denali_ctl; in pctl_cfg()
1245 u32 *denali_pi = chan->pi->denali_pi; in pctl_cfg()
1246 u32 *denali_phy = chan->publ->denali_phy; in pctl_cfg()
1253 modify_param(chan, sdram_params); in pctl_cfg()
1278 set_memory_map(chan, channel, sdram_params); in pctl_cfg()
1382 static void select_per_cs_training_index(const struct chan_info *chan, in select_per_cs_training_index() argument
1385 u32 *denali_phy = chan->publ->denali_phy; in select_per_cs_training_index()
1400 static void override_write_leveling_value(const struct chan_info *chan) in override_write_leveling_value() argument
1402 u32 *denali_ctl = chan->pctl->denali_ctl; in override_write_leveling_value()
1403 u32 *denali_phy = chan->publ->denali_phy; in override_write_leveling_value()
1429 static int data_training_ca(const struct chan_info *chan, u32 channel, in data_training_ca() argument
1432 u32 *denali_pi = chan->pi->denali_pi; in data_training_ca()
1433 u32 *denali_phy = chan->publ->denali_phy; in data_training_ca()
1450 select_per_cs_training_index(chan, i); in data_training_ca()
1490 static int data_training_wl(const struct chan_info *chan, u32 channel, in data_training_wl() argument
1493 u32 *denali_pi = chan->pi->denali_pi; in data_training_wl()
1494 u32 *denali_phy = chan->publ->denali_phy; in data_training_wl()
1503 select_per_cs_training_index(chan, i); in data_training_wl()
1543 override_write_leveling_value(chan); in data_training_wl()
1549 static int data_training_rg(const struct chan_info *chan, u32 channel, in data_training_rg() argument
1552 u32 *denali_pi = chan->pi->denali_pi; in data_training_rg()
1553 u32 *denali_phy = chan->publ->denali_phy; in data_training_rg()
1562 select_per_cs_training_index(chan, i); in data_training_rg()
1609 static int data_training_rl(const struct chan_info *chan, u32 channel, in data_training_rl() argument
1612 u32 *denali_pi = chan->pi->denali_pi; in data_training_rl()
1620 select_per_cs_training_index(chan, i); in data_training_rl()
1653 static int data_training_wdql(const struct chan_info *chan, u32 channel, in data_training_wdql() argument
1656 u32 *denali_pi = chan->pi->denali_pi; in data_training_wdql()
1673 select_per_cs_training_index(chan, i); in data_training_wdql()
1705 static int data_training(const struct chan_info *chan, u32 channel, in data_training() argument
1709 u32 *denali_phy = chan->publ->denali_phy; in data_training()
1732 ret = data_training_ca(chan, channel, sdram_params); in data_training()
1739 ret = data_training_wl(chan, channel, sdram_params); in data_training()
1746 ret = data_training_rg(chan, channel, sdram_params); in data_training()
1753 ret = data_training_rl(chan, channel, sdram_params); in data_training()
1760 ret = data_training_wdql(chan, channel, sdram_params); in data_training()
1772 static void set_ddrconfig(const struct chan_info *chan, in set_ddrconfig() argument
1777 struct msch_regs *ddr_msch_regs = chan->msch; in set_ddrconfig()
1832 ddr_msch_regs = dram->chan[channel].msch; in dram_all_config()
1838 setbits_le32(&dram->chan[channel].pctl->denali_ctl[276], in dram_all_config()
1886 denali_phy = dram->chan[channel].publ->denali_phy; in switch_to_phy_index1()
1888 ret = data_training(&dram->chan[channel], channel, in switch_to_phy_index1()
2107 static void set_cap_relate_config(const struct chan_info *chan, in set_cap_relate_config() argument
2111 u32 *denali_ctl = chan->pctl->denali_ctl; in set_cap_relate_config()
2160 static void dram_set_cs(const struct chan_info *chan, u32 cs_map, u32 cs0_cap, in dram_set_cs() argument
2163 u32 *denali_ctl = chan->pctl->denali_ctl; in dram_set_cs()
2164 u32 *denali_pi = chan->pi->denali_pi; in dram_set_cs()
2165 struct msch_regs *ddr_msch_regs = chan->msch; in dram_set_cs()
2185 static void dram_set_bw(const struct chan_info *chan, u32 bw) in dram_set_bw() argument
2187 u32 *denali_ctl = chan->pctl->denali_ctl; in dram_set_bw()
2195 static void dram_set_max_col(const struct chan_info *chan, u32 bw, u32 *pcol) in dram_set_max_col() argument
2197 u32 *denali_ctl = chan->pctl->denali_ctl; in dram_set_max_col()
2198 struct msch_regs *ddr_msch_regs = chan->msch; in dram_set_max_col()
2199 u32 *denali_pi = chan->pi->denali_pi; in dram_set_max_col()
2221 static void dram_set_max_bank(const struct chan_info *chan, u32 bw, u32 *pbank, in dram_set_max_bank() argument
2224 u32 *denali_ctl = chan->pctl->denali_ctl; in dram_set_max_bank()
2225 u32 *denali_pi = chan->pi->denali_pi; in dram_set_max_bank()
2238 static void dram_set_max_row(const struct chan_info *chan, u32 bw, u32 *prow, in dram_set_max_row() argument
2241 u32 *denali_ctl = chan->pctl->denali_ctl; in dram_set_max_row()
2242 u32 *denali_pi = chan->pi->denali_pi; in dram_set_max_row()
2243 struct msch_regs *ddr_msch_regs = chan->msch; in dram_set_max_row()
2267 const struct chan_info *chan = &dram->chan[channel]; in dram_detect_cap() local
2280 dram_set_bw(chan, bw); in dram_detect_cap()
2282 if (data_training(chan, channel, sdram_params, in dram_detect_cap()
2285 dram_set_bw(chan, 1); in dram_detect_cap()
2287 if (data_training(chan, channel, sdram_params, in dram_detect_cap()
2304 if (data_training(chan, channel, sdram_params, training_flag)) { in dram_detect_cap()
2311 dram_set_max_col(chan, bw, &col_tmp); in dram_detect_cap()
2316 dram_set_max_bank(chan, bw, &bk_tmp, &col_tmp); in dram_detect_cap()
2317 sdram_detect_bank(cap_info, chan->pctl, col_tmp, bk_tmp); in dram_detect_cap()
2320 dram_set_max_row(chan, bw, &row_tmp, &bk_tmp, &col_tmp); in dram_detect_cap()
2334 set_memory_map(chan, channel, sdram_params); in dram_detect_cap()
2338 set_ddrconfig(chan, sdram_params, channel, in dram_detect_cap()
2395 struct chan_info *chan = in read_mr_for_detect() local
2396 &dram->chan[channel]; in read_mr_for_detect()
2397 struct rk3399_ddr_pctl_regs *ddr_pctl_regs = chan->pctl; in read_mr_for_detect()
2428 set_memory_map(chan, channel, sdram_params); in read_mr_for_detect()
2431 set_ddrconfig(chan, sdram_params, channel, in read_mr_for_detect()
2433 set_cap_relate_config(chan, sdram_params, channel); in read_mr_for_detect()
2513 denali_ctl = dram->chan[channel].pctl->denali_ctl; in dram_copy_phy_fn()
2514 denali_phy = dram->chan[channel].publ->denali_phy; in dram_copy_phy_fn()
2766 read_mr(dram->chan[channel].pctl, 1, 5, &mr5); in dram_copy_phy_fn()
2767 set_ds_odt(&dram->chan[channel], f1_sdram_params, 1, 0, mr5); in dram_copy_phy_fn()
2768 set_ds_odt(&dram->chan[channel], f1_sdram_params, 1, 1, mr5); in dram_copy_phy_fn()
2771 set_lp4_dq_odt(&dram->chan[channel], f1_sdram_params, in dram_copy_phy_fn()
2773 set_lp4_ca_odt(&dram->chan[channel], f1_sdram_params, in dram_copy_phy_fn()
2775 set_lp4_MR3(&dram->chan[channel], f1_sdram_params, in dram_copy_phy_fn()
2777 set_lp4_MR12(&dram->chan[channel], f1_sdram_params, in dram_copy_phy_fn()
2779 set_lp4_MR14(&dram->chan[channel], f1_sdram_params, in dram_copy_phy_fn()
2782 set_lp4_dq_odt(&dram->chan[channel], f1_sdram_params, in dram_copy_phy_fn()
2784 set_lp4_ca_odt(&dram->chan[channel], f1_sdram_params, in dram_copy_phy_fn()
2786 set_lp4_MR3(&dram->chan[channel], f1_sdram_params, in dram_copy_phy_fn()
2788 set_lp4_MR12(&dram->chan[channel], f1_sdram_params, in dram_copy_phy_fn()
2790 set_lp4_MR14(&dram->chan[channel], f1_sdram_params, in dram_copy_phy_fn()
2878 ret[channel] = data_training(&dram->chan[channel], in dram_set_rate()
2950 const struct chan_info *chan = in sdram_init() local
2951 &dram->chan[channel]; in sdram_init()
2953 struct rk3399_ddr_publ_regs *publ = chan->publ; in sdram_init()
2957 pctl_cfg(chan, channel, sdram_params); in sdram_init()
2968 dram_set_cs(&dram->chan[ch], tmp, 2048, in sdram_init()
2990 if (!(data_training(&dram->chan[ch], ch, in sdram_init()
3001 const struct chan_info *chan = &dram->chan[channel]; in sdram_init() local
3026 set_memory_map(chan, channel, sdram_params); in sdram_init()
3033 set_ddrconfig(chan, sdram_params, channel, cap_info->ddrconfig); in sdram_init()
3034 set_cap_relate_config(chan, sdram_params, channel); in sdram_init()
3122 priv->chan[0].pctl = regmap_get_range(plat->map, 0); in rk3399_dmc_init()
3123 priv->chan[0].pi = regmap_get_range(plat->map, 1); in rk3399_dmc_init()
3124 priv->chan[0].publ = regmap_get_range(plat->map, 2); in rk3399_dmc_init()
3125 priv->chan[0].msch = regmap_get_range(plat->map, 3); in rk3399_dmc_init()
3126 priv->chan[1].pctl = regmap_get_range(plat->map, 4); in rk3399_dmc_init()
3127 priv->chan[1].pi = regmap_get_range(plat->map, 5); in rk3399_dmc_init()
3128 priv->chan[1].publ = regmap_get_range(plat->map, 6); in rk3399_dmc_init()
3129 priv->chan[1].msch = regmap_get_range(plat->map, 7); in rk3399_dmc_init()
3132 priv->chan[0].pctl, priv->chan[0].pi, in rk3399_dmc_init()
3133 priv->chan[0].publ, priv->chan[0].msch, in rk3399_dmc_init()
3134 priv->chan[1].pctl, priv->chan[1].pi, in rk3399_dmc_init()
3135 priv->chan[1].publ, priv->chan[1].msch); in rk3399_dmc_init()