sh: Support rate rounding for SH7722 FRQCR clocks.
Now that the round_rate() op is supported, hook it up on SH7722 for the FRQCR (CPU, PCLK, etc.) clocks. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
f6991b0456
commit
fe04d7798f
|
@ -387,9 +387,24 @@ out_err:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static long sh7722_frqcr_round_rate(struct clk *clk, unsigned long rate)
|
||||||
|
{
|
||||||
|
unsigned long parent_rate = clk->parent->rate;
|
||||||
|
int div;
|
||||||
|
|
||||||
|
/* look for multiplier/divisor pair */
|
||||||
|
div = sh7722_find_divisors(parent_rate, rate);
|
||||||
|
if (div < 0)
|
||||||
|
return clk->rate;
|
||||||
|
|
||||||
|
/* calculate new value of clock rate */
|
||||||
|
return parent_rate * 2 / div;
|
||||||
|
}
|
||||||
|
|
||||||
static struct clk_ops sh7722_frqcr_clk_ops = {
|
static struct clk_ops sh7722_frqcr_clk_ops = {
|
||||||
.recalc = sh7722_frqcr_recalc,
|
.recalc = sh7722_frqcr_recalc,
|
||||||
.set_rate = sh7722_frqcr_set_rate,
|
.set_rate = sh7722_frqcr_set_rate,
|
||||||
|
.round_rate = sh7722_frqcr_round_rate,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue