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.c204
1 files changed, 102 insertions, 102 deletions
diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c
index aea7ced9a2ff..2844b84f8d46 100644
--- a/arch/arm/mach-omap2/pm24xx.c
+++ b/arch/arm/mach-omap2/pm24xx.c
@@ -42,16 +42,16 @@
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#include "control.h"
52 52
53#include <plat/powerdomain.h> 53#include "powerdomain.h"
54#include <plat/clockdomain.h> 54#include "clockdomain.h"
55 55
56#ifdef CONFIG_SUSPEND 56#ifdef CONFIG_SUSPEND
57static suspend_state_t suspend_state = PM_SUSPEND_ON; 57static suspend_state_t suspend_state = PM_SUSPEND_ON;
@@ -79,8 +79,8 @@ static int omap2_fclks_active(void)
79{ 79{
80 u32 f1, f2; 80 u32 f1, f2;
81 81
82 f1 = cm_read_mod_reg(CORE_MOD, CM_FCLKEN1); 82 f1 = omap2_cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
83 f2 = cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2); 83 f2 = omap2_cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2);
84 84
85 /* Ignore UART clocks. These are handled by UART core (serial.c) */ 85 /* Ignore UART clocks. These are handled by UART core (serial.c) */
86 f1 &= ~(OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_UART2_MASK); 86 f1 &= ~(OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_UART2_MASK);
@@ -105,9 +105,9 @@ static void omap2_enter_full_retention(void)
105 105
106 /* Clear old wake-up events */ 106 /* Clear old wake-up events */
107 /* REVISIT: These write to reserved bits? */ 107 /* REVISIT: These write to reserved bits? */
108 prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1); 108 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1);
109 prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2); 109 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2);
110 prm_write_mod_reg(0xffffffff, WKUP_MOD, PM_WKST); 110 omap2_prm_write_mod_reg(0xffffffff, WKUP_MOD, PM_WKST);
111 111
112 /* 112 /*
113 * Set MPU powerdomain's next power state to RETENTION; 113 * Set MPU powerdomain's next power state to RETENTION;
@@ -120,7 +120,7 @@ static void omap2_enter_full_retention(void)
120 l = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0) | OMAP24XX_USBSTANDBYCTRL; 120 l = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0) | OMAP24XX_USBSTANDBYCTRL;
121 omap_ctrl_writel(l, OMAP2_CONTROL_DEVCONF0); 121 omap_ctrl_writel(l, OMAP2_CONTROL_DEVCONF0);
122 122
123 omap2_gpio_prepare_for_idle(PWRDM_POWER_RET); 123 omap2_gpio_prepare_for_idle(0);
124 124
125 if (omap2_pm_debug) { 125 if (omap2_pm_debug) {
126 omap2_pm_dump(0, 0, 0); 126 omap2_pm_dump(0, 0, 0);
@@ -167,30 +167,30 @@ no_sleep:
167 clk_enable(osc_ck); 167 clk_enable(osc_ck);
168 168
169 /* clear CORE wake-up events */ 169 /* clear CORE wake-up events */
170 prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1); 170 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1);
171 prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2); 171 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2);
172 172
173 /* wakeup domain events - bit 1: GPT1, bit5 GPIO */ 173 /* wakeup domain events - bit 1: GPT1, bit5 GPIO */
174 prm_clear_mod_reg_bits(0x4 | 0x1, WKUP_MOD, PM_WKST); 174 omap2_prm_clear_mod_reg_bits(0x4 | 0x1, WKUP_MOD, PM_WKST);
175 175
176 /* MPU domain wake events */ 176 /* MPU domain wake events */
177 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);
178 if (l & 0x01) 178 if (l & 0x01)
179 prm_write_mod_reg(0x01, OCP_MOD, 179 omap2_prm_write_mod_reg(0x01, OCP_MOD,
180 OMAP2_PRCM_IRQSTATUS_MPU_OFFSET); 180 OMAP2_PRCM_IRQSTATUS_MPU_OFFSET);
181 if (l & 0x20) 181 if (l & 0x20)
182 prm_write_mod_reg(0x20, OCP_MOD, 182 omap2_prm_write_mod_reg(0x20, OCP_MOD,
183 OMAP2_PRCM_IRQSTATUS_MPU_OFFSET); 183 OMAP2_PRCM_IRQSTATUS_MPU_OFFSET);
184 184
185 /* Mask future PRCM-to-MPU interrupts */ 185 /* Mask future PRCM-to-MPU interrupts */
186 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);
187} 187}
188 188
189static int omap2_i2c_active(void) 189static int omap2_i2c_active(void)
190{ 190{
191 u32 l; 191 u32 l;
192 192
193 l = cm_read_mod_reg(CORE_MOD, CM_FCLKEN1); 193 l = omap2_cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
194 return l & (OMAP2420_EN_I2C2_MASK | OMAP2420_EN_I2C1_MASK); 194 return l & (OMAP2420_EN_I2C2_MASK | OMAP2420_EN_I2C1_MASK);
195} 195}
196 196
@@ -201,13 +201,13 @@ static int omap2_allow_mpu_retention(void)
201 u32 l; 201 u32 l;
202 202
203 /* Check for MMC, UART2, UART1, McSPI2, McSPI1 and DSS1. */ 203 /* Check for MMC, UART2, UART1, McSPI2, McSPI1 and DSS1. */
204 l = cm_read_mod_reg(CORE_MOD, CM_FCLKEN1); 204 l = omap2_cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
205 if (l & (OMAP2420_EN_MMC_MASK | OMAP24XX_EN_UART2_MASK | 205 if (l & (OMAP2420_EN_MMC_MASK | OMAP24XX_EN_UART2_MASK |
206 OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_MCSPI2_MASK | 206 OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_MCSPI2_MASK |
207 OMAP24XX_EN_MCSPI1_MASK | OMAP24XX_EN_DSS1_MASK)) 207 OMAP24XX_EN_MCSPI1_MASK | OMAP24XX_EN_DSS1_MASK))
208 return 0; 208 return 0;
209 /* Check for UART3. */ 209 /* Check for UART3. */
210 l = cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2); 210 l = omap2_cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2);
211 if (l & OMAP24XX_EN_UART3_MASK) 211 if (l & OMAP24XX_EN_UART3_MASK)
212 return 0; 212 return 0;
213 if (sti_console_enabled) 213 if (sti_console_enabled)
@@ -230,18 +230,18 @@ static void omap2_enter_mpu_retention(void)
230 * it is in retention mode. */ 230 * it is in retention mode. */
231 if (omap2_allow_mpu_retention()) { 231 if (omap2_allow_mpu_retention()) {
232 /* REVISIT: These write to reserved bits? */ 232 /* REVISIT: These write to reserved bits? */
233 prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1); 233 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, PM_WKST1);
234 prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2); 234 omap2_prm_write_mod_reg(0xffffffff, CORE_MOD, OMAP24XX_PM_WKST2);
235 prm_write_mod_reg(0xffffffff, WKUP_MOD, PM_WKST); 235 omap2_prm_write_mod_reg(0xffffffff, WKUP_MOD, PM_WKST);
236 236
237 /* Try to enter MPU retention */ 237 /* Try to enter MPU retention */
238 prm_write_mod_reg((0x01 << OMAP_POWERSTATE_SHIFT) | 238 omap2_prm_write_mod_reg((0x01 << OMAP_POWERSTATE_SHIFT) |
239 OMAP_LOGICRETSTATE_MASK, 239 OMAP_LOGICRETSTATE_MASK,
240 MPU_MOD, OMAP2_PM_PWSTCTRL); 240 MPU_MOD, OMAP2_PM_PWSTCTRL);
241 } else { 241 } else {
242 /* Block MPU retention */ 242 /* Block MPU retention */
243 243
244 prm_write_mod_reg(OMAP_LOGICRETSTATE_MASK, MPU_MOD, 244 omap2_prm_write_mod_reg(OMAP_LOGICRETSTATE_MASK, MPU_MOD,
245 OMAP2_PM_PWSTCTRL); 245 OMAP2_PM_PWSTCTRL);
246 only_idle = 1; 246 only_idle = 1;
247 } 247 }
@@ -310,9 +310,9 @@ static int omap2_pm_suspend(void)
310{ 310{
311 u32 wken_wkup, mir1; 311 u32 wken_wkup, mir1;
312 312
313 wken_wkup = prm_read_mod_reg(WKUP_MOD, PM_WKEN); 313 wken_wkup = omap2_prm_read_mod_reg(WKUP_MOD, PM_WKEN);
314 wken_wkup &= ~OMAP24XX_EN_GPT1_MASK; 314 wken_wkup &= ~OMAP24XX_EN_GPT1_MASK;
315 prm_write_mod_reg(wken_wkup, WKUP_MOD, PM_WKEN); 315 omap2_prm_write_mod_reg(wken_wkup, WKUP_MOD, PM_WKEN);
316 316
317 /* Mask GPT1 */ 317 /* Mask GPT1 */
318 mir1 = omap_readl(0x480fe0a4); 318 mir1 = omap_readl(0x480fe0a4);
@@ -322,7 +322,7 @@ static int omap2_pm_suspend(void)
322 omap2_enter_full_retention(); 322 omap2_enter_full_retention();
323 323
324 omap_writel(mir1, 0x480fe0a4); 324 omap_writel(mir1, 0x480fe0a4);
325 prm_write_mod_reg(wken_wkup, WKUP_MOD, PM_WKEN); 325 omap2_prm_write_mod_reg(wken_wkup, WKUP_MOD, PM_WKEN);
326 326
327 return 0; 327 return 0;
328} 328}
@@ -376,7 +376,7 @@ static void __init prcm_setup_regs(void)
376 struct powerdomain *pwrdm; 376 struct powerdomain *pwrdm;
377 377
378 /* Enable autoidle */ 378 /* Enable autoidle */
379 prm_write_mod_reg(OMAP24XX_AUTOIDLE_MASK, OCP_MOD, 379 omap2_prm_write_mod_reg(OMAP24XX_AUTOIDLE_MASK, OCP_MOD,
380 OMAP2_PRCM_SYSCONFIG_OFFSET); 380 OMAP2_PRCM_SYSCONFIG_OFFSET);
381 381
382 /* 382 /*
@@ -415,87 +415,87 @@ static void __init prcm_setup_regs(void)
415 clkdm_add_wkdep(mpu_clkdm, wkup_clkdm); 415 clkdm_add_wkdep(mpu_clkdm, wkup_clkdm);
416 416
417 /* Enable clock autoidle for all domains */ 417 /* Enable clock autoidle for all domains */
418 cm_write_mod_reg(OMAP24XX_AUTO_CAM_MASK | 418 omap2_cm_write_mod_reg(OMAP24XX_AUTO_CAM_MASK |
419 OMAP24XX_AUTO_MAILBOXES_MASK | 419 OMAP24XX_AUTO_MAILBOXES_MASK |
420 OMAP24XX_AUTO_WDT4_MASK | 420 OMAP24XX_AUTO_WDT4_MASK |
421 OMAP2420_AUTO_WDT3_MASK | 421 OMAP2420_AUTO_WDT3_MASK |
422 OMAP24XX_AUTO_MSPRO_MASK | 422 OMAP24XX_AUTO_MSPRO_MASK |
423 OMAP2420_AUTO_MMC_MASK | 423 OMAP2420_AUTO_MMC_MASK |
424 OMAP24XX_AUTO_FAC_MASK | 424 OMAP24XX_AUTO_FAC_MASK |
425 OMAP2420_AUTO_EAC_MASK | 425 OMAP2420_AUTO_EAC_MASK |
426 OMAP24XX_AUTO_HDQ_MASK | 426 OMAP24XX_AUTO_HDQ_MASK |
427 OMAP24XX_AUTO_UART2_MASK | 427 OMAP24XX_AUTO_UART2_MASK |
428 OMAP24XX_AUTO_UART1_MASK | 428 OMAP24XX_AUTO_UART1_MASK |
429 OMAP24XX_AUTO_I2C2_MASK | 429 OMAP24XX_AUTO_I2C2_MASK |
430 OMAP24XX_AUTO_I2C1_MASK | 430 OMAP24XX_AUTO_I2C1_MASK |
431 OMAP24XX_AUTO_MCSPI2_MASK | 431 OMAP24XX_AUTO_MCSPI2_MASK |
432 OMAP24XX_AUTO_MCSPI1_MASK | 432 OMAP24XX_AUTO_MCSPI1_MASK |
433 OMAP24XX_AUTO_MCBSP2_MASK | 433 OMAP24XX_AUTO_MCBSP2_MASK |
434 OMAP24XX_AUTO_MCBSP1_MASK | 434 OMAP24XX_AUTO_MCBSP1_MASK |
435 OMAP24XX_AUTO_GPT12_MASK | 435 OMAP24XX_AUTO_GPT12_MASK |
436 OMAP24XX_AUTO_GPT11_MASK | 436 OMAP24XX_AUTO_GPT11_MASK |
437 OMAP24XX_AUTO_GPT10_MASK | 437 OMAP24XX_AUTO_GPT10_MASK |
438 OMAP24XX_AUTO_GPT9_MASK | 438 OMAP24XX_AUTO_GPT9_MASK |
439 OMAP24XX_AUTO_GPT8_MASK | 439 OMAP24XX_AUTO_GPT8_MASK |
440 OMAP24XX_AUTO_GPT7_MASK | 440 OMAP24XX_AUTO_GPT7_MASK |
441 OMAP24XX_AUTO_GPT6_MASK | 441 OMAP24XX_AUTO_GPT6_MASK |
442 OMAP24XX_AUTO_GPT5_MASK | 442 OMAP24XX_AUTO_GPT5_MASK |
443 OMAP24XX_AUTO_GPT4_MASK | 443 OMAP24XX_AUTO_GPT4_MASK |
444 OMAP24XX_AUTO_GPT3_MASK | 444 OMAP24XX_AUTO_GPT3_MASK |
445 OMAP24XX_AUTO_GPT2_MASK | 445 OMAP24XX_AUTO_GPT2_MASK |
446 OMAP2420_AUTO_VLYNQ_MASK | 446 OMAP2420_AUTO_VLYNQ_MASK |
447 OMAP24XX_AUTO_DSS_MASK, 447 OMAP24XX_AUTO_DSS_MASK,
448 CORE_MOD, CM_AUTOIDLE1); 448 CORE_MOD, CM_AUTOIDLE1);
449 cm_write_mod_reg(OMAP24XX_AUTO_UART3_MASK | 449 omap2_cm_write_mod_reg(OMAP24XX_AUTO_UART3_MASK |
450 OMAP24XX_AUTO_SSI_MASK | 450 OMAP24XX_AUTO_SSI_MASK |
451 OMAP24XX_AUTO_USB_MASK, 451 OMAP24XX_AUTO_USB_MASK,
452 CORE_MOD, CM_AUTOIDLE2); 452 CORE_MOD, CM_AUTOIDLE2);
453 cm_write_mod_reg(OMAP24XX_AUTO_SDRC_MASK | 453 omap2_cm_write_mod_reg(OMAP24XX_AUTO_SDRC_MASK |
454 OMAP24XX_AUTO_GPMC_MASK | 454 OMAP24XX_AUTO_GPMC_MASK |
455 OMAP24XX_AUTO_SDMA_MASK, 455 OMAP24XX_AUTO_SDMA_MASK,
456 CORE_MOD, CM_AUTOIDLE3); 456 CORE_MOD, CM_AUTOIDLE3);
457 cm_write_mod_reg(OMAP24XX_AUTO_PKA_MASK | 457 omap2_cm_write_mod_reg(OMAP24XX_AUTO_PKA_MASK |
458 OMAP24XX_AUTO_AES_MASK | 458 OMAP24XX_AUTO_AES_MASK |
459 OMAP24XX_AUTO_RNG_MASK | 459 OMAP24XX_AUTO_RNG_MASK |
460 OMAP24XX_AUTO_SHA_MASK | 460 OMAP24XX_AUTO_SHA_MASK |
461 OMAP24XX_AUTO_DES_MASK, 461 OMAP24XX_AUTO_DES_MASK,
462 CORE_MOD, OMAP24XX_CM_AUTOIDLE4); 462 CORE_MOD, OMAP24XX_CM_AUTOIDLE4);
463 463
464 cm_write_mod_reg(OMAP2420_AUTO_DSP_IPI_MASK, OMAP24XX_DSP_MOD, 464 omap2_cm_write_mod_reg(OMAP2420_AUTO_DSP_IPI_MASK, OMAP24XX_DSP_MOD,
465 CM_AUTOIDLE); 465 CM_AUTOIDLE);
466 466
467 /* Put DPLL and both APLLs into autoidle mode */ 467 /* Put DPLL and both APLLs into autoidle mode */
468 cm_write_mod_reg((0x03 << OMAP24XX_AUTO_DPLL_SHIFT) | 468 omap2_cm_write_mod_reg((0x03 << OMAP24XX_AUTO_DPLL_SHIFT) |
469 (0x03 << OMAP24XX_AUTO_96M_SHIFT) | 469 (0x03 << OMAP24XX_AUTO_96M_SHIFT) |
470 (0x03 << OMAP24XX_AUTO_54M_SHIFT), 470 (0x03 << OMAP24XX_AUTO_54M_SHIFT),
471 PLL_MOD, CM_AUTOIDLE); 471 PLL_MOD, CM_AUTOIDLE);
472 472
473 cm_write_mod_reg(OMAP24XX_AUTO_OMAPCTRL_MASK | 473 omap2_cm_write_mod_reg(OMAP24XX_AUTO_OMAPCTRL_MASK |
474 OMAP24XX_AUTO_WDT1_MASK | 474 OMAP24XX_AUTO_WDT1_MASK |
475 OMAP24XX_AUTO_MPU_WDT_MASK | 475 OMAP24XX_AUTO_MPU_WDT_MASK |
476 OMAP24XX_AUTO_GPIOS_MASK | 476 OMAP24XX_AUTO_GPIOS_MASK |
477 OMAP24XX_AUTO_32KSYNC_MASK | 477 OMAP24XX_AUTO_32KSYNC_MASK |
478 OMAP24XX_AUTO_GPT1_MASK, 478 OMAP24XX_AUTO_GPT1_MASK,
479 WKUP_MOD, CM_AUTOIDLE); 479 WKUP_MOD, CM_AUTOIDLE);
480 480
481 /* REVISIT: Configure number of 32 kHz clock cycles for sys_clk 481 /* REVISIT: Configure number of 32 kHz clock cycles for sys_clk
482 * stabilisation */ 482 * stabilisation */
483 prm_write_mod_reg(15 << OMAP_SETUP_TIME_SHIFT, OMAP24XX_GR_MOD, 483 omap2_prm_write_mod_reg(15 << OMAP_SETUP_TIME_SHIFT, OMAP24XX_GR_MOD,
484 OMAP2_PRCM_CLKSSETUP_OFFSET); 484 OMAP2_PRCM_CLKSSETUP_OFFSET);
485 485
486 /* Configure automatic voltage transition */ 486 /* Configure automatic voltage transition */
487 prm_write_mod_reg(2 << OMAP_SETUP_TIME_SHIFT, OMAP24XX_GR_MOD, 487 omap2_prm_write_mod_reg(2 << OMAP_SETUP_TIME_SHIFT, OMAP24XX_GR_MOD,
488 OMAP2_PRCM_VOLTSETUP_OFFSET); 488 OMAP2_PRCM_VOLTSETUP_OFFSET);
489 prm_write_mod_reg(OMAP24XX_AUTO_EXTVOLT_MASK | 489 omap2_prm_write_mod_reg(OMAP24XX_AUTO_EXTVOLT_MASK |
490 (0x1 << OMAP24XX_SETOFF_LEVEL_SHIFT) | 490 (0x1 << OMAP24XX_SETOFF_LEVEL_SHIFT) |
491 OMAP24XX_MEMRETCTRL_MASK | 491 OMAP24XX_MEMRETCTRL_MASK |
492 (0x1 << OMAP24XX_SETRET_LEVEL_SHIFT) | 492 (0x1 << OMAP24XX_SETRET_LEVEL_SHIFT) |
493 (0x0 << OMAP24XX_VOLT_LEVEL_SHIFT), 493 (0x0 << OMAP24XX_VOLT_LEVEL_SHIFT),
494 OMAP24XX_GR_MOD, OMAP2_PRCM_VOLTCTRL_OFFSET); 494 OMAP24XX_GR_MOD, OMAP2_PRCM_VOLTCTRL_OFFSET);
495 495
496 /* Enable wake-up events */ 496 /* Enable wake-up events */
497 prm_write_mod_reg(OMAP24XX_EN_GPIOS_MASK | OMAP24XX_EN_GPT1_MASK, 497 omap2_prm_write_mod_reg(OMAP24XX_EN_GPIOS_MASK | OMAP24XX_EN_GPT1_MASK,
498 WKUP_MOD, PM_WKEN); 498 WKUP_MOD, PM_WKEN);
499} 499}
500 500
501static int __init omap2_pm_init(void) 501static int __init omap2_pm_init(void)
@@ -506,7 +506,7 @@ static int __init omap2_pm_init(void)
506 return -ENODEV; 506 return -ENODEV;
507 507
508 printk(KERN_INFO "Power Management for OMAP2 initializing\n"); 508 printk(KERN_INFO "Power Management for OMAP2 initializing\n");
509 l = prm_read_mod_reg(OCP_MOD, OMAP2_PRCM_REVISION_OFFSET); 509 l = omap2_prm_read_mod_reg(OCP_MOD, OMAP2_PRCM_REVISION_OFFSET);
510 printk(KERN_INFO "PRCM revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f); 510 printk(KERN_INFO "PRCM revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f);
511 511
512 /* Look up important powerdomains */ 512 /* Look up important powerdomains */