diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-11-05 08:17:40 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-05 07:57:15 -0500 |
commit | b23fcd9035a35b032c624ac2f23f40ea941d5355 (patch) | |
tree | a9727f35b03a98626ba235a0947a4e5d80002a1b /arch/arm | |
parent | 114c19b7b53523a6304c4b4fc51a22d006da3726 (diff) |
ARM: restart: lpc32xx: use new restart hook
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>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-lpc32xx/common.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-lpc32xx/common.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-lpc32xx/include/mach/system.h | 18 | ||||
-rw-r--r-- | arch/arm/mach-lpc32xx/phy3250.c | 1 |
4 files changed, 24 insertions, 19 deletions
diff --git a/arch/arm/mach-lpc32xx/common.c b/arch/arm/mach-lpc32xx/common.c index 205b2dbb565b..b049fd1eb8e1 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) | |||
164 | /* | 164 | /* |
165 | * System reset via the watchdog timer | 165 | * System reset via the watchdog timer |
166 | */ | 166 | */ |
167 | void lpc32xx_watchdog_reset(void) | 167 | static void lpc32xx_watchdog_reset(void) |
168 | { | 168 | { |
169 | /* Make sure WDT clocks are enabled */ | 169 | /* Make sure WDT clocks are enabled */ |
170 | __raw_writel(LPC32XX_CLKPWR_PWMCLK_WDOG_EN, | 170 | __raw_writel(LPC32XX_CLKPWR_PWMCLK_WDOG_EN, |
@@ -311,3 +311,23 @@ void __init lpc32xx_map_io(void) | |||
311 | { | 311 | { |
312 | iotable_init(lpc32xx_io_desc, ARRAY_SIZE(lpc32xx_io_desc)); | 312 | iotable_init(lpc32xx_io_desc, ARRAY_SIZE(lpc32xx_io_desc)); |
313 | } | 313 | } |
314 | |||
315 | void lpc23xx_restart(char mode, const char *cmd) | ||
316 | { | ||
317 | switch (mode) { | ||
318 | case 's': | ||
319 | case 'h': | ||
320 | printk(KERN_CRIT "RESET: Rebooting system\n"); | ||
321 | |||
322 | lpc32xx_watchdog_reset(); | ||
323 | break; | ||
324 | |||
325 | default: | ||
326 | /* Do nothing */ | ||
327 | break; | ||
328 | } | ||
329 | |||
330 | /* Wait for watchdog to reset system */ | ||
331 | while (1) | ||
332 | ; | ||
333 | } | ||
diff --git a/arch/arm/mach-lpc32xx/common.h b/arch/arm/mach-lpc32xx/common.h index 5583f52662bd..4b4e700343c1 100644 --- a/arch/arm/mach-lpc32xx/common.h +++ b/arch/arm/mach-lpc32xx/common.h | |||
@@ -39,6 +39,8 @@ extern void __init lpc32xx_init_irq(void); | |||
39 | extern void __init lpc32xx_map_io(void); | 39 | extern void __init lpc32xx_map_io(void); |
40 | extern void __init lpc32xx_serial_init(void); | 40 | extern void __init lpc32xx_serial_init(void); |
41 | extern void __init lpc32xx_gpio_init(void); | 41 | extern void __init lpc32xx_gpio_init(void); |
42 | extern void lpc23xx_restart(char, const char *); | ||
43 | |||
42 | 44 | ||
43 | /* | 45 | /* |
44 | * Structure used for setting up and querying the PLLS | 46 | * Structure used for setting up and querying the PLLS |
diff --git a/arch/arm/mach-lpc32xx/include/mach/system.h b/arch/arm/mach-lpc32xx/include/mach/system.h index d47f3b1c24b8..9c6cc0c7dd46 100644 --- a/arch/arm/mach-lpc32xx/include/mach/system.h +++ b/arch/arm/mach-lpc32xx/include/mach/system.h | |||
@@ -26,24 +26,6 @@ static void arch_idle(void) | |||
26 | 26 | ||
27 | static inline void arch_reset(char mode, const char *cmd) | 27 | static inline void arch_reset(char mode, const char *cmd) |
28 | { | 28 | { |
29 | extern void lpc32xx_watchdog_reset(void); | ||
30 | |||
31 | switch (mode) { | ||
32 | case 's': | ||
33 | case 'h': | ||
34 | printk(KERN_CRIT "RESET: Rebooting system\n"); | ||
35 | |||
36 | lpc32xx_watchdog_reset(); | ||
37 | break; | ||
38 | |||
39 | default: | ||
40 | /* Do nothing */ | ||
41 | break; | ||
42 | } | ||
43 | |||
44 | /* Wait for watchdog to reset system */ | ||
45 | while (1) | ||
46 | ; | ||
47 | } | 29 | } |
48 | 30 | ||
49 | #endif | 31 | #endif |
diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c index 6d2f0d1b9373..ecb94114c81b 100644 --- a/arch/arm/mach-lpc32xx/phy3250.c +++ b/arch/arm/mach-lpc32xx/phy3250.c | |||
@@ -388,4 +388,5 @@ MACHINE_START(PHY3250, "Phytec 3250 board with the LPC3250 Microcontroller") | |||
388 | .init_irq = lpc32xx_init_irq, | 388 | .init_irq = lpc32xx_init_irq, |
389 | .timer = &lpc32xx_timer, | 389 | .timer = &lpc32xx_timer, |
390 | .init_machine = phy3250_board_init, | 390 | .init_machine = phy3250_board_init, |
391 | .restart = lpc23xx_restart, | ||
391 | MACHINE_END | 392 | MACHINE_END |