summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-integrator/include
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2008-11-08 21:08:08 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-11-27 13:38:22 +0100
commitd72fbdf01fc77628c0b837d0dd2fd564fa26ede6 (patch)
tree5ea1ba4f2771cfaf454621f8a2f6bdd616aa8e88 /arch/arm/mach-integrator/include
parent[ARM] realview: convert to clkdev and lookup clocks by device name (diff)
downloadlinux-d72fbdf01fc77628c0b837d0dd2fd564fa26ede6.tar.xz
linux-d72fbdf01fc77628c0b837d0dd2fd564fa26ede6.zip
[ARM] integrator: convert to clkdev and lookup clocks by device name
People often point to the Integrator/Versatile/Realview implementations to justify using the consumer name as the sole selector for clocks. Eliminate this excuse by changing the Integrator implementation, so it provides a better example of how it should be done. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-integrator/include')
-rw-r--r--arch/arm/mach-integrator/include/mach/clkdev.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/arm/mach-integrator/include/mach/clkdev.h b/arch/arm/mach-integrator/include/mach/clkdev.h
new file mode 100644
index 000000000000..9293e410832a
--- /dev/null
+++ b/arch/arm/mach-integrator/include/mach/clkdev.h
@@ -0,0 +1,25 @@
+#ifndef __ASM_MACH_CLKDEV_H
+#define __ASM_MACH_CLKDEV_H
+
+#include <linux/module.h>
+#include <asm/hardware/icst525.h>
+
+struct clk {
+ unsigned long rate;
+ struct module *owner;
+ const struct icst525_params *params;
+ void *data;
+ void (*setvco)(struct clk *, struct icst525_vco vco);
+};
+
+static inline int __clk_get(struct clk *clk)
+{
+ return try_module_get(clk->owner);
+}
+
+static inline void __clk_put(struct clk *clk)
+{
+ module_put(clk->owner);
+}
+
+#endif