summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-lpc32xx/common.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-01-07 12:44:37 +0000
committerArnd Bergmann <arnd@arndb.de>2012-01-07 20:40:51 +0000
commitb001befe58691ef3627458cd814e8cee7f845c5f (patch)
tree1083f1a1cd3feeceeac4b395534df0ff032fdbc8 /arch/arm/mach-lpc32xx/common.c
parent31b2a868451d630bacfdeddc626371b3f9d9a01c (diff)
parent928a11ba36f999436915ea2b1eadf54301f93059 (diff)
Merge branch 'samsung/dt' into next/dt
* samsung/dt: (3 commit) Merge branch 'depends/rmk/for-linus' into samsung/dt Merge branch 'depends/rmk/restart' into next/cleanup Merge branch 'next/cleanup' into samsung/dt Conflicts: arch/arm/mach-tegra/board-dt.c arch/arm/mach-tegra/include/mach/entry-macro.S The latest version of the samsung/dt branch resolves all sorts of conflicts with the latest upstream, no functional changes that are not already there. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-lpc32xx/common.c')
-rw-r--r--arch/arm/mach-lpc32xx/common.c20
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)
+ ;
+}