ARM: OMAP4: PM: Modify Clock-domain interfaces for OMAP4 compatibility.
authorAbhijit Pagare <abhijitpagare@ti.com>
Wed, 27 Jan 2010 03:12:53 +0000 (20:12 -0700)
committerPaul Walmsley <paul@pwsan.com>
Wed, 27 Jan 2010 03:12:53 +0000 (20:12 -0700)
Here the APIs are modified to use absolute addresses instead of module offsets.

Signed-off-by: Abhijit Pagare <abhijitpagare@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Rajendra Nayak <rnayak@ti.com>
arch/arm/mach-omap2/clockdomain.c

index 52885ac5bb5d28949394d39353c410f9d329cfad..5366a10d8597213e8482f74ff08b1198f0a32caf 100644 (file)
@@ -145,25 +145,29 @@ static void _clkdm_del_autodeps(struct clockdomain *clkdm)
  */
 static void _omap2_clkdm_set_hwsup(struct clockdomain *clkdm, int enable)
 {
-       u32 v;
+       u32 bits, v;
 
        if (cpu_is_omap24xx()) {
                if (enable)
-                       v = OMAP24XX_CLKSTCTRL_ENABLE_AUTO;
+                       bits = OMAP24XX_CLKSTCTRL_ENABLE_AUTO;
                else
-                       v = OMAP24XX_CLKSTCTRL_DISABLE_AUTO;
+                       bits = OMAP24XX_CLKSTCTRL_DISABLE_AUTO;
        } else if (cpu_is_omap34xx()) {
                if (enable)
-                       v = OMAP34XX_CLKSTCTRL_ENABLE_AUTO;
+                       bits = OMAP34XX_CLKSTCTRL_ENABLE_AUTO;
                else
-                       v = OMAP34XX_CLKSTCTRL_DISABLE_AUTO;
+                       bits = OMAP34XX_CLKSTCTRL_DISABLE_AUTO;
        } else {
                BUG();
        }
 
-       cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask,
-                           v << __ffs(clkdm->clktrctrl_mask),
-                           clkdm->pwrdm.ptr->prcm_offs, OMAP2_CM_CLKSTCTRL);
+       bits = bits << __ffs(clkdm->clktrctrl_mask);
+
+       v = __raw_readl(clkdm->clkstctrl_reg);
+       v &= ~(clkdm->clktrctrl_mask);
+       v |= bits;
+       __raw_writel(v, clkdm->clkstctrl_reg);
+
 }
 
 static struct clockdomain *_clkdm_lookup(const char *name)
@@ -381,7 +385,7 @@ static int omap2_clkdm_clktrctrl_read(struct clockdomain *clkdm)
        if (!clkdm)
                return -EINVAL;
 
-       v = cm_read_mod_reg(clkdm->pwrdm.ptr->prcm_offs, OMAP2_CM_CLKSTCTRL);
+       v = __raw_readl(clkdm->clkstctrl_reg);
        v &= clkdm->clktrctrl_mask;
        v >>= __ffs(clkdm->clktrctrl_mask);
 
@@ -417,12 +421,13 @@ int omap2_clkdm_sleep(struct clockdomain *clkdm)
 
        } else if (cpu_is_omap34xx()) {
 
-               u32 v = (OMAP34XX_CLKSTCTRL_FORCE_SLEEP <<
+               u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_SLEEP <<
                         __ffs(clkdm->clktrctrl_mask));
 
-               cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask, v,
-                                   clkdm->pwrdm.ptr->prcm_offs,
-                                                        OMAP2_CM_CLKSTCTRL);
+               u32 v = __raw_readl(clkdm->clkstctrl_reg);
+               v &= ~(clkdm->clktrctrl_mask);
+               v |= bits;
+               __raw_writel(v, clkdm->clkstctrl_reg);
 
        } else {
                BUG();
@@ -460,12 +465,13 @@ int omap2_clkdm_wakeup(struct clockdomain *clkdm)
 
        } else if (cpu_is_omap34xx()) {
 
-               u32 v = (OMAP34XX_CLKSTCTRL_FORCE_WAKEUP <<
+               u32 bits = (OMAP34XX_CLKSTCTRL_FORCE_WAKEUP <<
                         __ffs(clkdm->clktrctrl_mask));
 
-               cm_rmw_mod_reg_bits(clkdm->clktrctrl_mask, v,
-                                   clkdm->pwrdm.ptr->prcm_offs,
-                                                OMAP2_CM_CLKSTCTRL);
+               u32 v = __raw_readl(clkdm->clkstctrl_reg);
+               v &= ~(clkdm->clktrctrl_mask);
+               v |= bits;
+               __raw_writel(v, clkdm->clkstctrl_reg);
 
        } else {
                BUG();
@@ -561,7 +567,7 @@ int omap2_clkdm_clk_enable(struct clockdomain *clkdm, struct clk *clk)
         * downstream clocks for debugging purposes?
         */
 
-       if (!clkdm || !clk || !clkdm->clktrctrl_mask)
+       if (!clkdm || !clk || !clkdm->clkstctrl_reg)
                return -EINVAL;
 
        if (atomic_inc_return(&clkdm->usecount) > 1)
@@ -612,7 +618,7 @@ int omap2_clkdm_clk_disable(struct clockdomain *clkdm, struct clk *clk)
         * downstream clocks for debugging purposes?
         */
 
-       if (!clkdm || !clk || !clkdm->clktrctrl_mask)
+       if (!clkdm || !clk || !clkdm->clkstctrl_reg)
                return -EINVAL;
 
 #ifdef DEBUG