/* * Validate the speed policy. */ static int integrator_verify_policy(struct cpufreq_policy *policy) { struct icst_vco vco; cpufreq_verify_within_cpu_limits(policy); vco = icst_hz_to_vco(&cclk_params, policy->max * 1000); policy->max = icst_hz(&cclk_params, vco) / 1000; vco = icst_hz_to_vco(&cclk_params, policy->min * 1000); policy->min = icst_hz(&cclk_params, vco) / 1000; cpufreq_verify_within_cpu_limits(policy); return 0; }
int icst_clk_set(struct clk *clk, unsigned long rate) { struct icst_vco vco; vco = icst_hz_to_vco(clk->params, rate); clk->rate = icst_hz(clk->params, vco); clk->ops->setvco(clk, vco); return 0; }
long icst_clk_round(struct clk *clk, unsigned long rate) { struct icst_vco vco; vco = icst_hz_to_vco(clk->params, rate); return icst_hz(clk->params, vco); }