Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe04d779 authored by Paul Mundt's avatar Paul Mundt
Browse files

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: default avatarPaul Mundt <lethal@linux-sh.org>
parent f6991b04
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -387,9 +387,24 @@ out_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 = {
	.recalc = sh7722_frqcr_recalc,
	.set_rate = sh7722_frqcr_set_rate,
	.round_rate = sh7722_frqcr_round_rate,
};

/*