[ARM] MXC: add clkdev support
authorSascha Hauer <s.hauer@pengutronix.de>
Mon, 16 Feb 2009 13:27:06 +0000 (14:27 +0100)
committerSascha Hauer <s.hauer@pengutronix.de>
Fri, 13 Mar 2009 09:33:50 +0000 (10:33 +0100)
This patch only adds general clkdev support without actually switching
any MXC architecture to clkdev.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/plat-mxc/clock.c
arch/arm/plat-mxc/include/mach/clkdev.h [new file with mode: 0644]
arch/arm/plat-mxc/include/mach/clock.h

index 888dd33abf76a7a47006cb2b943d403738801f6b..92e13566cd4f56f321eca6c8df50f33f4a2c9c7d 100644 (file)
@@ -47,6 +47,11 @@ static DEFINE_MUTEX(clocks_mutex);
  * Standard clock functions defined in include/linux/clk.h
  *-------------------------------------------------------------------------*/
 
+/*
+ * All the code inside #ifndef CONFIG_COMMON_CLKDEV can be removed once all
+ * MXC architectures have switched to using clkdev.
+ */
+#ifndef CONFIG_COMMON_CLKDEV
 /*
  * Retrieve a clock by name.
  *
@@ -110,6 +115,7 @@ found:
        return clk;
 }
 EXPORT_SYMBOL(clk_get);
+#endif
 
 static void __clk_disable(struct clk *clk)
 {
@@ -187,6 +193,7 @@ unsigned long clk_get_rate(struct clk *clk)
 }
 EXPORT_SYMBOL(clk_get_rate);
 
+#ifndef CONFIG_COMMON_CLKDEV
 /* Decrement the clock's module reference count */
 void clk_put(struct clk *clk)
 {
@@ -194,6 +201,7 @@ void clk_put(struct clk *clk)
                module_put(clk->owner);
 }
 EXPORT_SYMBOL(clk_put);
+#endif
 
 /* Round the requested clock rate to the nearest supported
  * rate that is less than or equal to the requested rate.
@@ -257,6 +265,7 @@ struct clk *clk_get_parent(struct clk *clk)
 }
 EXPORT_SYMBOL(clk_get_parent);
 
+#ifndef CONFIG_COMMON_CLKDEV
 /*
  * Add a new clock to the clock tree.
  */
@@ -327,6 +336,7 @@ static int __init mxc_setup_proc_entry(void)
 }
 
 late_initcall(mxc_setup_proc_entry);
+#endif /* CONFIG_PROC_FS */
 #endif
 
 /*
diff --git a/arch/arm/plat-mxc/include/mach/clkdev.h b/arch/arm/plat-mxc/include/mach/clkdev.h
new file mode 100644 (file)
index 0000000..04b37a8
--- /dev/null
@@ -0,0 +1,7 @@
+#ifndef __ASM_MACH_CLKDEV_H
+#define __ASM_MACH_CLKDEV_H
+
+#define __clk_get(clk) ({ 1; })
+#define __clk_put(clk) do { } while (0)
+
+#endif
index b830655514eb131232246535ad7c53971c575337..43a82d0c534dd8f1e4bdfc99a95c94e9c1e56413 100644 (file)
 struct module;
 
 struct clk {
+#ifndef CONFIG_COMMON_CLKDEV
+       /* As soon as i.MX1 and i.MX31 switched to clkdev, this
+        * block can go away */
        struct list_head node;
        struct module *owner;
        const char *name;
+#endif
        int id;
        /* Source clock this clk depends on */
        struct clk *parent;