diff options
Diffstat (limited to 'arch/arm/mach-orion5x/common.c')
-rw-r--r-- | arch/arm/mach-orion5x/common.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index 22ace0bf2f92..41127e80cc1e 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/mbus.h> | 18 | #include <linux/mbus.h> |
19 | #include <linux/mv643xx_i2c.h> | 19 | #include <linux/mv643xx_i2c.h> |
20 | #include <linux/ata_platform.h> | 20 | #include <linux/ata_platform.h> |
21 | #include <linux/delay.h> | ||
21 | #include <net/dsa.h> | 22 | #include <net/dsa.h> |
22 | #include <asm/page.h> | 23 | #include <asm/page.h> |
23 | #include <asm/setup.h> | 24 | #include <asm/setup.h> |
@@ -304,6 +305,17 @@ void __init orion5x_init(void) | |||
304 | orion5x_wdt_init(); | 305 | orion5x_wdt_init(); |
305 | } | 306 | } |
306 | 307 | ||
308 | void orion5x_restart(char mode, const char *cmd) | ||
309 | { | ||
310 | /* | ||
311 | * Enable and issue soft reset | ||
312 | */ | ||
313 | orion5x_setbits(RSTOUTn_MASK, (1 << 2)); | ||
314 | orion5x_setbits(CPU_SOFT_RESET, 1); | ||
315 | mdelay(200); | ||
316 | orion5x_clrbits(CPU_SOFT_RESET, 1); | ||
317 | } | ||
318 | |||
307 | /* | 319 | /* |
308 | * Many orion-based systems have buggy bootloader implementations. | 320 | * Many orion-based systems have buggy bootloader implementations. |
309 | * This is a common fixup for bogus memory tags. | 321 | * This is a common fixup for bogus memory tags. |