powerpc/85xx: add hardware automatically enter pw20 state
[pandora-kernel.git] / arch / powerpc / kernel / cpu_setup_fsl_booke.S
index 26c09db..cc2d896 100644 (file)
@@ -53,6 +53,25 @@ _GLOBAL(__e500_dcache_setup)
        isync
        blr
 
+/*
+ * FIXME - we haven't yet done testing to determine a reasonable default
+ * value for PW20_WAIT_IDLE_BIT.
+ */
+#define PW20_WAIT_IDLE_BIT             50 /* 1ms, TB frequency is 41.66MHZ */
+_GLOBAL(setup_pw20_idle)
+       mfspr   r3, SPRN_PWRMGTCR0
+
+       /* Set PW20_WAIT bit, enable pw20 state*/
+       ori     r3, r3, PWRMGTCR0_PW20_WAIT
+       li      r11, PW20_WAIT_IDLE_BIT
+
+       /* Set Automatic PW20 Core Idle Count */
+       rlwimi  r3, r11, PWRMGTCR0_PW20_ENT_SHIFT, PWRMGTCR0_PW20_ENT
+
+       mtspr   SPRN_PWRMGTCR0, r3
+
+       blr
+
 /*
  * FIXME - we haven't yet done testing to determine a reasonable default
  * value for AV_WAIT_IDLE_BIT.
@@ -83,6 +102,7 @@ _GLOBAL(__setup_cpu_e6500)
        bl      .setup_lrat_ivor
 1:
 #endif
+       bl      setup_pw20_idle
        bl      setup_altivec_idle
        bl      __setup_cpu_e5500
        mtlr    r6
@@ -151,6 +171,7 @@ _GLOBAL(__restore_cpu_e6500)
        beq     1f
        bl      .setup_lrat_ivor
 1:
+       bl      .setup_pw20_idle
        bl      .setup_altivec_idle
        bl      __restore_cpu_e5500
        mtlr    r5