Skip to contentSkip to conversation

arm/orion5x: Fix soft-reset for some platforms

PATCH In review Benjamin Herrenschmidt 1 participant 1 message Jun 13, 2010

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 3/4 arm/orion5x: Fix soft-reset for some platforms

Some platforms, such as the DNS-323 rev C requires the soft reset line to be toggled on and back off for the reset to work.

Note: The choice of 200ms delay comes from the 2.6.12 based vendor kernel. It seems to be a -lot- though and I had my device working fine with much smaller delays but better safe...

---
 arch/arm/mach-orion5x/include/mach/system.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
arch/arm/mach-orion5x/include/mach/system.h +2 -0
index 60e734c..a1d6e46 100644
@@ -25,6 +25,8 @@ static inline void arch_reset(char mode, const char *cmd)
 	 */
 	orion5x_setbits(RSTOUTn_MASK, (1 << 2));
 	orion5x_setbits(CPU_SOFT_RESET, 1);
+	mdelay(200);
+	orion5x_clrbits(CPU_SOFT_RESET, 1);
 }