diff options
author | Ian Molton <spyro@f2s.com> | 2008-07-25 07:02:31 -0400 |
---|---|---|
committer | Ian Molton <spyro@f2s.com> | 2008-08-12 07:54:30 -0400 |
commit | 5fedd0afd661cf2d387a6eb1b0df78ddbc0c9086 (patch) | |
tree | bd9055f838a9cd90fed0a19f226d51e5e2519232 /arch/arm/mach-pxa/clock.c | |
parent | 67a6e80ede815224db22518cd08350277bbeddb9 (diff) |
[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>
Diffstat (limited to 'arch/arm/mach-pxa/clock.c')
-rw-r--r-- | arch/arm/mach-pxa/clock.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/clock.c b/arch/arm/mach-pxa/clock.c index c01eea88f787..ca8e20538157 100644 --- a/arch/arm/mach-pxa/clock.c +++ b/arch/arm/mach-pxa/clock.c | |||
@@ -125,3 +125,28 @@ void clks_register(struct clk *clks, size_t num) | |||
125 | list_add(&clks[i].node, &clocks); | 125 | list_add(&clks[i].node, &clocks); |
126 | mutex_unlock(&clocks_mutex); | 126 | mutex_unlock(&clocks_mutex); |
127 | } | 127 | } |
128 | |||
129 | int clk_add_alias(char *alias, struct device *alias_dev, char *id, | ||
130 | struct device *dev) | ||
131 | { | ||
132 | struct clk *r = clk_lookup(dev, id); | ||
133 | struct clk *new; | ||
134 | |||
135 | if (!r) | ||
136 | return -ENODEV; | ||
137 | |||
138 | new = kzalloc(sizeof(struct clk), GFP_KERNEL); | ||
139 | |||
140 | if (!new) | ||
141 | return -ENOMEM; | ||
142 | |||
143 | new->name = alias; | ||
144 | new->dev = alias_dev; | ||
145 | new->other = r; | ||
146 | |||
147 | mutex_lock(&clocks_mutex); | ||
148 | list_add(&new->node, &clocks); | ||
149 | mutex_unlock(&clocks_mutex); | ||
150 | |||
151 | return 0; | ||
152 | } | ||