]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/mach-omap2/pm-debug.c
ARM: OMAP2: Combine some PRM registers and fix CONFIG_DEBUG_PM
[linux-2.6-omap-h63xx.git] / arch / arm / mach-omap2 / pm-debug.c
index 8a9f3c4f09f8b8b2f22b61c6096568a4f1cce35c..a32f11f4adb0d5f8efa88874bfe3da1f30a61d4f 100644 (file)
@@ -21,6 +21,8 @@
  * published by the Free Software Foundation.
  */
 
+#include <linux/kernel.h>
+#include <linux/timer.h>
 #include <linux/clk.h>
 #include <linux/err.h>
 #include <linux/io.h>
@@ -29,6 +31,7 @@
 #include <asm/arch/board.h>
 
 #include "prm.h"
+#include "cm.h"
 #include "pm.h"
 
 #ifdef CONFIG_PM_DEBUG
@@ -194,7 +197,7 @@ void omap2_pm_dump(int mode, int resume, unsigned int us)
        if (!resume) {
 #if 0
                /* MPU */
-               DUMP_PRM_REG(OMAP24XX_PRCM_IRQENABLE_MPU);
+               DUMP_PRM_MOD_REG(OCP_MOD, OMAP2_PRM_IRQENABLE_MPU_OFFSET);
                DUMP_CM_MOD_REG(MPU_MOD, CM_CLKSTCTRL);
                DUMP_PRM_MOD_REG(MPU_MOD, PM_PWSTCTRL);
                DUMP_PRM_MOD_REG(MPU_MOD, PM_PWSTST);
@@ -208,35 +211,42 @@ void omap2_pm_dump(int mode, int resume, unsigned int us)
 #endif
 #if 0
                DUMP_CM_MOD_REG(CORE_MOD, CM_FCLKEN1);
-               DUMP_CM_MOD_REG(CORE_MOD, OMAP24XX_CM_FCLKEN2);
+               if (cpu_is_omap24xx()) {
+                       DUMP_CM_MOD_REG(CORE_MOD, OMAP24XX_CM_FCLKEN2);
+                       DUMP_PRM_MOD_REG(OMAP24XX_GR_MOD,
+                                       OMAP24XX_PRCM_CLKEMUL_CTRL_OFFSET);
+                       DUMP_PRM_MOD_REG(OMAP24XX_GR_MOD,
+                                       OMAP24XX_PRCM_CLKSRC_CTRL_OFFSET);
+               }
                DUMP_CM_MOD_REG(WKUP_MOD, CM_FCLKEN);
                DUMP_CM_MOD_REG(CORE_MOD, CM_ICLKEN1);
                DUMP_CM_MOD_REG(CORE_MOD, CM_ICLKEN2);
                DUMP_CM_MOD_REG(WKUP_MOD, CM_ICLKEN);
                DUMP_CM_MOD_REG(PLL_MOD, CM_CLKEN);
-               DUMP_PRM_REG(OMAP24XX_PRCM_CLKEMUL_CTRL);
                DUMP_CM_MOD_REG(PLL_MOD, CM_AUTOIDLE);
                DUMP_PRM_MOD_REG(CORE_MOD, PM_PWSTST);
-               DUMP_PRM_REG(OMAP24XX_PRCM_CLKSRC_CTRL);
 #endif
 #if 0
                /* DSP */
-               DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_FCLKEN);
-               DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_ICLKEN);
-               DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_IDLEST);
-               DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_AUTOIDLE);
-               DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_CLKSEL);
-               DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_CLKSTCTRL);
-               DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, RM_RSTCTRL);
-               DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, RM_RSTST);
-               DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, PM_PWSTCTRL);
-               DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, PM_PWSTST);
+               if (cpu_is_omap24xx()) {
+                       DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_FCLKEN);
+                       DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_ICLKEN);
+                       DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_IDLEST);
+                       DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_AUTOIDLE);
+                       DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_CLKSEL);
+                       DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_CLKSTCTRL);
+                       DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, RM_RSTCTRL);
+                       DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, RM_RSTST);
+                       DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, PM_PWSTCTRL);
+                       DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, PM_PWSTST);
+               }
 #endif
        } else {
                DUMP_PRM_MOD_REG(CORE_MOD, PM_WKST1);
-               DUMP_PRM_MOD_REG(CORE_MOD, OMAP24XX_PM_WKST2);
+               if (cpu_is_omap24xx())
+                       DUMP_PRM_MOD_REG(CORE_MOD, OMAP24XX_PM_WKST2);
                DUMP_PRM_MOD_REG(WKUP_MOD, PM_WKST);
-               DUMP_PRM_REG(OMAP24XX_PRCM_IRQSTATUS_MPU);
+               DUMP_PRM_MOD_REG(OCP_MOD, OMAP2_PRM_IRQSTATUS_MPU_OFFSET);
 #if 1
                DUMP_INTC_REG(INTC_PENDING_IRQ0, 0x0098);
                DUMP_INTC_REG(INTC_PENDING_IRQ1, 0x00b8);
@@ -268,7 +278,9 @@ void omap2_pm_dump(int mode, int resume, unsigned int us)
                printk("--- Going to %s %s\n", s1, s2);
 #endif
        else
-               printk("--- Woke up (slept for %u.%03u ms)\n", us / 1000, us % 1000);
+               printk("--- Woke up (slept for %u.%03u ms)\n",
+                       us / 1000, us % 1000);
+
        for (i = 0; i < reg_count; i++)
                printk("%-20s: 0x%08x\n", regs[i].name, regs[i].val);
 }