Commit 5fedd0af authored by Ian Molton's avatar Ian Molton
Browse files

[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: default avatarIan Molton <spyro@f2s.com>
parent 67a6e80e
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -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;
}
+5 −0
Original line number Diff line number Diff line
#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);