Allows using clk_get()/clk_enable()/clk_disable() for VIU
clock in the v4l2 video driver.

Signed-off-by: Hongjun Chen <hong-jun.c...@freescale.com>
Signed-off-by: Anatolij Gustschin <ag...@denx.de>
---
 arch/powerpc/platforms/512x/clock.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/platforms/512x/clock.c 
b/arch/powerpc/platforms/512x/clock.c
index 4c42246..e1c5cd6 100644
--- a/arch/powerpc/platforms/512x/clock.c
+++ b/arch/powerpc/platforms/512x/clock.c
@@ -292,6 +292,15 @@ static void diu_clk_calc(struct clk *clk)
        clk->rate = rate;
 }
 
+static void viu_clk_calc(struct clk *clk)
+{
+       unsigned long rate;
+
+       rate = sys_clk.rate;
+       rate /= 2;
+       clk->rate = rate;
+}
+
 static void half_clk_calc(struct clk *clk)
 {
        clk->rate = clk->parent->rate / 2;
@@ -412,6 +421,14 @@ static struct clk diu_clk = {
        .calc = diu_clk_calc,
 };
 
+static struct clk viu_clk = {
+       .name = "viu_clk",
+       .flags = CLK_HAS_CTRL,
+       .reg = 1,
+       .bit = 18,
+       .calc = viu_clk_calc,
+};
+
 static struct clk axe_clk = {
        .name = "axe_clk",
        .flags = CLK_HAS_CTRL,
@@ -535,6 +552,7 @@ struct clk *rate_clks[] = {
        &ref_clk,
        &sys_clk,
        &diu_clk,
+       &viu_clk,
        &csb_clk,
        &e300_clk,
        &ips_clk,
-- 
1.7.0.4

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to