diff options
Diffstat (limited to 'arch/arm/mach-omap2/prcm.c')
-rw-r--r-- | arch/arm/mach-omap2/prcm.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c index 029d376198d4..3ea8177ffb25 100644 --- a/arch/arm/mach-omap2/prcm.c +++ b/arch/arm/mach-omap2/prcm.c | |||
@@ -34,6 +34,7 @@ | |||
34 | 34 | ||
35 | static void __iomem *prm_base; | 35 | static void __iomem *prm_base; |
36 | static void __iomem *cm_base; | 36 | static void __iomem *cm_base; |
37 | static void __iomem *cm2_base; | ||
37 | 38 | ||
38 | #define MAX_MODULE_ENABLE_WAIT 100000 | 39 | #define MAX_MODULE_ENABLE_WAIT 100000 |
39 | 40 | ||
@@ -170,14 +171,12 @@ u32 prm_read_mod_reg(s16 module, u16 idx) | |||
170 | { | 171 | { |
171 | return __omap_prcm_read(prm_base, module, idx); | 172 | return __omap_prcm_read(prm_base, module, idx); |
172 | } | 173 | } |
173 | EXPORT_SYMBOL(prm_read_mod_reg); | ||
174 | 174 | ||
175 | /* Write into a register in a PRM module */ | 175 | /* Write into a register in a PRM module */ |
176 | void prm_write_mod_reg(u32 val, s16 module, u16 idx) | 176 | void prm_write_mod_reg(u32 val, s16 module, u16 idx) |
177 | { | 177 | { |
178 | __omap_prcm_write(val, prm_base, module, idx); | 178 | __omap_prcm_write(val, prm_base, module, idx); |
179 | } | 179 | } |
180 | EXPORT_SYMBOL(prm_write_mod_reg); | ||
181 | 180 | ||
182 | /* Read-modify-write a register in a PRM module. Caller must lock */ | 181 | /* Read-modify-write a register in a PRM module. Caller must lock */ |
183 | u32 prm_rmw_mod_reg_bits(u32 mask, u32 bits, s16 module, s16 idx) | 182 | u32 prm_rmw_mod_reg_bits(u32 mask, u32 bits, s16 module, s16 idx) |
@@ -191,21 +190,18 @@ u32 prm_rmw_mod_reg_bits(u32 mask, u32 bits, s16 module, s16 idx) | |||
191 | 190 | ||
192 | return v; | 191 | return v; |
193 | } | 192 | } |
194 | EXPORT_SYMBOL(prm_rmw_mod_reg_bits); | ||
195 | 193 | ||
196 | /* Read a register in a CM module */ | 194 | /* Read a register in a CM module */ |
197 | u32 cm_read_mod_reg(s16 module, u16 idx) | 195 | u32 cm_read_mod_reg(s16 module, u16 idx) |
198 | { | 196 | { |
199 | return __omap_prcm_read(cm_base, module, idx); | 197 | return __omap_prcm_read(cm_base, module, idx); |
200 | } | 198 | } |
201 | EXPORT_SYMBOL(cm_read_mod_reg); | ||
202 | 199 | ||
203 | /* Write into a register in a CM module */ | 200 | /* Write into a register in a CM module */ |
204 | void cm_write_mod_reg(u32 val, s16 module, u16 idx) | 201 | void cm_write_mod_reg(u32 val, s16 module, u16 idx) |
205 | { | 202 | { |
206 | __omap_prcm_write(val, cm_base, module, idx); | 203 | __omap_prcm_write(val, cm_base, module, idx); |
207 | } | 204 | } |
208 | EXPORT_SYMBOL(cm_write_mod_reg); | ||
209 | 205 | ||
210 | /* Read-modify-write a register in a CM module. Caller must lock */ | 206 | /* Read-modify-write a register in a CM module. Caller must lock */ |
211 | u32 cm_rmw_mod_reg_bits(u32 mask, u32 bits, s16 module, s16 idx) | 207 | u32 cm_rmw_mod_reg_bits(u32 mask, u32 bits, s16 module, s16 idx) |
@@ -219,7 +215,6 @@ u32 cm_rmw_mod_reg_bits(u32 mask, u32 bits, s16 module, s16 idx) | |||
219 | 215 | ||
220 | return v; | 216 | return v; |
221 | } | 217 | } |
222 | EXPORT_SYMBOL(cm_rmw_mod_reg_bits); | ||
223 | 218 | ||
224 | /** | 219 | /** |
225 | * omap2_cm_wait_idlest - wait for IDLEST bit to indicate module readiness | 220 | * omap2_cm_wait_idlest - wait for IDLEST bit to indicate module readiness |
@@ -247,9 +242,8 @@ int omap2_cm_wait_idlest(void __iomem *reg, u32 mask, const char *name) | |||
247 | BUG(); | 242 | BUG(); |
248 | 243 | ||
249 | /* Wait for lock */ | 244 | /* Wait for lock */ |
250 | while (((__raw_readl(reg) & mask) != ena) && | 245 | omap_test_timeout(((__raw_readl(reg) & mask) == ena), |
251 | (i++ < MAX_MODULE_ENABLE_WAIT)) | 246 | MAX_MODULE_ENABLE_WAIT, i); |
252 | udelay(1); | ||
253 | 247 | ||
254 | if (i < MAX_MODULE_ENABLE_WAIT) | 248 | if (i < MAX_MODULE_ENABLE_WAIT) |
255 | pr_debug("cm: Module associated with clock %s ready after %d " | 249 | pr_debug("cm: Module associated with clock %s ready after %d " |
@@ -265,6 +259,7 @@ void __init omap2_set_globals_prcm(struct omap_globals *omap2_globals) | |||
265 | { | 259 | { |
266 | prm_base = omap2_globals->prm; | 260 | prm_base = omap2_globals->prm; |
267 | cm_base = omap2_globals->cm; | 261 | cm_base = omap2_globals->cm; |
262 | cm2_base = omap2_globals->cm2; | ||
268 | } | 263 | } |
269 | 264 | ||
270 | #ifdef CONFIG_ARCH_OMAP3 | 265 | #ifdef CONFIG_ARCH_OMAP3 |