Lines Matching refs:chan
37 struct chan_info chan[1]; member
258 static void phy_cfg(const struct chan_info *chan, int channel, in phy_cfg() argument
261 struct rk3288_ddr_publ *publ = chan->publ; in phy_cfg()
262 struct rk3188_msch *msch = chan->msch; in phy_cfg()
379 static void set_bandwidth_ratio(const struct chan_info *chan, int channel, in set_bandwidth_ratio() argument
382 struct rk3288_ddr_pctl *pctl = chan->pctl; in set_bandwidth_ratio()
383 struct rk3288_ddr_publ *publ = chan->publ; in set_bandwidth_ratio()
384 struct rk3188_msch *msch = chan->msch; in set_bandwidth_ratio()
417 static int data_training(const struct chan_info *chan, int channel, in data_training() argument
425 struct rk3288_ddr_publ *publ = chan->publ; in data_training()
426 struct rk3288_ddr_pctl *pctl = chan->pctl; in data_training()
480 static void move_to_access_state(const struct chan_info *chan) in move_to_access_state() argument
482 struct rk3288_ddr_publ *publ = chan->publ; in move_to_access_state()
483 struct rk3288_ddr_pctl *pctl = chan->pctl; in move_to_access_state()
521 static void dram_cfg_rbc(const struct chan_info *chan, u32 chnum, in dram_cfg_rbc() argument
524 struct rk3288_ddr_publ *publ = chan->publ; in dram_cfg_rbc()
532 writel(sdram_params->base.ddrconfig, &chan->msch->ddrconf); in dram_cfg_rbc()
538 unsigned int chan; in dram_all_config() local
543 for (chan = 0; chan < sdram_params->num_channels; chan++) { in dram_all_config()
545 &sdram_params->ch[chan]; in dram_all_config()
547 sys_reg |= info->row_3_4 << SYS_REG_ROW_3_4_SHIFT(chan); in dram_all_config()
548 sys_reg |= 1 << SYS_REG_CHINFO_SHIFT(chan); in dram_all_config()
549 sys_reg |= (info->rank - 1) << SYS_REG_RANK_SHIFT(chan); in dram_all_config()
550 sys_reg |= (info->col - 9) << SYS_REG_COL_SHIFT(chan); in dram_all_config()
551 sys_reg |= info->bk == 3 ? 0 : 1 << SYS_REG_BK_SHIFT(chan); in dram_all_config()
552 sys_reg |= (info->cs0_row - 13) << SYS_REG_CS0_ROW_SHIFT(chan); in dram_all_config()
553 sys_reg |= (info->cs1_row - 13) << SYS_REG_CS1_ROW_SHIFT(chan); in dram_all_config()
554 sys_reg |= (2 >> info->bw) << SYS_REG_BW_SHIFT(chan); in dram_all_config()
555 sys_reg |= (2 >> info->dbw) << SYS_REG_DBW_SHIFT(chan); in dram_all_config()
557 dram_cfg_rbc(&dram->chan[chan], chan, sdram_params); in dram_all_config()
572 const struct chan_info *chan = &dram->chan[channel]; in sdram_rank_bw_detect() local
573 struct rk3288_ddr_publ *publ = chan->publ; in sdram_rank_bw_detect()
577 if (data_training(chan, channel, sdram_params) < 0) { in sdram_rank_bw_detect()
596 set_bandwidth_ratio(chan, channel, in sdram_rank_bw_detect()
606 (data_training(chan, channel, sdram_params) < 0)) { in sdram_rank_bw_detect()
633 const struct chan_info *chan = &dram->chan[channel]; in sdram_col_row_detect() local
634 struct rk3288_ddr_pctl *pctl = chan->pctl; in sdram_col_row_detect()
635 struct rk3288_ddr_publ *publ = chan->publ; in sdram_col_row_detect()
658 writel(1, &chan->msch->ddrconf); in sdram_col_row_detect()
659 move_to_access_state(chan); in sdram_col_row_detect()
732 const struct chan_info *chan = &dram->chan[channel]; in sdram_init() local
733 struct rk3288_ddr_pctl *pctl = chan->pctl; in sdram_init()
734 struct rk3288_ddr_publ *publ = chan->publ; in sdram_init()
743 phy_cfg(chan, channel, sdram_params); in sdram_init()
756 set_bandwidth_ratio(chan, channel, in sdram_init()
776 writel(1, &chan->msch->ddrconf); in sdram_init()
785 writel(4, &chan->msch->ddrconf); in sdram_init()
786 move_to_access_state(chan); in sdram_init()
899 priv->chan[0].msch = regmap_get_range(map, 0); in rk3188_dmc_probe()
903 priv->chan[0].pctl = regmap_get_range(plat->map, 0); in rk3188_dmc_probe()
904 priv->chan[0].publ = regmap_get_range(plat->map, 1); in rk3188_dmc_probe()