ARM: restart: lpc32xx: use new restart hook
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 5 Nov 2011 12:17:40 +0000 (12:17 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 5 Jan 2012 12:57:15 +0000 (12:57 +0000)
Hook these platforms restart code into the arm_pm_restart hook rather
than using arch_reset().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-lpc32xx/common.c
arch/arm/mach-lpc32xx/common.h
arch/arm/mach-lpc32xx/include/mach/system.h
arch/arm/mach-lpc32xx/phy3250.c

index 205b2dbb565bb91c00593b848c1aec2adfda74cf..b049fd1eb8e1e216960e3bdca72f81b3d0f8e8db 100644 (file)
@@ -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,23 @@ 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':
+               printk(KERN_CRIT "RESET: Rebooting system\n");
+
+               lpc32xx_watchdog_reset();
+               break;
+
+       default:
+               /* Do nothing */
+               break;
+       }
+
+       /* Wait for watchdog to reset system */
+       while (1)
+               ;
+}
index 5583f52662bda8164dec061b60d57476b9c761e4..4b4e700343c14f89ecefb18af80810d031ba5a2d 100644 (file)
@@ -39,6 +39,8 @@ extern void __init lpc32xx_init_irq(void);
 extern void __init lpc32xx_map_io(void);
 extern void __init lpc32xx_serial_init(void);
 extern void __init lpc32xx_gpio_init(void);
+extern void lpc23xx_restart(char, const char *);
+
 
 /*
  * Structure used for setting up and querying the PLLS
index d47f3b1c24b8c217ffa725f7a92ad1743d7df6e0..9c6cc0c7dd46dc258ce7ed5ac7cdf607fc3ade63 100644 (file)
@@ -26,24 +26,6 @@ static void arch_idle(void)
 
 static inline void arch_reset(char mode, const char *cmd)
 {
-       extern void lpc32xx_watchdog_reset(void);
-
-       switch (mode) {
-       case 's':
-       case 'h':
-               printk(KERN_CRIT "RESET: Rebooting system\n");
-
-               lpc32xx_watchdog_reset();
-               break;
-
-       default:
-               /* Do nothing */
-               break;
-       }
-
-       /* Wait for watchdog to reset system */
-       while (1)
-               ;
 }
 
 #endif
index 6d2f0d1b9373243d586ae4ef3a33452f48766a5d..ecb94114c81bdf495f17d940d5287800304527e6 100644 (file)
@@ -388,4 +388,5 @@ MACHINE_START(PHY3250, "Phytec 3250 board with the LPC3250 Microcontroller")
        .init_irq       = lpc32xx_init_irq,
        .timer          = &lpc32xx_timer,
        .init_machine   = phy3250_board_init,
+       .restart        = lpc23xx_restart,
 MACHINE_END