[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:
parent
67a6e80ede
commit
5fedd0afd6
|
@ -125,3 +125,28 @@ void clks_register(struct clk *clks, size_t num)
|
||||||
list_add(&clks[i].node, &clocks);
|
list_add(&clks[i].node, &clocks);
|
||||||
mutex_unlock(&clocks_mutex);
|
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;
|
||||||
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#include <linux/list.h>
|
||||||
|
|
||||||
struct clk;
|
struct clk;
|
||||||
|
|
||||||
struct clkops {
|
struct clkops {
|
||||||
|
@ -86,3 +88,6 @@ extern void clk_pxa3xx_cken_disable(struct clk *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void clks_register(struct clk *clks, size_t num);
|
void clks_register(struct clk *clks, size_t num);
|
||||||
|
int clk_add_alias(char *alias, struct device *alias_dev, char *id,
|
||||||
|
struct device *dev);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue