Exemplo n.º 1
0
/*
 * Used for clocks that are part of CLKSEL_xyz governed clocks.
 * REVISIT: Maybe change to use clk->enable() functions like on omap1?
 */
unsigned long omap2_clksel_recalc(struct clk *clk)
{
	unsigned long rate;
	u32 div = 0;

	pr_debug("clock: recalc'ing clksel clk %s\n", clk->name);

	div = omap2_clksel_get_divisor(clk);
	if (div == 0)
		return clk->rate;

	rate = clk->parent->rate / div;

	pr_debug("clock: new clock rate is %ld (div %d)\n", rate, div);

	return rate;
}
Exemplo n.º 2
0
Arquivo: clock.c Projeto: 274914765/C
/*
 * Used for clocks that are part of CLKSEL_xyz governed clocks.
 * REVISIT: Maybe change to use clk->enable() functions like on omap1?
 */
void omap2_clksel_recalc(struct clk *clk)
{
    u32 div = 0;

    pr_debug("clock: recalc'ing clksel clk %s\n", clk->name);

    div = omap2_clksel_get_divisor(clk);
    if (div == 0)
        return;

    if (unlikely(clk->rate == clk->parent->rate / div))
        return;
    clk->rate = clk->parent->rate / div;

    pr_debug("clock: new clock rate is %ld (div %d)\n", clk->rate, div);

    if (unlikely(clk->flags & RATE_PROPAGATES))
        propagate_rate(clk);
}