diff options
Diffstat (limited to 'arch/arm/mach-lpc32xx/common.c')
| -rw-r--r-- | arch/arm/mach-lpc32xx/common.c | 20 | 
1 files changed, 19 insertions, 1 deletions
diff --git a/arch/arm/mach-lpc32xx/common.c b/arch/arm/mach-lpc32xx/common.c index 205b2dbb565..369b152896c 100644 --- a/arch/arm/mach-lpc32xx/common.c +++ b/arch/arm/mach-lpc32xx/common.c @@ -164,7 +164,7 @@ int clk_is_sysclk_mainosc(void)  /*   * System reset via the watchdog timer   */ -void lpc32xx_watchdog_reset(void) +static void lpc32xx_watchdog_reset(void)  {  	/* Make sure WDT clocks are enabled */  	__raw_writel(LPC32XX_CLKPWR_PWMCLK_WDOG_EN, @@ -311,3 +311,21 @@ void __init lpc32xx_map_io(void)  {  	iotable_init(lpc32xx_io_desc, ARRAY_SIZE(lpc32xx_io_desc));  } + +void lpc23xx_restart(char mode, const char *cmd) +{ +	switch (mode) { +	case 's': +	case 'h': +		lpc32xx_watchdog_reset(); +		break; + +	default: +		/* Do nothing */ +		break; +	} + +	/* Wait for watchdog to reset system */ +	while (1) +		; +}  |