summaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-s5p/clock.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2011-08-08 16:41:23 +0900
committerPaul Mundt <lethal@linux-sh.org>2011-08-08 16:41:23 +0900
commit4791d63bd40ec63c533060707dae0232b9969dc0 (patch)
tree8e10fe91cea556c10f7d211b65c5f6bdd7ffeb55 /arch/arm/plat-s5p/clock.c
parentb3623080ff6974e696710b6c6eb4cdbf2bbab347 (diff)
parent322a8b034003c0d46d39af85bf24fee27b902f48 (diff)
downloadblackbird-op-linux-4791d63bd40ec63c533060707dae0232b9969dc0.tar.gz
blackbird-op-linux-4791d63bd40ec63c533060707dae0232b9969dc0.zip
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into rmobile-latest
Diffstat (limited to 'arch/arm/plat-s5p/clock.c')
-rw-r--r--arch/arm/plat-s5p/clock.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/arch/arm/plat-s5p/clock.c b/arch/arm/plat-s5p/clock.c
index 8d081d968c58..02af235298e2 100644
--- a/arch/arm/plat-s5p/clock.c
+++ b/arch/arm/plat-s5p/clock.c
@@ -168,6 +168,41 @@ unsigned long s5p_epll_get_rate(struct clk *clk)
return clk->rate;
}
+int s5p_spdif_set_rate(struct clk *clk, unsigned long rate)
+{
+ struct clk *pclk;
+ int ret;
+
+ pclk = clk_get_parent(clk);
+ if (IS_ERR(pclk))
+ return -EINVAL;
+
+ ret = pclk->ops->set_rate(pclk, rate);
+ clk_put(pclk);
+
+ return ret;
+}
+
+unsigned long s5p_spdif_get_rate(struct clk *clk)
+{
+ struct clk *pclk;
+ int rate;
+
+ pclk = clk_get_parent(clk);
+ if (IS_ERR(pclk))
+ return -EINVAL;
+
+ rate = pclk->ops->get_rate(clk);
+ clk_put(pclk);
+
+ return rate;
+}
+
+struct clk_ops s5p_sclk_spdif_ops = {
+ .set_rate = s5p_spdif_set_rate,
+ .get_rate = s5p_spdif_get_rate,
+};
+
static struct clk *s5p_clks[] __initdata = {
&clk_ext_xtal_mux,
&clk_48m,
OpenPOWER on IntegriCloud