[PATCH 2/6] omap: clk: .round_rate for propagating to parents
Mike Turquette
mturquette at ti.com
Tue Dec 13 23:31:24 EST 2011
This patch introduces omap2_passthrough_round_rate which is a new
.round_rate that works with the generic struct clk_ops defined in
include/linux/clk.h.
The purpose of this .round_rate is to allow an OMAP clk to make no
changes to its own dividers (if applicable) and instead defer the rate
change up to the clk's parent.
Not-signed-off-by: Mike Turquette <mturquette at ti.com>
---
arch/arm/mach-omap2/clkt_clksel.c | 8 ++++++++
arch/arm/mach-omap2/clock.h | 2 ++
2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/clkt_clksel.c b/arch/arm/mach-omap2/clkt_clksel.c
index ad3befb..0f151ce 100644
--- a/arch/arm/mach-omap2/clkt_clksel.c
+++ b/arch/arm/mach-omap2/clkt_clksel.c
@@ -438,6 +438,14 @@ long omap2_clksel_round_rate(struct clk *clk, unsigned long target_rate,
return omap2_clksel_round_rate_div(oclk, target_rate, &new_div);
}
+long omap2_passthrough_round_rate(struct clk *clk, unsigned long target_rate,
+ unsigned long *parent_rate)
+{
+ *parent_rate = target_rate;
+
+ return clk->rate;
+}
+
/**
* omap2_clksel_set_rate() - program clock rate in hardware
* @clk: struct clk * to program rate
diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
index e03060e..05f8a00 100644
--- a/arch/arm/mach-omap2/clock.h
+++ b/arch/arm/mach-omap2/clock.h
@@ -86,6 +86,8 @@ struct clk *omap2_init_clksel_parent(struct clk *clk);
unsigned long omap2_clksel_recalc(struct clk *clk);
long omap2_clksel_round_rate(struct clk *clk, unsigned long target_rate,
unsigned long *parent_rate);
+long omap2_passthrough_round_rate(struct clk *clk, unsigned long target_rate,
+ unsigned long *parent_rate);
int omap2_clksel_set_rate(struct clk *clk, unsigned long rate);
int omap2_clksel_set_parent(struct clk *clk, struct clk *new_parent);
--
1.7.5.4
More information about the linux-arm-kernel
mailing list