diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-11-05 10:50:25 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-05 07:57:21 -0500 |
commit | fe76daea9ede24f9f53cb847563c2fa7a50cedf2 (patch) | |
tree | b6dbe02cb5169b90aa6bf786a0179516e3a1c253 /arch/arm/mach-w90x900 | |
parent | f5733a1e80fa0b40bea815ddf605ece272c6dac1 (diff) |
ARM: restart: w90x900: use new restart hook
Hook these platforms restart code into the new restart hook rather
than using arch_reset().
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-w90x900')
-rw-r--r-- | arch/arm/mach-w90x900/cpu.c | 16 | ||||
-rw-r--r-- | arch/arm/mach-w90x900/include/mach/system.h | 17 | ||||
-rw-r--r-- | arch/arm/mach-w90x900/mach-nuc910evb.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-w90x900/mach-nuc950evb.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-w90x900/mach-nuc960evb.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-w90x900/nuc9xx.h | 1 |
6 files changed, 20 insertions, 17 deletions
diff --git a/arch/arm/mach-w90x900/cpu.c b/arch/arm/mach-w90x900/cpu.c index 0a235e502330..604e1db266e8 100644 --- a/arch/arm/mach-w90x900/cpu.c +++ b/arch/arm/mach-w90x900/cpu.c | |||
@@ -33,9 +33,11 @@ | |||
33 | #include <mach/regs-serial.h> | 33 | #include <mach/regs-serial.h> |
34 | #include <mach/regs-clock.h> | 34 | #include <mach/regs-clock.h> |
35 | #include <mach/regs-ebi.h> | 35 | #include <mach/regs-ebi.h> |
36 | #include <mach/regs-timer.h> | ||
36 | 37 | ||
37 | #include "cpu.h" | 38 | #include "cpu.h" |
38 | #include "clock.h" | 39 | #include "clock.h" |
40 | #include "nuc9xx.h" | ||
39 | 41 | ||
40 | /* Initial IO mappings */ | 42 | /* Initial IO mappings */ |
41 | 43 | ||
@@ -222,3 +224,17 @@ void __init nuc900_init_clocks(void) | |||
222 | clkdev_add_table(nuc900_clkregs, ARRAY_SIZE(nuc900_clkregs)); | 224 | clkdev_add_table(nuc900_clkregs, ARRAY_SIZE(nuc900_clkregs)); |
223 | } | 225 | } |
224 | 226 | ||
227 | #define WTCR (TMR_BA + 0x1C) | ||
228 | #define WTCLK (1 << 10) | ||
229 | #define WTE (1 << 7) | ||
230 | #define WTRE (1 << 1) | ||
231 | |||
232 | void nuc9xx_restart(char mode, const char *cmd) | ||
233 | { | ||
234 | if (mode == 's') { | ||
235 | /* Jump into ROM at address 0 */ | ||
236 | soft_restart(0); | ||
237 | } else { | ||
238 | __raw_writel(WTE | WTRE | WTCLK, WTCR); | ||
239 | } | ||
240 | } | ||
diff --git a/arch/arm/mach-w90x900/include/mach/system.h b/arch/arm/mach-w90x900/include/mach/system.h index 68875a1c16be..001a2f93a1e2 100644 --- a/arch/arm/mach-w90x900/include/mach/system.h +++ b/arch/arm/mach-w90x900/include/mach/system.h | |||
@@ -14,28 +14,11 @@ | |||
14 | * (at your option) any later version. | 14 | * (at your option) any later version. |
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | |||
18 | #include <linux/io.h> | ||
19 | #include <asm/proc-fns.h> | ||
20 | #include <mach/map.h> | ||
21 | #include <mach/regs-timer.h> | ||
22 | |||
23 | #define WTCR (TMR_BA + 0x1C) | ||
24 | #define WTCLK (1 << 10) | ||
25 | #define WTE (1 << 7) | ||
26 | #define WTRE (1 << 1) | ||
27 | |||
28 | static void arch_idle(void) | 17 | static void arch_idle(void) |
29 | { | 18 | { |
30 | } | 19 | } |
31 | 20 | ||
32 | static void arch_reset(char mode, const char *cmd) | 21 | static void arch_reset(char mode, const char *cmd) |
33 | { | 22 | { |
34 | if (mode == 's') { | ||
35 | /* Jump into ROM at address 0 */ | ||
36 | soft_restart(0); | ||
37 | } else { | ||
38 | __raw_writel(WTE | WTRE | WTCLK, WTCR); | ||
39 | } | ||
40 | } | 23 | } |
41 | 24 | ||
diff --git a/arch/arm/mach-w90x900/mach-nuc910evb.c b/arch/arm/mach-w90x900/mach-nuc910evb.c index 31c109018228..b4243e4f1565 100644 --- a/arch/arm/mach-w90x900/mach-nuc910evb.c +++ b/arch/arm/mach-w90x900/mach-nuc910evb.c | |||
@@ -38,4 +38,5 @@ MACHINE_START(W90P910EVB, "W90P910EVB") | |||
38 | .init_irq = nuc900_init_irq, | 38 | .init_irq = nuc900_init_irq, |
39 | .init_machine = nuc910evb_init, | 39 | .init_machine = nuc910evb_init, |
40 | .timer = &nuc900_timer, | 40 | .timer = &nuc900_timer, |
41 | .restart = nuc9xx_restart, | ||
41 | MACHINE_END | 42 | MACHINE_END |
diff --git a/arch/arm/mach-w90x900/mach-nuc950evb.c b/arch/arm/mach-w90x900/mach-nuc950evb.c index 4062e55a57d8..067d8f9166dc 100644 --- a/arch/arm/mach-w90x900/mach-nuc950evb.c +++ b/arch/arm/mach-w90x900/mach-nuc950evb.c | |||
@@ -41,4 +41,5 @@ MACHINE_START(W90P950EVB, "W90P950EVB") | |||
41 | .init_irq = nuc900_init_irq, | 41 | .init_irq = nuc900_init_irq, |
42 | .init_machine = nuc950evb_init, | 42 | .init_machine = nuc950evb_init, |
43 | .timer = &nuc900_timer, | 43 | .timer = &nuc900_timer, |
44 | .restart = nuc9xx_restart, | ||
44 | MACHINE_END | 45 | MACHINE_END |
diff --git a/arch/arm/mach-w90x900/mach-nuc960evb.c b/arch/arm/mach-w90x900/mach-nuc960evb.c index 0ab9995d5b58..cbb3adc3db10 100644 --- a/arch/arm/mach-w90x900/mach-nuc960evb.c +++ b/arch/arm/mach-w90x900/mach-nuc960evb.c | |||
@@ -38,4 +38,5 @@ MACHINE_START(W90N960EVB, "W90N960EVB") | |||
38 | .init_irq = nuc900_init_irq, | 38 | .init_irq = nuc900_init_irq, |
39 | .init_machine = nuc960evb_init, | 39 | .init_machine = nuc960evb_init, |
40 | .timer = &nuc900_timer, | 40 | .timer = &nuc900_timer, |
41 | .restart = nuc9xx_restart, | ||
41 | MACHINE_END | 42 | MACHINE_END |
diff --git a/arch/arm/mach-w90x900/nuc9xx.h b/arch/arm/mach-w90x900/nuc9xx.h index 847c4f3e0440..91acb4047793 100644 --- a/arch/arm/mach-w90x900/nuc9xx.h +++ b/arch/arm/mach-w90x900/nuc9xx.h | |||
@@ -21,3 +21,4 @@ struct sys_timer; | |||
21 | 21 | ||
22 | extern void nuc900_init_irq(void); | 22 | extern void nuc900_init_irq(void); |
23 | extern struct sys_timer nuc900_timer; | 23 | extern struct sys_timer nuc900_timer; |
24 | extern void nuc9xx_restart(char, const char *); | ||