aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/pm24xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/pm24xx.c')
-rw-r--r--arch/arm/mach-omap2/pm24xx.c212
1 files changed, 87 insertions, 125 deletions
diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c
index 6aeedeacdad8..df3ded6fe194 100644
--- a/arch/arm/mach-omap2/pm24xx.c
+++ b/arch/arm/mach-omap2/pm24xx.c
@@ -30,6 +30,7 @@
30#include <linux/irq.h> 30#include <linux/irq.h>
31#include <linux/time.h> 31#include <linux/time.h>
32#include <linux/gpio.h> 32#include <linux/gpio.h>
33#include <linux/console.h>
33 34
34#include <asm/mach/time.h> 35#include <asm/mach/time.h>
35#include <asm/mach/irq.h> 36#include <asm/mach/irq.h>
@@ -38,19 +39,32 @@
38#include <mach/irqs.h> 39#include <mach/irqs.h>
39#include <plat/clock.h> 40#include <plat/clock.h>
40#include <plat/sram.h> 41#include <plat/sram.h>
41#include <plat/control.h>
42#include <plat/dma.h> 42#include <plat/dma.h>
43#include <plat/board.h> 43#include <plat/board.h>
44 44
45#include "prm.h" 45#include "prm2xxx_3xxx.h"
46#include "prm-regbits-24xx.h" 46#include "prm-regbits-24xx.h"
47#include "cm.h" 47#include "cm2xxx_3xxx.h"
48#include "cm-regbits-24xx.h" 48#include "cm-regbits-24xx.h"
49#include "sdrc.h" 49#include "sdrc.h"
50#include "pm.h" 50#include "pm.h"
51#include "control.h"
51 52
52#include <plat/powerdomain.h> 53#include "powerdomain.h"
53#include <plat/clockdomain.h> 54#include "clockdomain.h"
55
56#ifdef CONFIG_SUSPEND
57static suspend_state_t suspend_state = PM_SUSPEND_ON;
58static inline bool is_suspending(void)
59{
60 return (suspend_state != PM_SUSPEND_ON);
61}
62#else
63static inline bool is_suspending(void)
64{
65 return false;
66}
67#endif
54 68
55static void (*omap2_sram_idle)(void); 69static void (*omap2_sram_idle)(void);
56static void (*omap2_sram_suspend)(u32 dllctrl, void __iomem *sdrc_dlla_ctrl, 70static void (*omap2_sram_suspend)(u32 dllctrl, void __iomem *sdrc_dlla_ctrl,
@@ -65,8 +79,8 @@ static int omap2_fclks_active(void)
65{ 79{
66 u32 f1, f2; 80 u32 f1, f2;
67 81
68 f1 = cm_read_mod_reg(CORE_MOD, CM_FCLKEN1); 82 f1 = omap2_cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
69 f2 = cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2); 83 f2 = omap2_cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2);
70 84
71 /* Ignore UART clocks. These are handled by UART core (serial.c) */ 85 /* Ignore UART clocks. These are handled by UART core (serial.c) */
72 f1 &= ~(OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_UART2_MASK); 86 f1 &= ~(OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_UART2_MASK);
@@ -91,9 +105,9 @@ static void omap2_enter_full_retention(void)
91 105
92 /* Clear old wake-up events */ 106 /* Clear old wake-up events */
93 /* REVISIT: These write to reserved bits? */ 107 /* REVISIT: These write to reserved bits? */
94 prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1); 108 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1);
95 prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2); 109 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2);
96 prm_write_mod_reg(0xffffffff, WKUP_MOD, PM_WKST); 110 omap2_prm_write_mod_reg(0xffffffff, WKUP_MOD, PM_WKST);
97 111
98 /* 112 /*
99 * Set MPU powerdomain's next power state to RETENTION; 113 * Set MPU powerdomain's next power state to RETENTION;
@@ -106,7 +120,7 @@ static void omap2_enter_full_retention(void)
106 l = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0) | OMAP24XX_USBSTANDBYCTRL; 120 l = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0) | OMAP24XX_USBSTANDBYCTRL;
107 omap_ctrl_writel(l, OMAP2_CONTROL_DEVCONF0); 121 omap_ctrl_writel(l, OMAP2_CONTROL_DEVCONF0);
108 122
109 omap2_gpio_prepare_for_idle(PWRDM_POWER_RET); 123 omap2_gpio_prepare_for_idle(0);
110 124
111 if (omap2_pm_debug) { 125 if (omap2_pm_debug) {
112 omap2_pm_dump(0, 0, 0); 126 omap2_pm_dump(0, 0, 0);
@@ -118,6 +132,11 @@ static void omap2_enter_full_retention(void)
118 if (omap_irq_pending()) 132 if (omap_irq_pending())
119 goto no_sleep; 133 goto no_sleep;
120 134
135 /* Block console output in case it is on one of the OMAP UARTs */
136 if (!is_suspending())
137 if (!console_trylock())
138 goto no_sleep;
139
121 omap_uart_prepare_idle(0); 140 omap_uart_prepare_idle(0);
122 omap_uart_prepare_idle(1); 141 omap_uart_prepare_idle(1);
123 omap_uart_prepare_idle(2); 142 omap_uart_prepare_idle(2);
@@ -131,6 +150,9 @@ static void omap2_enter_full_retention(void)
131 omap_uart_resume_idle(1); 150 omap_uart_resume_idle(1);
132 omap_uart_resume_idle(0); 151 omap_uart_resume_idle(0);
133 152
153 if (!is_suspending())
154 console_unlock();
155
134no_sleep: 156no_sleep:
135 if (omap2_pm_debug) { 157 if (omap2_pm_debug) {
136 unsigned long long tmp; 158 unsigned long long tmp;
@@ -145,30 +167,30 @@ no_sleep:
145 clk_enable(osc_ck); 167 clk_enable(osc_ck);
146 168
147 /* clear CORE wake-up events */ 169 /* clear CORE wake-up events */
148 prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1); 170 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1);
149 prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2); 171 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2);
150 172
151 /* wakeup domain events - bit 1: GPT1, bit5 GPIO */ 173 /* wakeup domain events - bit 1: GPT1, bit5 GPIO */
152 prm_clear_mod_reg_bits(0x4 | 0x1, WKUP_MOD, PM_WKST); 174 omap2_prm_clear_mod_reg_bits(0x4 | 0x1, WKUP_MOD, PM_WKST);
153 175
154 /* MPU domain wake events */ 176 /* MPU domain wake events */
155 l = prm_read_mod_reg(OCP_MOD, OMAP2_PRCM_IRQSTATUS_MPU_OFFSET); 177 l = omap2_prm_read_mod_reg(OCP_MOD, OMAP2_PRCM_IRQSTATUS_MPU_OFFSET);
156 if (l & 0x01) 178 if (l & 0x01)
157 prm_write_mod_reg(0x01, OCP_MOD, 179 omap2_prm_write_mod_reg(0x01, OCP_MOD,
158 OMAP2_PRCM_IRQSTATUS_MPU_OFFSET); 180 OMAP2_PRCM_IRQSTATUS_MPU_OFFSET);
159 if (l & 0x20) 181 if (l & 0x20)
160 prm_write_mod_reg(0x20, OCP_MOD, 182 omap2_prm_write_mod_reg(0x20, OCP_MOD,
161 OMAP2_PRCM_IRQSTATUS_MPU_OFFSET); 183 OMAP2_PRCM_IRQSTATUS_MPU_OFFSET);
162 184
163 /* Mask future PRCM-to-MPU interrupts */ 185 /* Mask future PRCM-to-MPU interrupts */
164 prm_write_mod_reg(0x0, OCP_MOD, OMAP2_PRCM_IRQSTATUS_MPU_OFFSET); 186 omap2_prm_write_mod_reg(0x0, OCP_MOD, OMAP2_PRCM_IRQSTATUS_MPU_OFFSET);
165} 187}
166 188
167static int omap2_i2c_active(void) 189static int omap2_i2c_active(void)
168{ 190{
169 u32 l; 191 u32 l;
170 192
171 l = cm_read_mod_reg(CORE_MOD, CM_FCLKEN1); 193 l = omap2_cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
172 return l & (OMAP2420_EN_I2C2_MASK | OMAP2420_EN_I2C1_MASK); 194 return l & (OMAP2420_EN_I2C2_MASK | OMAP2420_EN_I2C1_MASK);
173} 195}
174 196
@@ -179,13 +201,13 @@ static int omap2_allow_mpu_retention(void)
179 u32 l; 201 u32 l;
180 202
181 /* Check for MMC, UART2, UART1, McSPI2, McSPI1 and DSS1. */ 203 /* Check for MMC, UART2, UART1, McSPI2, McSPI1 and DSS1. */
182 l = cm_read_mod_reg(CORE_MOD, CM_FCLKEN1); 204 l = omap2_cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
183 if (l & (OMAP2420_EN_MMC_MASK | OMAP24XX_EN_UART2_MASK | 205 if (l & (OMAP2420_EN_MMC_MASK | OMAP24XX_EN_UART2_MASK |
184 OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_MCSPI2_MASK | 206 OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_MCSPI2_MASK |
185 OMAP24XX_EN_MCSPI1_MASK | OMAP24XX_EN_DSS1_MASK)) 207 OMAP24XX_EN_MCSPI1_MASK | OMAP24XX_EN_DSS1_MASK))
186 return 0; 208 return 0;
187 /* Check for UART3. */ 209 /* Check for UART3. */
188 l = cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2); 210 l = omap2_cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2);
189 if (l & OMAP24XX_EN_UART3_MASK) 211 if (l & OMAP24XX_EN_UART3_MASK)
190 return 0; 212 return 0;
191 if (sti_console_enabled) 213 if (sti_console_enabled)
@@ -208,18 +230,18 @@ static void omap2_enter_mpu_retention(void)
208 * it is in retention mode. */ 230 * it is in retention mode. */
209 if (omap2_allow_mpu_retention()) { 231 if (omap2_allow_mpu_retention()) {
210 /* REVISIT: These write to reserved bits? */ 232 /* REVISIT: These write to reserved bits? */
211 prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1); 233 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1);
212 prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2); 234 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2);
213 prm_write_mod_reg(0xffffffff, WKUP_MOD, PM_WKST); 235 omap2_prm_write_mod_reg(0xffffffff, WKUP_MOD, PM_WKST);
214 236
215 /* Try to enter MPU retention */ 237 /* Try to enter MPU retention */
216 prm_write_mod_reg((0x01 << OMAP_POWERSTATE_SHIFT) | 238 omap2_prm_write_mod_reg((0x01 << OMAP_POWERSTATE_SHIFT) |
217 OMAP_LOGICRETSTATE_MASK, 239 OMAP_LOGICRETSTATE_MASK,
218 MPU_MOD, OMAP2_PM_PWSTCTRL); 240 MPU_MOD, OMAP2_PM_PWSTCTRL);
219 } else { 241 } else {
220 /* Block MPU retention */ 242 /* Block MPU retention */
221 243
222 prm_write_mod_reg(OMAP_LOGICRETSTATE_MASK, MPU_MOD, 244 omap2_prm_write_mod_reg(OMAP_LOGICRETSTATE_MASK, MPU_MOD,
223 OMAP2_PM_PWSTCTRL); 245 OMAP2_PM_PWSTCTRL);
224 only_idle = 1; 246 only_idle = 1;
225 } 247 }
@@ -245,6 +267,8 @@ static int omap2_can_sleep(void)
245{ 267{
246 if (omap2_fclks_active()) 268 if (omap2_fclks_active())
247 return 0; 269 return 0;
270 if (!omap_uart_can_sleep())
271 return 0;
248 if (osc_ck->usecount > 1) 272 if (osc_ck->usecount > 1)
249 return 0; 273 return 0;
250 if (omap_dma_running()) 274 if (omap_dma_running())
@@ -275,10 +299,11 @@ out:
275 local_irq_enable(); 299 local_irq_enable();
276} 300}
277 301
278static int omap2_pm_prepare(void) 302#ifdef CONFIG_SUSPEND
303static int omap2_pm_begin(suspend_state_t state)
279{ 304{
280 /* We cannot sleep in idle until we have resumed */
281 disable_hlt(); 305 disable_hlt();
306 suspend_state = state;
282 return 0; 307 return 0;
283} 308}
284 309
@@ -286,9 +311,9 @@ static int omap2_pm_suspend(void)
286{ 311{
287 u32 wken_wkup, mir1; 312 u32 wken_wkup, mir1;
288 313
289 wken_wkup = prm_read_mod_reg(WKUP_MOD, PM_WKEN); 314 wken_wkup = omap2_prm_read_mod_reg(WKUP_MOD, PM_WKEN);
290 wken_wkup &= ~OMAP24XX_EN_GPT1_MASK; 315 wken_wkup &= ~OMAP24XX_EN_GPT1_MASK;
291 prm_write_mod_reg(wken_wkup, WKUP_MOD, PM_WKEN); 316 omap2_prm_write_mod_reg(wken_wkup, WKUP_MOD, PM_WKEN);
292 317
293 /* Mask GPT1 */ 318 /* Mask GPT1 */
294 mir1 = omap_readl(0x480fe0a4); 319 mir1 = omap_readl(0x480fe0a4);
@@ -298,7 +323,7 @@ static int omap2_pm_suspend(void)
298 omap2_enter_full_retention(); 323 omap2_enter_full_retention();
299 324
300 omap_writel(mir1, 0x480fe0a4); 325 omap_writel(mir1, 0x480fe0a4);
301 prm_write_mod_reg(wken_wkup, WKUP_MOD, PM_WKEN); 326 omap2_prm_write_mod_reg(wken_wkup, WKUP_MOD, PM_WKEN);
302 327
303 return 0; 328 return 0;
304} 329}
@@ -319,29 +344,30 @@ static int omap2_pm_enter(suspend_state_t state)
319 return ret; 344 return ret;
320} 345}
321 346
322static void omap2_pm_finish(void) 347static void omap2_pm_end(void)
323{ 348{
349 suspend_state = PM_SUSPEND_ON;
324 enable_hlt(); 350 enable_hlt();
325} 351}
326 352
327static struct platform_suspend_ops omap_pm_ops = { 353static const struct platform_suspend_ops omap_pm_ops = {
328 .prepare = omap2_pm_prepare, 354 .begin = omap2_pm_begin,
329 .enter = omap2_pm_enter, 355 .enter = omap2_pm_enter,
330 .finish = omap2_pm_finish, 356 .end = omap2_pm_end,
331 .valid = suspend_valid_only_mem, 357 .valid = suspend_valid_only_mem,
332}; 358};
359#else
360static const struct platform_suspend_ops __initdata omap_pm_ops;
361#endif /* CONFIG_SUSPEND */
333 362
334/* XXX This function should be shareable between OMAP2xxx and OMAP3 */ 363/* XXX This function should be shareable between OMAP2xxx and OMAP3 */
335static int __init clkdms_setup(struct clockdomain *clkdm, void *unused) 364static int __init clkdms_setup(struct clockdomain *clkdm, void *unused)
336{ 365{
337 clkdm_clear_all_wkdeps(clkdm);
338 clkdm_clear_all_sleepdeps(clkdm);
339
340 if (clkdm->flags & CLKDM_CAN_ENABLE_AUTO) 366 if (clkdm->flags & CLKDM_CAN_ENABLE_AUTO)
341 omap2_clkdm_allow_idle(clkdm); 367 clkdm_allow_idle(clkdm);
342 else if (clkdm->flags & CLKDM_CAN_FORCE_SLEEP && 368 else if (clkdm->flags & CLKDM_CAN_FORCE_SLEEP &&
343 atomic_read(&clkdm->usecount) == 0) 369 atomic_read(&clkdm->usecount) == 0)
344 omap2_clkdm_sleep(clkdm); 370 clkdm_sleep(clkdm);
345 return 0; 371 return 0;
346} 372}
347 373
@@ -350,8 +376,11 @@ static void __init prcm_setup_regs(void)
350 int i, num_mem_banks; 376 int i, num_mem_banks;
351 struct powerdomain *pwrdm; 377 struct powerdomain *pwrdm;
352 378
353 /* Enable autoidle */ 379 /*
354 prm_write_mod_reg(OMAP24XX_AUTOIDLE_MASK, OCP_MOD, 380 * Enable autoidle
381 * XXX This should be handled by hwmod code or PRCM init code
382 */
383 omap2_prm_write_mod_reg(OMAP24XX_AUTOIDLE_MASK, OCP_MOD,
355 OMAP2_PRCM_SYSCONFIG_OFFSET); 384 OMAP2_PRCM_SYSCONFIG_OFFSET);
356 385
357 /* 386 /*
@@ -376,101 +405,34 @@ static void __init prcm_setup_regs(void)
376 405
377 pwrdm = clkdm_get_pwrdm(dsp_clkdm); 406 pwrdm = clkdm_get_pwrdm(dsp_clkdm);
378 pwrdm_set_next_pwrst(pwrdm, PWRDM_POWER_OFF); 407 pwrdm_set_next_pwrst(pwrdm, PWRDM_POWER_OFF);
379 omap2_clkdm_sleep(dsp_clkdm); 408 clkdm_sleep(dsp_clkdm);
380 409
381 pwrdm = clkdm_get_pwrdm(gfx_clkdm); 410 pwrdm = clkdm_get_pwrdm(gfx_clkdm);
382 pwrdm_set_next_pwrst(pwrdm, PWRDM_POWER_OFF); 411 pwrdm_set_next_pwrst(pwrdm, PWRDM_POWER_OFF);
383 omap2_clkdm_sleep(gfx_clkdm); 412 clkdm_sleep(gfx_clkdm);
384 413
385 /* 414 /* Enable hardware-supervised idle for all clkdms */
386 * Clear clockdomain wakeup dependencies and enable
387 * hardware-supervised idle for all clkdms
388 */
389 clkdm_for_each(clkdms_setup, NULL); 415 clkdm_for_each(clkdms_setup, NULL);
390 clkdm_add_wkdep(mpu_clkdm, wkup_clkdm); 416 clkdm_add_wkdep(mpu_clkdm, wkup_clkdm);
391 417
392 /* Enable clock autoidle for all domains */
393 cm_write_mod_reg(OMAP24XX_AUTO_CAM_MASK |
394 OMAP24XX_AUTO_MAILBOXES_MASK |
395 OMAP24XX_AUTO_WDT4_MASK |
396 OMAP2420_AUTO_WDT3_MASK |
397 OMAP24XX_AUTO_MSPRO_MASK |
398 OMAP2420_AUTO_MMC_MASK |
399 OMAP24XX_AUTO_FAC_MASK |
400 OMAP2420_AUTO_EAC_MASK |
401 OMAP24XX_AUTO_HDQ_MASK |
402 OMAP24XX_AUTO_UART2_MASK |
403 OMAP24XX_AUTO_UART1_MASK |
404 OMAP24XX_AUTO_I2C2_MASK |
405 OMAP24XX_AUTO_I2C1_MASK |
406 OMAP24XX_AUTO_MCSPI2_MASK |
407 OMAP24XX_AUTO_MCSPI1_MASK |
408 OMAP24XX_AUTO_MCBSP2_MASK |
409 OMAP24XX_AUTO_MCBSP1_MASK |
410 OMAP24XX_AUTO_GPT12_MASK |
411 OMAP24XX_AUTO_GPT11_MASK |
412 OMAP24XX_AUTO_GPT10_MASK |
413 OMAP24XX_AUTO_GPT9_MASK |
414 OMAP24XX_AUTO_GPT8_MASK |
415 OMAP24XX_AUTO_GPT7_MASK |
416 OMAP24XX_AUTO_GPT6_MASK |
417 OMAP24XX_AUTO_GPT5_MASK |
418 OMAP24XX_AUTO_GPT4_MASK |
419 OMAP24XX_AUTO_GPT3_MASK |
420 OMAP24XX_AUTO_GPT2_MASK |
421 OMAP2420_AUTO_VLYNQ_MASK |
422 OMAP24XX_AUTO_DSS_MASK,
423 CORE_MOD, CM_AUTOIDLE1);
424 cm_write_mod_reg(OMAP24XX_AUTO_UART3_MASK |
425 OMAP24XX_AUTO_SSI_MASK |
426 OMAP24XX_AUTO_USB_MASK,
427 CORE_MOD, CM_AUTOIDLE2);
428 cm_write_mod_reg(OMAP24XX_AUTO_SDRC_MASK |
429 OMAP24XX_AUTO_GPMC_MASK |
430 OMAP24XX_AUTO_SDMA_MASK,
431 CORE_MOD, CM_AUTOIDLE3);
432 cm_write_mod_reg(OMAP24XX_AUTO_PKA_MASK |
433 OMAP24XX_AUTO_AES_MASK |
434 OMAP24XX_AUTO_RNG_MASK |
435 OMAP24XX_AUTO_SHA_MASK |
436 OMAP24XX_AUTO_DES_MASK,
437 CORE_MOD, OMAP24XX_CM_AUTOIDLE4);
438
439 cm_write_mod_reg(OMAP2420_AUTO_DSP_IPI_MASK, OMAP24XX_DSP_MOD,
440 CM_AUTOIDLE);
441
442 /* Put DPLL and both APLLs into autoidle mode */
443 cm_write_mod_reg((0x03 << OMAP24XX_AUTO_DPLL_SHIFT) |
444 (0x03 << OMAP24XX_AUTO_96M_SHIFT) |
445 (0x03 << OMAP24XX_AUTO_54M_SHIFT),
446 PLL_MOD, CM_AUTOIDLE);
447
448 cm_write_mod_reg(OMAP24XX_AUTO_OMAPCTRL_MASK |
449 OMAP24XX_AUTO_WDT1_MASK |
450 OMAP24XX_AUTO_MPU_WDT_MASK |
451 OMAP24XX_AUTO_GPIOS_MASK |
452 OMAP24XX_AUTO_32KSYNC_MASK |
453 OMAP24XX_AUTO_GPT1_MASK,
454 WKUP_MOD, CM_AUTOIDLE);
455
456 /* REVISIT: Configure number of 32 kHz clock cycles for sys_clk 418 /* REVISIT: Configure number of 32 kHz clock cycles for sys_clk
457 * stabilisation */ 419 * stabilisation */
458 prm_write_mod_reg(15 << OMAP_SETUP_TIME_SHIFT, OMAP24XX_GR_MOD, 420 omap2_prm_write_mod_reg(15 << OMAP_SETUP_TIME_SHIFT, OMAP24XX_GR_MOD,
459 OMAP2_PRCM_CLKSSETUP_OFFSET); 421 OMAP2_PRCM_CLKSSETUP_OFFSET);
460 422
461 /* Configure automatic voltage transition */ 423 /* Configure automatic voltage transition */
462 prm_write_mod_reg(2 << OMAP_SETUP_TIME_SHIFT, OMAP24XX_GR_MOD, 424 omap2_prm_write_mod_reg(2 << OMAP_SETUP_TIME_SHIFT, OMAP24XX_GR_MOD,
463 OMAP2_PRCM_VOLTSETUP_OFFSET); 425 OMAP2_PRCM_VOLTSETUP_OFFSET);
464 prm_write_mod_reg(OMAP24XX_AUTO_EXTVOLT_MASK | 426 omap2_prm_write_mod_reg(OMAP24XX_AUTO_EXTVOLT_MASK |
465 (0x1 << OMAP24XX_SETOFF_LEVEL_SHIFT) | 427 (0x1 << OMAP24XX_SETOFF_LEVEL_SHIFT) |
466 OMAP24XX_MEMRETCTRL_MASK | 428 OMAP24XX_MEMRETCTRL_MASK |
467 (0x1 << OMAP24XX_SETRET_LEVEL_SHIFT) | 429 (0x1 << OMAP24XX_SETRET_LEVEL_SHIFT) |
468 (0x0 << OMAP24XX_VOLT_LEVEL_SHIFT), 430 (0x0 << OMAP24XX_VOLT_LEVEL_SHIFT),
469 OMAP24XX_GR_MOD, OMAP2_PRCM_VOLTCTRL_OFFSET); 431 OMAP24XX_GR_MOD, OMAP2_PRCM_VOLTCTRL_OFFSET);
470 432
471 /* Enable wake-up events */ 433 /* Enable wake-up events */
472 prm_write_mod_reg(OMAP24XX_EN_GPIOS_MASK | OMAP24XX_EN_GPT1_MASK, 434 omap2_prm_write_mod_reg(OMAP24XX_EN_GPIOS_MASK | OMAP24XX_EN_GPT1_MASK,
473 WKUP_MOD, PM_WKEN); 435 WKUP_MOD, PM_WKEN);
474} 436}
475 437
476static int __init omap2_pm_init(void) 438static int __init omap2_pm_init(void)
@@ -481,7 +443,7 @@ static int __init omap2_pm_init(void)
481 return -ENODEV; 443 return -ENODEV;
482 444
483 printk(KERN_INFO "Power Management for OMAP2 initializing\n"); 445 printk(KERN_INFO "Power Management for OMAP2 initializing\n");
484 l = prm_read_mod_reg(OCP_MOD, OMAP2_PRCM_REVISION_OFFSET); 446 l = omap2_prm_read_mod_reg(OCP_MOD, OMAP2_PRCM_REVISION_OFFSET);
485 printk(KERN_INFO "PRCM revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f); 447 printk(KERN_INFO "PRCM revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f);
486 448
487 /* Look up important powerdomains */ 449 /* Look up important powerdomains */