diff mbox

[U-Boot,V3,19/19] OMAP5: reset: Use cold reset in case of 5430ES1.0

Message ID 1331555152-28911-20-git-send-email-r.sricharan@ti.com
State Accepted
Commit 0696473be705287eb728356c79af19b69b60ab09
Delegated to: Tom Rini
Headers show

Commit Message

SRICHARAN R March 12, 2012, 12:25 p.m. UTC
Warm reset is not functional in case of omap5430ES1.0.
So override the weak reset_cpu function to use
cold reset instead.

Signed-off-by: R Sricharan <r.sricharan@ti.com>
---
 [v2]
	Addressed Tom's comments <trini@ti.com>
 [v3]
	Addressed Nishant's comments <nm@ti.com>

 arch/arm/cpu/armv7/omap5/hwinit.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
diff mbox

Patch

diff --git a/arch/arm/cpu/armv7/omap5/hwinit.c b/arch/arm/cpu/armv7/omap5/hwinit.c
index 7da7075..d01cc81 100644
--- a/arch/arm/cpu/armv7/omap5/hwinit.c
+++ b/arch/arm/cpu/armv7/omap5/hwinit.c
@@ -160,3 +160,17 @@  void init_omap_revision(void)
 		*omap_si_rev = OMAP5430_SILICON_ID_INVALID;
 	}
 }
+
+void reset_cpu(ulong ignored)
+{
+	u32 omap_rev = omap_revision();
+
+	/*
+	 * WARM reset is not functional in case of OMAP5430 ES1.0 soc.
+	 * So use cold reset in case instead.
+	 */
+	if (omap_rev == OMAP5430_ES1_0)
+		writel(PRM_RSTCTRL_RESET << 0x1, PRM_RSTCTRL);
+	else
+		writel(PRM_RSTCTRL_RESET, PRM_RSTCTRL);
+}