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);
298 struct imx8m_ddrc_freq *freq = &priv->freq_table[index];
306 freq->rate = res.a0;
307 freq->smcarg = index;
308 freq->dram_core_parent_index = res.a1;
309 freq->dram_alt_parent_index = res.a2;
310 freq->dram_apb_parent_index = res.a3;
313 if (freq->dram_core_parent_index != 1 &&
314 freq->dram_core_parent_index != 2)
317 if (freq->dram_alt_parent_index > 8 ||
318 freq->dram_apb_parent_index > 8)
321 if (freq->dram_core_parent_index == 2 &&
322 freq->dram_alt_parent_index == 0)
334 unsigned long freq;
341 for (i = 0, freq = 0; i < opp_count; ++i, ++freq) {
342 opp = dev_pm_opp_find_freq_ceil(dev, &freq);
350 freq_info = imx8m_ddrc_find_freq(priv, freq);
353 freq, DIV_ROUND_CLOSEST(freq, 250000));
354 dev_pm_opp_disable(dev, freq);
381 dev_err(dev, "failed to init firmware freq info: %d\n", ret);