summaryrefslogtreecommitdiff
path: root/arch/arm/common/clkdev.c
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2009-06-03 20:43:14 +0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-06-04 20:45:43 +0400
commitc0683039207226afcffbe0fbf6a1caaee77a37b0 (patch)
treed91295ea184722929a12c772839c3d6f502ad95b /arch/arm/common/clkdev.c
parent5926a295bb78272b3f648f62febecd19a1b6a6ca (diff)
downloadlinux-c0683039207226afcffbe0fbf6a1caaee77a37b0.tar.xz
[ARM] 5536/1: Move clk_add_alias() to arch/arm/common/clkdev.c
This can be used for other arm platforms too as discussed on the linux-arm-kernel list. Also check the return value with IS_ERR and return PTR_ERR as suggested by Russell King. Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/common/clkdev.c')
-rw-r--r--arch/arm/common/clkdev.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/common/clkdev.c b/arch/arm/common/clkdev.c
index 5589444ff437..f37afd9422f3 100644
--- a/arch/arm/common/clkdev.c
+++ b/arch/arm/common/clkdev.c
@@ -135,6 +135,24 @@ struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,
}
EXPORT_SYMBOL(clkdev_alloc);
+int clk_add_alias(const char *alias, const char *alias_dev_name, char *id,
+ struct device *dev)
+{
+ struct clk *r = clk_get(dev, id);
+ struct clk_lookup *l;
+
+ if (IS_ERR(r))
+ return PTR_ERR(r);
+
+ l = clkdev_alloc(r, alias, alias_dev_name);
+ clk_put(r);
+ if (!l)
+ return -ENODEV;
+ clkdev_add(l);
+ return 0;
+}
+EXPORT_SYMBOL(clk_add_alias);
+
/*
* clkdev_drop - remove a clock dynamically allocated
*/