[ARM] orion5x: Fix soft-reset for some platforms
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 21 Jun 2010 03:22:08 +0000 (13:22 +1000)
committerNicolas Pitre <nico@fluxnic.net>
Sat, 17 Jul 2010 02:01:58 +0000 (22:01 -0400)
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...

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
arch/arm/mach-orion5x/include/mach/system.h

index 60e734c..a1d6e46 100644 (file)
@@ -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);
 }