summaryrefslogtreecommitdiff
path: root/arch/arm/mach-realview
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-03-01 16:18:39 (GMT)
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-05-02 08:35:38 (GMT)
commit9bf5b2ef673237e0e43161c56f70ac8bf24e43f9 (patch)
tree6b75855102d54da6ff6d7023ae00e25610e44f92 /arch/arm/mach-realview
parent3081e43b97cb50a80ebd98ce4b60e4853ad38424 (diff)
downloadlinux-9bf5b2ef673237e0e43161c56f70ac8bf24e43f9.tar.xz
ARM: Indirect round/set_rate operations through clk structure
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-realview')
-rw-r--r--arch/arm/mach-realview/core.c8
-rw-r--r--arch/arm/mach-realview/include/mach/clkdev.h4
2 files changed, 9 insertions, 3 deletions
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index 043b93b..1b468bd 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -281,9 +281,15 @@ static void realview_oscvco_set(struct clk *clk, struct icst_vco vco)
writel(0, sys_lock);
}
+static const struct clk_ops oscvco_clk_ops = {
+ .round = icst_clk_round,
+ .set = icst_clk_set,
+ .setvco = realview_oscvco_set,
+};
+
static struct clk oscvco_clk = {
+ .ops = &oscvco_clk_ops,
.params = &realview_oscvco_params,
- .setvco = realview_oscvco_set,
};
/*
diff --git a/arch/arm/mach-realview/include/mach/clkdev.h b/arch/arm/mach-realview/include/mach/clkdev.h
index baea03c..e58d077 100644
--- a/arch/arm/mach-realview/include/mach/clkdev.h
+++ b/arch/arm/mach-realview/include/mach/clkdev.h
@@ -1,13 +1,13 @@
#ifndef __ASM_MACH_CLKDEV_H
#define __ASM_MACH_CLKDEV_H
-#include <asm/hardware/icst.h>
+#include <plat/clock.h>
struct clk {
unsigned long rate;
+ const struct clk_ops *ops;
const struct icst_params *params;
void __iomem *vcoreg;
- void (*setvco)(struct clk *, struct icst_vco vco);
};
#define __clk_get(clk) ({ 1; })