aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNishanth Menon <nm@ti.com>2010-12-20 15:05:05 -0500
committerKevin Hilman <khilman@deeprootsystems.com>2010-12-21 17:45:49 -0500
commit8cdfd83473d9b408b924b5d32777ac3fddd251ff (patch)
tree766f42a95cb146424dc4276d0c9ee1dbf29ded28
parent9d93b8a2c8c78972f0a3d15a820288dbb3968bf2 (diff)
OMAP3: pm: introduce errata handling
Introduce errata handling for OMAP3. This patch introduces errata variable and stub for initialization which will be filled up by follow-on patches. Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
-rw-r--r--arch/arm/mach-omap2/pm.h7
-rw-r--r--arch/arm/mach-omap2/pm34xx.c9
2 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
index 0d75bfd1fdbe..0348fd717f61 100644
--- a/arch/arm/mach-omap2/pm.h
+++ b/arch/arm/mach-omap2/pm.h
@@ -85,4 +85,11 @@ extern unsigned int save_secure_ram_context_sz;
85extern unsigned int omap24xx_cpu_suspend_sz; 85extern unsigned int omap24xx_cpu_suspend_sz;
86extern unsigned int omap34xx_cpu_suspend_sz; 86extern unsigned int omap34xx_cpu_suspend_sz;
87 87
88#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3)
89extern u16 pm34xx_errata;
90#define IS_PM34XX_ERRATUM(id) (pm34xx_errata & (id))
91#else
92#define IS_PM34XX_ERRATUM(id) 0
93#endif /* defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3) */
94
88#endif 95#endif
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 5bf344a3fcf5..288bee32e2b2 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -68,6 +68,9 @@ static inline bool is_suspending(void)
68#define OMAP343X_TABLE_VALUE_OFFSET 0xc0 68#define OMAP343X_TABLE_VALUE_OFFSET 0xc0
69#define OMAP343X_CONTROL_REG_VALUE_OFFSET 0xc8 69#define OMAP343X_CONTROL_REG_VALUE_OFFSET 0xc8
70 70
71/* pm34xx errata defined in pm.h */
72u16 pm34xx_errata;
73
71struct power_state { 74struct power_state {
72 struct powerdomain *pwrdm; 75 struct powerdomain *pwrdm;
73 u32 next_state; 76 u32 next_state;
@@ -991,6 +994,10 @@ void omap_push_sram_idle(void)
991 save_secure_ram_context_sz); 994 save_secure_ram_context_sz);
992} 995}
993 996
997static void __init pm_errata_configure(void)
998{
999}
1000
994static int __init omap3_pm_init(void) 1001static int __init omap3_pm_init(void)
995{ 1002{
996 struct power_state *pwrst, *tmp; 1003 struct power_state *pwrst, *tmp;
@@ -1000,6 +1007,8 @@ static int __init omap3_pm_init(void)
1000 if (!cpu_is_omap34xx()) 1007 if (!cpu_is_omap34xx())
1001 return -ENODEV; 1008 return -ENODEV;
1002 1009
1010 pm_errata_configure();
1011
1003 printk(KERN_ERR "Power Management for TI OMAP3.\n"); 1012 printk(KERN_ERR "Power Management for TI OMAP3.\n");
1004 1013
1005 /* XXX prcm_setup_regs needs to be before enabling hw 1014 /* XXX prcm_setup_regs needs to be before enabling hw