aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMagnus Damm <damm@igel.co.jp>2008-07-17 19:09:51 +0900
committerPaul Mundt <lethal@linux-sh.org>2008-07-28 18:10:36 +0900
commitde9254263b8c8b1809520a1009dd516e41976519 (patch)
tree0f75d7a40992b036f79ddbd8851ba877360ebc2f
parentsh: Show all clocks and their state in /proc/clocks (diff)
downloadlinux-dev-de9254263b8c8b1809520a1009dd516e41976519.tar.xz
linux-dev-de9254263b8c8b1809520a1009dd516e41976519.zip
sh: Introduce clk_always_enable() function
Add SuperH specific funcion clk_always_enable(), useful to enable MSTPCR bits in processor or board specific code. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r--include/asm-sh/clock.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/asm-sh/clock.h b/include/asm-sh/clock.h
index 252f15540ddb..720dfab7b15e 100644
--- a/include/asm-sh/clock.h
+++ b/include/asm-sh/clock.h
@@ -5,6 +5,7 @@
#include <linux/list.h>
#include <linux/seq_file.h>
#include <linux/clk.h>
+#include <linux/err.h>
struct clk;
@@ -47,6 +48,22 @@ void clk_recalc_rate(struct clk *);
int clk_register(struct clk *);
void clk_unregister(struct clk *);
+static inline int clk_always_enable(const char *id)
+{
+ struct clk *clk;
+ int ret;
+
+ clk = clk_get(NULL, id);
+ if (IS_ERR(clk))
+ return PTR_ERR(clk);
+
+ ret = clk_enable(clk);
+ if (ret)
+ clk_put(clk);
+
+ return ret;
+}
+
/* the exported API, in addition to clk_set_rate */
/**
* clk_set_rate_ex - set the clock rate for a clock source, with additional parameter