Commit 52585ccd93d75e368382af09ae336ed8f231642c
Committed by
Eric Miao
1 parent
4e234cc0ee
Exists in
master
and in
20 other branches
ARM: pxa: add clk_set_rate()
Since there're mulitple clock rates in some device controllers, enable clk_set_rate() for this usage. Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Showing 4 changed files with 32 additions and 0 deletions Side-by-side Diff
arch/arm/mach-mmp/clock.c
... | ... | @@ -88,4 +88,19 @@ |
88 | 88 | return rate; |
89 | 89 | } |
90 | 90 | EXPORT_SYMBOL(clk_get_rate); |
91 | + | |
92 | +int clk_set_rate(struct clk *clk, unsigned long rate) | |
93 | +{ | |
94 | + unsigned long flags; | |
95 | + int ret = -EINVAL; | |
96 | + | |
97 | + if (clk->ops->setrate) { | |
98 | + spin_lock_irqsave(&clocks_lock, flags); | |
99 | + ret = clk->ops->setrate(clk, rate); | |
100 | + spin_unlock_irqrestore(&clocks_lock, flags); | |
101 | + } | |
102 | + | |
103 | + return ret; | |
104 | +} | |
105 | +EXPORT_SYMBOL(clk_set_rate); |
arch/arm/mach-mmp/clock.h
arch/arm/mach-pxa/clock.c
... | ... | @@ -53,6 +53,21 @@ |
53 | 53 | } |
54 | 54 | EXPORT_SYMBOL(clk_get_rate); |
55 | 55 | |
56 | +int clk_set_rate(struct clk *clk, unsigned long rate) | |
57 | +{ | |
58 | + unsigned long flags; | |
59 | + int ret = -EINVAL; | |
60 | + | |
61 | + if (clk->ops->setrate) { | |
62 | + spin_lock_irqsave(&clocks_lock, flags); | |
63 | + ret = clk->ops->setrate(clk, rate); | |
64 | + spin_unlock_irqrestore(&clocks_lock, flags); | |
65 | + } | |
66 | + | |
67 | + return ret; | |
68 | +} | |
69 | +EXPORT_SYMBOL(clk_set_rate); | |
70 | + | |
56 | 71 | void clk_dummy_enable(struct clk *clk) |
57 | 72 | { |
58 | 73 | } |