aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/clkt_clksel.c10
-rw-r--r--arch/arm/mach-omap2/clkt_dpll.c6
-rw-r--r--arch/arm/mach-omap2/clkt_iclk.c20
-rw-r--r--arch/arm/mach-omap2/clock.c25
-rw-r--r--arch/arm/mach-omap2/clock36xx.c7
-rw-r--r--arch/arm/mach-omap2/dpll3xxx.c37
-rw-r--r--arch/arm/mach-omap2/dpll44xx.c12
7 files changed, 63 insertions, 54 deletions
diff --git a/arch/arm/mach-omap2/clkt_clksel.c b/arch/arm/mach-omap2/clkt_clksel.c
index 0ec9f6fdf046..7ee26108ac0d 100644
--- a/arch/arm/mach-omap2/clkt_clksel.c
+++ b/arch/arm/mach-omap2/clkt_clksel.c
@@ -97,12 +97,12 @@ static void _write_clksel_reg(struct clk_hw_omap *clk, u32 field_val)
97{ 97{
98 u32 v; 98 u32 v;
99 99
100 v = __raw_readl(clk->clksel_reg); 100 v = omap2_clk_readl(clk, clk->clksel_reg);
101 v &= ~clk->clksel_mask; 101 v &= ~clk->clksel_mask;
102 v |= field_val << __ffs(clk->clksel_mask); 102 v |= field_val << __ffs(clk->clksel_mask);
103 __raw_writel(v, clk->clksel_reg); 103 omap2_clk_writel(v, clk, clk->clksel_reg);
104 104
105 v = __raw_readl(clk->clksel_reg); /* OCP barrier */ 105 v = omap2_clk_readl(clk, clk->clksel_reg); /* OCP barrier */
106} 106}
107 107
108/** 108/**
@@ -204,7 +204,7 @@ static u32 _read_divisor(struct clk_hw_omap *clk)
204 if (!clk->clksel || !clk->clksel_mask) 204 if (!clk->clksel || !clk->clksel_mask)
205 return 0; 205 return 0;
206 206
207 v = __raw_readl(clk->clksel_reg); 207 v = omap2_clk_readl(clk, clk->clksel_reg);
208 v &= clk->clksel_mask; 208 v &= clk->clksel_mask;
209 v >>= __ffs(clk->clksel_mask); 209 v >>= __ffs(clk->clksel_mask);
210 210
@@ -320,7 +320,7 @@ u8 omap2_clksel_find_parent_index(struct clk_hw *hw)
320 WARN((!clk->clksel || !clk->clksel_mask), 320 WARN((!clk->clksel || !clk->clksel_mask),
321 "clock: %s: attempt to call on a non-clksel clock", clk_name); 321 "clock: %s: attempt to call on a non-clksel clock", clk_name);
322 322
323 r = __raw_readl(clk->clksel_reg) & clk->clksel_mask; 323 r = omap2_clk_readl(clk, clk->clksel_reg) & clk->clksel_mask;
324 r >>= __ffs(clk->clksel_mask); 324 r >>= __ffs(clk->clksel_mask);
325 325
326 for (clks = clk->clksel; clks->parent && !found; clks++) { 326 for (clks = clk->clksel; clks->parent && !found; clks++) {
diff --git a/arch/arm/mach-omap2/clkt_dpll.c b/arch/arm/mach-omap2/clkt_dpll.c
index 924c230f8948..47f9562ca7aa 100644
--- a/arch/arm/mach-omap2/clkt_dpll.c
+++ b/arch/arm/mach-omap2/clkt_dpll.c
@@ -196,7 +196,7 @@ u8 omap2_init_dpll_parent(struct clk_hw *hw)
196 if (!dd) 196 if (!dd)
197 return -EINVAL; 197 return -EINVAL;
198 198
199 v = __raw_readl(dd->control_reg); 199 v = omap2_clk_readl(clk, dd->control_reg);
200 v &= dd->enable_mask; 200 v &= dd->enable_mask;
201 v >>= __ffs(dd->enable_mask); 201 v >>= __ffs(dd->enable_mask);
202 202
@@ -243,7 +243,7 @@ unsigned long omap2_get_dpll_rate(struct clk_hw_omap *clk)
243 return 0; 243 return 0;
244 244
245 /* Return bypass rate if DPLL is bypassed */ 245 /* Return bypass rate if DPLL is bypassed */
246 v = __raw_readl(dd->control_reg); 246 v = omap2_clk_readl(clk, dd->control_reg);
247 v &= dd->enable_mask; 247 v &= dd->enable_mask;
248 v >>= __ffs(dd->enable_mask); 248 v >>= __ffs(dd->enable_mask);
249 249
@@ -262,7 +262,7 @@ unsigned long omap2_get_dpll_rate(struct clk_hw_omap *clk)
262 return __clk_get_rate(dd->clk_bypass); 262 return __clk_get_rate(dd->clk_bypass);
263 } 263 }
264 264
265 v = __raw_readl(dd->mult_div1_reg); 265 v = omap2_clk_readl(clk, dd->mult_div1_reg);
266 dpll_mult = v & dd->mult_mask; 266 dpll_mult = v & dd->mult_mask;
267 dpll_mult >>= __ffs(dd->mult_mask); 267 dpll_mult >>= __ffs(dd->mult_mask);
268 dpll_div = v & dd->div1_mask; 268 dpll_div = v & dd->div1_mask;
diff --git a/arch/arm/mach-omap2/clkt_iclk.c b/arch/arm/mach-omap2/clkt_iclk.c
index f10eb03ce3e2..333f0a666171 100644
--- a/arch/arm/mach-omap2/clkt_iclk.c
+++ b/arch/arm/mach-omap2/clkt_iclk.c
@@ -25,25 +25,29 @@
25/* XXX */ 25/* XXX */
26void omap2_clkt_iclk_allow_idle(struct clk_hw_omap *clk) 26void omap2_clkt_iclk_allow_idle(struct clk_hw_omap *clk)
27{ 27{
28 u32 v, r; 28 u32 v;
29 void __iomem *r;
29 30
30 r = ((__force u32)clk->enable_reg ^ (CM_AUTOIDLE ^ CM_ICLKEN)); 31 r = (__force void __iomem *)
32 ((__force u32)clk->enable_reg ^ (CM_AUTOIDLE ^ CM_ICLKEN));
31 33
32 v = __raw_readl((__force void __iomem *)r); 34 v = omap2_clk_readl(clk, r);
33 v |= (1 << clk->enable_bit); 35 v |= (1 << clk->enable_bit);
34 __raw_writel(v, (__force void __iomem *)r); 36 omap2_clk_writel(v, clk, r);
35} 37}
36 38
37/* XXX */ 39/* XXX */
38void omap2_clkt_iclk_deny_idle(struct clk_hw_omap *clk) 40void omap2_clkt_iclk_deny_idle(struct clk_hw_omap *clk)
39{ 41{
40 u32 v, r; 42 u32 v;
43 void __iomem *r;
41 44
42 r = ((__force u32)clk->enable_reg ^ (CM_AUTOIDLE ^ CM_ICLKEN)); 45 r = (__force void __iomem *)
46 ((__force u32)clk->enable_reg ^ (CM_AUTOIDLE ^ CM_ICLKEN));
43 47
44 v = __raw_readl((__force void __iomem *)r); 48 v = omap2_clk_readl(clk, r);
45 v &= ~(1 << clk->enable_bit); 49 v &= ~(1 << clk->enable_bit);
46 __raw_writel(v, (__force void __iomem *)r); 50 omap2_clk_writel(v, clk, r);
47} 51}
48 52
49/* Public data */ 53/* Public data */
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
index be53bb21301c..591581a66532 100644
--- a/arch/arm/mach-omap2/clock.c
+++ b/arch/arm/mach-omap2/clock.c
@@ -111,6 +111,7 @@ unsigned long omap_fixed_divisor_recalc(struct clk_hw *hw,
111 111
112/** 112/**
113 * _wait_idlest_generic - wait for a module to leave the idle state 113 * _wait_idlest_generic - wait for a module to leave the idle state
114 * @clk: module clock to wait for (needed for register offsets)
114 * @reg: virtual address of module IDLEST register 115 * @reg: virtual address of module IDLEST register
115 * @mask: value to mask against to determine if the module is active 116 * @mask: value to mask against to determine if the module is active
116 * @idlest: idle state indicator (0 or 1) for the clock 117 * @idlest: idle state indicator (0 or 1) for the clock
@@ -122,14 +123,14 @@ unsigned long omap_fixed_divisor_recalc(struct clk_hw *hw,
122 * elapsed. XXX Deprecated - should be moved into drivers for the 123 * elapsed. XXX Deprecated - should be moved into drivers for the
123 * individual IP block that the IDLEST register exists in. 124 * individual IP block that the IDLEST register exists in.
124 */ 125 */
125static int _wait_idlest_generic(void __iomem *reg, u32 mask, u8 idlest, 126static int _wait_idlest_generic(struct clk_hw_omap *clk, void __iomem *reg,
126 const char *name) 127 u32 mask, u8 idlest, const char *name)
127{ 128{
128 int i = 0, ena = 0; 129 int i = 0, ena = 0;
129 130
130 ena = (idlest) ? 0 : mask; 131 ena = (idlest) ? 0 : mask;
131 132
132 omap_test_timeout(((__raw_readl(reg) & mask) == ena), 133 omap_test_timeout(((omap2_clk_readl(clk, reg) & mask) == ena),
133 MAX_MODULE_ENABLE_WAIT, i); 134 MAX_MODULE_ENABLE_WAIT, i);
134 135
135 if (i < MAX_MODULE_ENABLE_WAIT) 136 if (i < MAX_MODULE_ENABLE_WAIT)
@@ -162,7 +163,7 @@ static void _omap2_module_wait_ready(struct clk_hw_omap *clk)
162 /* Not all modules have multiple clocks that their IDLEST depends on */ 163 /* Not all modules have multiple clocks that their IDLEST depends on */
163 if (clk->ops->find_companion) { 164 if (clk->ops->find_companion) {
164 clk->ops->find_companion(clk, &companion_reg, &other_bit); 165 clk->ops->find_companion(clk, &companion_reg, &other_bit);
165 if (!(__raw_readl(companion_reg) & (1 << other_bit))) 166 if (!(omap2_clk_readl(clk, companion_reg) & (1 << other_bit)))
166 return; 167 return;
167 } 168 }
168 169
@@ -170,8 +171,8 @@ static void _omap2_module_wait_ready(struct clk_hw_omap *clk)
170 r = cm_split_idlest_reg(idlest_reg, &prcm_mod, &idlest_reg_id); 171 r = cm_split_idlest_reg(idlest_reg, &prcm_mod, &idlest_reg_id);
171 if (r) { 172 if (r) {
172 /* IDLEST register not in the CM module */ 173 /* IDLEST register not in the CM module */
173 _wait_idlest_generic(idlest_reg, (1 << idlest_bit), idlest_val, 174 _wait_idlest_generic(clk, idlest_reg, (1 << idlest_bit),
174 __clk_get_name(clk->hw.clk)); 175 idlest_val, __clk_get_name(clk->hw.clk));
175 } else { 176 } else {
176 cm_wait_module_ready(prcm_mod, idlest_reg_id, idlest_bit); 177 cm_wait_module_ready(prcm_mod, idlest_reg_id, idlest_bit);
177 }; 178 };
@@ -333,13 +334,13 @@ int omap2_dflt_clk_enable(struct clk_hw *hw)
333 } 334 }
334 335
335 /* FIXME should not have INVERT_ENABLE bit here */ 336 /* FIXME should not have INVERT_ENABLE bit here */
336 v = __raw_readl(clk->enable_reg); 337 v = omap2_clk_readl(clk, clk->enable_reg);
337 if (clk->flags & INVERT_ENABLE) 338 if (clk->flags & INVERT_ENABLE)
338 v &= ~(1 << clk->enable_bit); 339 v &= ~(1 << clk->enable_bit);
339 else 340 else
340 v |= (1 << clk->enable_bit); 341 v |= (1 << clk->enable_bit);
341 __raw_writel(v, clk->enable_reg); 342 omap2_clk_writel(v, clk, clk->enable_reg);
342 v = __raw_readl(clk->enable_reg); /* OCP barrier */ 343 v = omap2_clk_readl(clk, clk->enable_reg); /* OCP barrier */
343 344
344 if (clk->ops && clk->ops->find_idlest) 345 if (clk->ops && clk->ops->find_idlest)
345 _omap2_module_wait_ready(clk); 346 _omap2_module_wait_ready(clk);
@@ -377,12 +378,12 @@ void omap2_dflt_clk_disable(struct clk_hw *hw)
377 return; 378 return;
378 } 379 }
379 380
380 v = __raw_readl(clk->enable_reg); 381 v = omap2_clk_readl(clk, clk->enable_reg);
381 if (clk->flags & INVERT_ENABLE) 382 if (clk->flags & INVERT_ENABLE)
382 v |= (1 << clk->enable_bit); 383 v |= (1 << clk->enable_bit);
383 else 384 else
384 v &= ~(1 << clk->enable_bit); 385 v &= ~(1 << clk->enable_bit);
385 __raw_writel(v, clk->enable_reg); 386 omap2_clk_writel(v, clk, clk->enable_reg);
386 /* No OCP barrier needed here since it is a disable operation */ 387 /* No OCP barrier needed here since it is a disable operation */
387 388
388 if (clkdm_control && clk->clkdm) 389 if (clkdm_control && clk->clkdm)
@@ -478,7 +479,7 @@ int omap2_dflt_clk_is_enabled(struct clk_hw *hw)
478 struct clk_hw_omap *clk = to_clk_hw_omap(hw); 479 struct clk_hw_omap *clk = to_clk_hw_omap(hw);
479 u32 v; 480 u32 v;
480 481
481 v = __raw_readl(clk->enable_reg); 482 v = omap2_clk_readl(clk, clk->enable_reg);
482 483
483 if (clk->flags & INVERT_ENABLE) 484 if (clk->flags & INVERT_ENABLE)
484 v ^= BIT(clk->enable_bit); 485 v ^= BIT(clk->enable_bit);
diff --git a/arch/arm/mach-omap2/clock36xx.c b/arch/arm/mach-omap2/clock36xx.c
index bbd6a3f717e6..91ccb962e09e 100644
--- a/arch/arm/mach-omap2/clock36xx.c
+++ b/arch/arm/mach-omap2/clock36xx.c
@@ -43,6 +43,7 @@ int omap36xx_pwrdn_clk_enable_with_hsdiv_restore(struct clk_hw *clk)
43 struct clk_divider *parent; 43 struct clk_divider *parent;
44 struct clk_hw *parent_hw; 44 struct clk_hw *parent_hw;
45 u32 dummy_v, orig_v; 45 u32 dummy_v, orig_v;
46 struct clk_hw_omap *omap_clk = to_clk_hw_omap(clk);
46 int ret; 47 int ret;
47 48
48 /* Clear PWRDN bit of HSDIVIDER */ 49 /* Clear PWRDN bit of HSDIVIDER */
@@ -53,15 +54,15 @@ int omap36xx_pwrdn_clk_enable_with_hsdiv_restore(struct clk_hw *clk)
53 54
54 /* Restore the dividers */ 55 /* Restore the dividers */
55 if (!ret) { 56 if (!ret) {
56 orig_v = __raw_readl(parent->reg); 57 orig_v = omap2_clk_readl(omap_clk, parent->reg);
57 dummy_v = orig_v; 58 dummy_v = orig_v;
58 59
59 /* Write any other value different from the Read value */ 60 /* Write any other value different from the Read value */
60 dummy_v ^= (1 << parent->shift); 61 dummy_v ^= (1 << parent->shift);
61 __raw_writel(dummy_v, parent->reg); 62 omap2_clk_writel(dummy_v, omap_clk, parent->reg);
62 63
63 /* Write the original divider */ 64 /* Write the original divider */
64 __raw_writel(orig_v, parent->reg); 65 omap2_clk_writel(orig_v, omap_clk, parent->reg);
65 } 66 }
66 67
67 return ret; 68 return ret;
diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c
index 3a0296cfcace..3185ced807c9 100644
--- a/arch/arm/mach-omap2/dpll3xxx.c
+++ b/arch/arm/mach-omap2/dpll3xxx.c
@@ -50,10 +50,10 @@ static void _omap3_dpll_write_clken(struct clk_hw_omap *clk, u8 clken_bits)
50 50
51 dd = clk->dpll_data; 51 dd = clk->dpll_data;
52 52
53 v = __raw_readl(dd->control_reg); 53 v = omap2_clk_readl(clk, dd->control_reg);
54 v &= ~dd->enable_mask; 54 v &= ~dd->enable_mask;
55 v |= clken_bits << __ffs(dd->enable_mask); 55 v |= clken_bits << __ffs(dd->enable_mask);
56 __raw_writel(v, dd->control_reg); 56 omap2_clk_writel(v, clk, dd->control_reg);
57} 57}
58 58
59/* _omap3_wait_dpll_status: wait for a DPLL to enter a specific state */ 59/* _omap3_wait_dpll_status: wait for a DPLL to enter a specific state */
@@ -69,8 +69,8 @@ static int _omap3_wait_dpll_status(struct clk_hw_omap *clk, u8 state)
69 69
70 state <<= __ffs(dd->idlest_mask); 70 state <<= __ffs(dd->idlest_mask);
71 71
72 while (((__raw_readl(dd->idlest_reg) & dd->idlest_mask) != state) && 72 while (((omap2_clk_readl(clk, dd->idlest_reg) & dd->idlest_mask)
73 i < MAX_DPLL_WAIT_TRIES) { 73 != state) && i < MAX_DPLL_WAIT_TRIES) {
74 i++; 74 i++;
75 udelay(1); 75 udelay(1);
76 } 76 }
@@ -147,7 +147,7 @@ static int _omap3_noncore_dpll_lock(struct clk_hw_omap *clk)
147 state <<= __ffs(dd->idlest_mask); 147 state <<= __ffs(dd->idlest_mask);
148 148
149 /* Check if already locked */ 149 /* Check if already locked */
150 if ((__raw_readl(dd->idlest_reg) & dd->idlest_mask) == state) 150 if ((omap2_clk_readl(clk, dd->idlest_reg) & dd->idlest_mask) == state)
151 goto done; 151 goto done;
152 152
153 ai = omap3_dpll_autoidle_read(clk); 153 ai = omap3_dpll_autoidle_read(clk);
@@ -311,14 +311,14 @@ static int omap3_noncore_dpll_program(struct clk_hw_omap *clk, u16 freqsel)
311 * only since freqsel field is no longer present on other devices. 311 * only since freqsel field is no longer present on other devices.
312 */ 312 */
313 if (cpu_is_omap343x()) { 313 if (cpu_is_omap343x()) {
314 v = __raw_readl(dd->control_reg); 314 v = omap2_clk_readl(clk, dd->control_reg);
315 v &= ~dd->freqsel_mask; 315 v &= ~dd->freqsel_mask;
316 v |= freqsel << __ffs(dd->freqsel_mask); 316 v |= freqsel << __ffs(dd->freqsel_mask);
317 __raw_writel(v, dd->control_reg); 317 omap2_clk_writel(v, clk, dd->control_reg);
318 } 318 }
319 319
320 /* Set DPLL multiplier, divider */ 320 /* Set DPLL multiplier, divider */
321 v = __raw_readl(dd->mult_div1_reg); 321 v = omap2_clk_readl(clk, dd->mult_div1_reg);
322 v &= ~(dd->mult_mask | dd->div1_mask); 322 v &= ~(dd->mult_mask | dd->div1_mask);
323 v |= dd->last_rounded_m << __ffs(dd->mult_mask); 323 v |= dd->last_rounded_m << __ffs(dd->mult_mask);
324 v |= (dd->last_rounded_n - 1) << __ffs(dd->div1_mask); 324 v |= (dd->last_rounded_n - 1) << __ffs(dd->div1_mask);
@@ -336,11 +336,11 @@ static int omap3_noncore_dpll_program(struct clk_hw_omap *clk, u16 freqsel)
336 v |= sd_div << __ffs(dd->sddiv_mask); 336 v |= sd_div << __ffs(dd->sddiv_mask);
337 } 337 }
338 338
339 __raw_writel(v, dd->mult_div1_reg); 339 omap2_clk_writel(v, clk, dd->mult_div1_reg);
340 340
341 /* Set 4X multiplier and low-power mode */ 341 /* Set 4X multiplier and low-power mode */
342 if (dd->m4xen_mask || dd->lpmode_mask) { 342 if (dd->m4xen_mask || dd->lpmode_mask) {
343 v = __raw_readl(dd->control_reg); 343 v = omap2_clk_readl(clk, dd->control_reg);
344 344
345 if (dd->m4xen_mask) { 345 if (dd->m4xen_mask) {
346 if (dd->last_rounded_m4xen) 346 if (dd->last_rounded_m4xen)
@@ -356,7 +356,7 @@ static int omap3_noncore_dpll_program(struct clk_hw_omap *clk, u16 freqsel)
356 v &= ~dd->lpmode_mask; 356 v &= ~dd->lpmode_mask;
357 } 357 }
358 358
359 __raw_writel(v, dd->control_reg); 359 omap2_clk_writel(v, clk, dd->control_reg);
360 } 360 }
361 361
362 /* We let the clock framework set the other output dividers later */ 362 /* We let the clock framework set the other output dividers later */
@@ -554,7 +554,7 @@ u32 omap3_dpll_autoidle_read(struct clk_hw_omap *clk)
554 if (!dd->autoidle_reg) 554 if (!dd->autoidle_reg)
555 return -EINVAL; 555 return -EINVAL;
556 556
557 v = __raw_readl(dd->autoidle_reg); 557 v = omap2_clk_readl(clk, dd->autoidle_reg);
558 v &= dd->autoidle_mask; 558 v &= dd->autoidle_mask;
559 v >>= __ffs(dd->autoidle_mask); 559 v >>= __ffs(dd->autoidle_mask);
560 560
@@ -588,10 +588,10 @@ void omap3_dpll_allow_idle(struct clk_hw_omap *clk)
588 * by writing 0x5 instead of 0x1. Add some mechanism to 588 * by writing 0x5 instead of 0x1. Add some mechanism to
589 * optionally enter this mode. 589 * optionally enter this mode.
590 */ 590 */
591 v = __raw_readl(dd->autoidle_reg); 591 v = omap2_clk_readl(clk, dd->autoidle_reg);
592 v &= ~dd->autoidle_mask; 592 v &= ~dd->autoidle_mask;
593 v |= DPLL_AUTOIDLE_LOW_POWER_STOP << __ffs(dd->autoidle_mask); 593 v |= DPLL_AUTOIDLE_LOW_POWER_STOP << __ffs(dd->autoidle_mask);
594 __raw_writel(v, dd->autoidle_reg); 594 omap2_clk_writel(v, clk, dd->autoidle_reg);
595 595
596} 596}
597 597
@@ -614,10 +614,10 @@ void omap3_dpll_deny_idle(struct clk_hw_omap *clk)
614 if (!dd->autoidle_reg) 614 if (!dd->autoidle_reg)
615 return; 615 return;
616 616
617 v = __raw_readl(dd->autoidle_reg); 617 v = omap2_clk_readl(clk, dd->autoidle_reg);
618 v &= ~dd->autoidle_mask; 618 v &= ~dd->autoidle_mask;
619 v |= DPLL_AUTOIDLE_DISABLE << __ffs(dd->autoidle_mask); 619 v |= DPLL_AUTOIDLE_DISABLE << __ffs(dd->autoidle_mask);
620 __raw_writel(v, dd->autoidle_reg); 620 omap2_clk_writel(v, clk, dd->autoidle_reg);
621 621
622} 622}
623 623
@@ -639,6 +639,9 @@ unsigned long omap3_clkoutx2_recalc(struct clk_hw *hw,
639 struct clk_hw_omap *pclk = NULL; 639 struct clk_hw_omap *pclk = NULL;
640 struct clk *parent; 640 struct clk *parent;
641 641
642 if (!parent_rate)
643 return 0;
644
642 /* Walk up the parents of clk, looking for a DPLL */ 645 /* Walk up the parents of clk, looking for a DPLL */
643 do { 646 do {
644 do { 647 do {
@@ -660,7 +663,7 @@ unsigned long omap3_clkoutx2_recalc(struct clk_hw *hw,
660 663
661 WARN_ON(!dd->enable_mask); 664 WARN_ON(!dd->enable_mask);
662 665
663 v = __raw_readl(dd->control_reg) & dd->enable_mask; 666 v = omap2_clk_readl(pclk, dd->control_reg) & dd->enable_mask;
664 v >>= __ffs(dd->enable_mask); 667 v >>= __ffs(dd->enable_mask);
665 if ((v != OMAP3XXX_EN_DPLL_LOCKED) || (dd->flags & DPLL_J_TYPE)) 668 if ((v != OMAP3XXX_EN_DPLL_LOCKED) || (dd->flags & DPLL_J_TYPE))
666 rate = parent_rate; 669 rate = parent_rate;
diff --git a/arch/arm/mach-omap2/dpll44xx.c b/arch/arm/mach-omap2/dpll44xx.c
index d28b0f726715..52f9438b92f2 100644
--- a/arch/arm/mach-omap2/dpll44xx.c
+++ b/arch/arm/mach-omap2/dpll44xx.c
@@ -42,7 +42,7 @@ int omap4_dpllmx_gatectrl_read(struct clk_hw_omap *clk)
42 OMAP4430_DPLL_CLKOUTX2_GATE_CTRL_MASK : 42 OMAP4430_DPLL_CLKOUTX2_GATE_CTRL_MASK :
43 OMAP4430_DPLL_CLKOUT_GATE_CTRL_MASK; 43 OMAP4430_DPLL_CLKOUT_GATE_CTRL_MASK;
44 44
45 v = __raw_readl(clk->clksel_reg); 45 v = omap2_clk_readl(clk, clk->clksel_reg);
46 v &= mask; 46 v &= mask;
47 v >>= __ffs(mask); 47 v >>= __ffs(mask);
48 48
@@ -61,10 +61,10 @@ void omap4_dpllmx_allow_gatectrl(struct clk_hw_omap *clk)
61 OMAP4430_DPLL_CLKOUTX2_GATE_CTRL_MASK : 61 OMAP4430_DPLL_CLKOUTX2_GATE_CTRL_MASK :
62 OMAP4430_DPLL_CLKOUT_GATE_CTRL_MASK; 62 OMAP4430_DPLL_CLKOUT_GATE_CTRL_MASK;
63 63
64 v = __raw_readl(clk->clksel_reg); 64 v = omap2_clk_readl(clk, clk->clksel_reg);
65 /* Clear the bit to allow gatectrl */ 65 /* Clear the bit to allow gatectrl */
66 v &= ~mask; 66 v &= ~mask;
67 __raw_writel(v, clk->clksel_reg); 67 omap2_clk_writel(v, clk, clk->clksel_reg);
68} 68}
69 69
70void omap4_dpllmx_deny_gatectrl(struct clk_hw_omap *clk) 70void omap4_dpllmx_deny_gatectrl(struct clk_hw_omap *clk)
@@ -79,10 +79,10 @@ void omap4_dpllmx_deny_gatectrl(struct clk_hw_omap *clk)
79 OMAP4430_DPLL_CLKOUTX2_GATE_CTRL_MASK : 79 OMAP4430_DPLL_CLKOUTX2_GATE_CTRL_MASK :
80 OMAP4430_DPLL_CLKOUT_GATE_CTRL_MASK; 80 OMAP4430_DPLL_CLKOUT_GATE_CTRL_MASK;
81 81
82 v = __raw_readl(clk->clksel_reg); 82 v = omap2_clk_readl(clk, clk->clksel_reg);
83 /* Set the bit to deny gatectrl */ 83 /* Set the bit to deny gatectrl */
84 v |= mask; 84 v |= mask;
85 __raw_writel(v, clk->clksel_reg); 85 omap2_clk_writel(v, clk, clk->clksel_reg);
86} 86}
87 87
88const struct clk_hw_omap_ops clkhwops_omap4_dpllmx = { 88const struct clk_hw_omap_ops clkhwops_omap4_dpllmx = {
@@ -140,7 +140,7 @@ unsigned long omap4_dpll_regm4xen_recalc(struct clk_hw *hw,
140 rate = omap2_get_dpll_rate(clk); 140 rate = omap2_get_dpll_rate(clk);
141 141
142 /* regm4xen adds a multiplier of 4 to DPLL calculations */ 142 /* regm4xen adds a multiplier of 4 to DPLL calculations */
143 v = __raw_readl(dd->control_reg); 143 v = omap2_clk_readl(clk, dd->control_reg);
144 if (v & OMAP4430_DPLL_REGM4XEN_MASK) 144 if (v & OMAP4430_DPLL_REGM4XEN_MASK)
145 rate *= OMAP4430_REGM4XEN_MULT; 145 rate *= OMAP4430_REGM4XEN_MULT;
146 146