Lines Matching refs:freq
82 struct imx8m_ddrc_freq *freq;
91 freq = &priv->freq_table[i];
92 if (freq->rate == rate ||
93 freq->rate + 1 == rate ||
94 freq->rate - 1 == rate)
95 return freq;
128 static int imx8m_ddrc_set_freq(struct device *dev, struct imx8m_ddrc_freq *freq)
143 priv->dram_core, freq->dram_core_parent_index - 1);
148 if (freq->dram_alt_parent_index) {
151 freq->dram_alt_parent_index - 1);
159 if (freq->dram_apb_parent_index) {
162 freq->dram_apb_parent_index - 1);
190 imx8m_ddrc_smc_set_freq(freq->smcarg);
230 static int imx8m_ddrc_target(struct device *dev, unsigned long *freq, u32 flags)
238 new_opp = devfreq_recommended_opp(dev, freq, flags);
247 if (*freq == old_freq)
250 freq_info = imx8m_ddrc_find_freq(priv, *freq);
262 dev_err(dev, "ddrc failed freq switch to %lu from %lu: error %d. now at %lu\n",
263 *freq, old_freq, ret, new_freq);
264 else if (*freq != new_freq)
265 dev_err(dev, "ddrc failed freq update to %lu from %lu, now at %lu\n",
266 *freq, old_freq, new_freq);
268 dev_dbg(dev, "ddrc freq set to %lu (was %lu)\n",
269 *freq, old_freq);
274 static int imx8m_ddrc_get_cur_freq(struct device *dev, unsigned long *freq)
278 *freq = clk_get_rate(priv->dram_core);
310 struct imx8m_ddrc_freq *freq = &priv->freq_table[index];
318 freq->rate = res.a0;
319 freq->smcarg = index;
320 freq->dram_core_parent_index = res.a1;
321 freq->dram_alt_parent_index = res.a2;
322 freq->dram_apb_parent_index = res.a3;
325 if (freq->dram_core_parent_index != 1 &&
326 freq->dram_core_parent_index != 2)
329 if (freq->dram_alt_parent_index > 8 ||
330 freq->dram_apb_parent_index > 8)
333 if (freq->dram_core_parent_index == 2 &&
334 freq->dram_alt_parent_index == 0)
346 unsigned long freq;
353 for (i = 0, freq = 0; i < opp_count; ++i, ++freq) {
354 opp = dev_pm_opp_find_freq_ceil(dev, &freq);
362 freq_info = imx8m_ddrc_find_freq(priv, freq);
365 freq, DIV_ROUND_CLOSEST(freq, 250000));
366 dev_pm_opp_disable(dev, freq);
393 dev_err(dev, "failed to init firmware freq info: %d\n", ret);