[ARM] clocklib: Allow dynamic alias creation

This patch allows dynamic creation of clock aliases in order to
make it possible to have platform independent clock names for use in
device drivers.

Signed-off-by: Ian Molton <spyro@f2s.com>
This commit is contained in:
Ian Molton 2008-07-25 12:02:31 +01:00
parent 67a6e80ede
commit 5fedd0afd6
2 changed files with 30 additions and 0 deletions

View file

@ -125,3 +125,28 @@ void clks_register(struct clk *clks, size_t num)
list_add(&clks[i].node, &clocks);
mutex_unlock(&clocks_mutex);
}
int clk_add_alias(char *alias, struct device *alias_dev, char *id,
struct device *dev)
{
struct clk *r = clk_lookup(dev, id);
struct clk *new;
if (!r)
return -ENODEV;
new = kzalloc(sizeof(struct clk), GFP_KERNEL);
if (!new)
return -ENOMEM;
new->name = alias;
new->dev = alias_dev;
new->other = r;
mutex_lock(&clocks_mutex);
list_add(&new->node, &clocks);
mutex_unlock(&clocks_mutex);
return 0;
}

View file

@ -1,3 +1,5 @@
#include <linux/list.h>
struct clk;
struct clkops {
@ -86,3 +88,6 @@ extern void clk_pxa3xx_cken_disable(struct clk *);
#endif
void clks_register(struct clk *clks, size_t num);
int clk_add_alias(char *alias, struct device *alias_dev, char *id,
struct device *dev);