aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/pm34xx.c
diff options
context:
space:
mode:
authorNishanth Menon <nm@ti.com>2010-12-20 15:05:06 -0500
committerKevin Hilman <khilman@deeprootsystems.com>2010-12-21 17:45:50 -0500
commit458e999eb14a301d4176783c8fcb277f5d009b4e (patch)
tree7300efdef971f91e4d7601f9bc1174fe9716f313 /arch/arm/mach-omap2/pm34xx.c
parent8cdfd83473d9b408b924b5d32777ac3fddd251ff (diff)
OMAP3630: PM: Erratum i608: disable RTA
Erratum id: i608 RTA (Retention Till Access) feature is not supported and leads to device stability issues when enabled. This impacts modules with embedded memories on OMAP3630 Workaround is to disable RTA on boot and coming out of core off. For disabling RTA coming out of off mode, we do this by overriding the restore pointer for 3630 as the first point of entry before caches are touched and is common for GP and HS devices. To disable earlier than this could be possible by modifying the PPA for HS devices, but not for GP devices. Cc: Kevin Hilman <khilman@deeprootsystems.com> Cc: Tony Lindgren <tony@atomide.com> Acked-by: Jean Pihet <j-pihet@ti.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> [ambresh@ti.com: co-developer] Signed-off-by: Ambresh K <ambresh@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-omap2/pm34xx.c')
-rw-r--r--arch/arm/mach-omap2/pm34xx.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 288bee32e2b2..7dbc00005464 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -996,6 +996,8 @@ void omap_push_sram_idle(void)
996 996
997static void __init pm_errata_configure(void) 997static void __init pm_errata_configure(void)
998{ 998{
999 if (cpu_is_omap3630())
1000 pm34xx_errata |= PM_RTA_ERRATUM_i608;
999} 1001}
1000 1002
1001static int __init omap3_pm_init(void) 1003static int __init omap3_pm_init(void)
@@ -1056,6 +1058,14 @@ static int __init omap3_pm_init(void)
1056 pm_idle = omap3_pm_idle; 1058 pm_idle = omap3_pm_idle;
1057 omap3_idle_init(); 1059 omap3_idle_init();
1058 1060
1061 /*
1062 * RTA is disabled during initialization as per erratum i608
1063 * it is safer to disable RTA by the bootloader, but we would like
1064 * to be doubly sure here and prevent any mishaps.
1065 */
1066 if (IS_PM34XX_ERRATUM(PM_RTA_ERRATUM_i608))
1067 omap3630_ctrl_disable_rta();
1068
1059 clkdm_add_wkdep(neon_clkdm, mpu_clkdm); 1069 clkdm_add_wkdep(neon_clkdm, mpu_clkdm);
1060 if (omap_type() != OMAP2_DEVICE_TYPE_GP) { 1070 if (omap_type() != OMAP2_DEVICE_TYPE_GP) {
1061 omap3_secure_ram_storage = 1071 omap3_secure_ram_storage =