summaryrefslogtreecommitdiff
path: root/arch/arm/mach-orion5x
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2010-06-21 07:22:08 +0400
committerNicolas Pitre <nico@fluxnic.net>2010-07-17 06:01:58 +0400
commit445f12dca8f06113caa775315bff574dee72b27d (patch)
tree909136819d7d1f9cc64f4a1ddac24d62a5088669 /arch/arm/mach-orion5x
parent6e2daa49420777190c133d7097dd8d5c05b475ac (diff)
downloadlinux-445f12dca8f06113caa775315bff574dee72b27d.tar.xz
[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... Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Diffstat (limited to 'arch/arm/mach-orion5x')
-rw-r--r--arch/arm/mach-orion5x/include/mach/system.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/mach-orion5x/include/mach/system.h b/arch/arm/mach-orion5x/include/mach/system.h
index 60e734c10458..a1d6e46ab035 100644
--- a/arch/arm/mach-orion5x/include/mach/system.h
+++ b/arch/arm/mach-orion5x/include/mach/system.h
@@ -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);
}