diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-11-05 07:35:32 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-05 07:57:14 -0500 |
commit | b219415c39053dbe70e88c361b5e943acd74546c (patch) | |
tree | 9c9750361f7f556feb176f655fa24bb692d7280a /arch | |
parent | 1139b926c4b1754276fc5e2556cc9c0f46b010c6 (diff) |
ARM: restart: ixp23xx: use new restart hook
Hook these platforms restart code into the new restart hook rather
than using arch_reset().
In doing so, we split out the ixdp2351 restart code into its own
platform file.
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-ixp23xx/core.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-ixp23xx/espresso.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/platform.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-ixp23xx/include/mach/system.h | 13 | ||||
-rw-r--r-- | arch/arm/mach-ixp23xx/ixdp2351.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-ixp23xx/roadrunner.c | 1 |
6 files changed, 21 insertions, 13 deletions
diff --git a/arch/arm/mach-ixp23xx/core.c b/arch/arm/mach-ixp23xx/core.c index a1bee33d183e..0923bb905cc0 100644 --- a/arch/arm/mach-ixp23xx/core.c +++ b/arch/arm/mach-ixp23xx/core.c | |||
@@ -444,3 +444,9 @@ void __init ixp23xx_sys_init(void) | |||
444 | *IXP23XX_EXP_UNIT_FUSE |= 0xf; | 444 | *IXP23XX_EXP_UNIT_FUSE |= 0xf; |
445 | platform_add_devices(ixp23xx_devices, ARRAY_SIZE(ixp23xx_devices)); | 445 | platform_add_devices(ixp23xx_devices, ARRAY_SIZE(ixp23xx_devices)); |
446 | } | 446 | } |
447 | |||
448 | void ixp23xx_restart(char mode, const char *cmd) | ||
449 | { | ||
450 | /* Use on-chip reset capability */ | ||
451 | *IXP23XX_RESET0 |= IXP23XX_RST_ALL; | ||
452 | } | ||
diff --git a/arch/arm/mach-ixp23xx/espresso.c b/arch/arm/mach-ixp23xx/espresso.c index 30dd31652e9d..8f2487e1fc4e 100644 --- a/arch/arm/mach-ixp23xx/espresso.c +++ b/arch/arm/mach-ixp23xx/espresso.c | |||
@@ -90,4 +90,5 @@ MACHINE_START(ESPRESSO, "IP Fabrics Double Espresso") | |||
90 | .timer = &ixp23xx_timer, | 90 | .timer = &ixp23xx_timer, |
91 | .atag_offset = 0x100, | 91 | .atag_offset = 0x100, |
92 | .init_machine = espresso_init, | 92 | .init_machine = espresso_init, |
93 | .restart = ixp23xx_restart, | ||
93 | MACHINE_END | 94 | MACHINE_END |
diff --git a/arch/arm/mach-ixp23xx/include/mach/platform.h b/arch/arm/mach-ixp23xx/include/mach/platform.h index db9d9416e5e4..50de558e722e 100644 --- a/arch/arm/mach-ixp23xx/include/mach/platform.h +++ b/arch/arm/mach-ixp23xx/include/mach/platform.h | |||
@@ -34,6 +34,7 @@ struct pci_sys_data; | |||
34 | void ixp23xx_map_io(void); | 34 | void ixp23xx_map_io(void); |
35 | void ixp23xx_init_irq(void); | 35 | void ixp23xx_init_irq(void); |
36 | void ixp23xx_sys_init(void); | 36 | void ixp23xx_sys_init(void); |
37 | void ixp23xx_restart(char, const char *); | ||
37 | int ixp23xx_pci_setup(int, struct pci_sys_data *); | 38 | int ixp23xx_pci_setup(int, struct pci_sys_data *); |
38 | void ixp23xx_pci_preinit(void); | 39 | void ixp23xx_pci_preinit(void); |
39 | struct pci_bus *ixp23xx_pci_scan_bus(int, struct pci_sys_data*); | 40 | struct pci_bus *ixp23xx_pci_scan_bus(int, struct pci_sys_data*); |
diff --git a/arch/arm/mach-ixp23xx/include/mach/system.h b/arch/arm/mach-ixp23xx/include/mach/system.h index 8920ff2dff1f..7a1b96ae258d 100644 --- a/arch/arm/mach-ixp23xx/include/mach/system.h +++ b/arch/arm/mach-ixp23xx/include/mach/system.h | |||
@@ -7,10 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | |||
11 | #include <mach/hardware.h> | ||
12 | #include <asm/mach-types.h> | ||
13 | |||
14 | static inline void arch_idle(void) | 10 | static inline void arch_idle(void) |
15 | { | 11 | { |
16 | #if 0 | 12 | #if 0 |
@@ -21,13 +17,4 @@ static inline void arch_idle(void) | |||
21 | 17 | ||
22 | static inline void arch_reset(char mode, const char *cmd) | 18 | static inline void arch_reset(char mode, const char *cmd) |
23 | { | 19 | { |
24 | /* First try machine specific support */ | ||
25 | if (machine_is_ixdp2351()) { | ||
26 | *IXDP2351_CPLD_RESET1_REG = IXDP2351_CPLD_RESET1_MAGIC; | ||
27 | (void) *IXDP2351_CPLD_RESET1_REG; | ||
28 | *IXDP2351_CPLD_RESET1_REG = IXDP2351_CPLD_RESET1_ENABLE; | ||
29 | } | ||
30 | |||
31 | /* Use on-chip reset capability */ | ||
32 | *IXP23XX_RESET0 |= IXP23XX_RST_ALL; | ||
33 | } | 20 | } |
diff --git a/arch/arm/mach-ixp23xx/ixdp2351.c b/arch/arm/mach-ixp23xx/ixdp2351.c index b3a57e0f3419..5d5dd3e8d069 100644 --- a/arch/arm/mach-ixp23xx/ixdp2351.c +++ b/arch/arm/mach-ixp23xx/ixdp2351.c | |||
@@ -326,6 +326,17 @@ static void __init ixdp2351_init(void) | |||
326 | ixp23xx_sys_init(); | 326 | ixp23xx_sys_init(); |
327 | } | 327 | } |
328 | 328 | ||
329 | static void ixdp2351_restart(char mode, const char *cmd) | ||
330 | { | ||
331 | /* First try machine specific support */ | ||
332 | |||
333 | *IXDP2351_CPLD_RESET1_REG = IXDP2351_CPLD_RESET1_MAGIC; | ||
334 | (void) *IXDP2351_CPLD_RESET1_REG; | ||
335 | *IXDP2351_CPLD_RESET1_REG = IXDP2351_CPLD_RESET1_ENABLE; | ||
336 | |||
337 | ixp23xx_restart(mode, cmd); | ||
338 | } | ||
339 | |||
329 | MACHINE_START(IXDP2351, "Intel IXDP2351 Development Platform") | 340 | MACHINE_START(IXDP2351, "Intel IXDP2351 Development Platform") |
330 | /* Maintainer: MontaVista Software, Inc. */ | 341 | /* Maintainer: MontaVista Software, Inc. */ |
331 | .map_io = ixdp2351_map_io, | 342 | .map_io = ixdp2351_map_io, |
@@ -333,4 +344,5 @@ MACHINE_START(IXDP2351, "Intel IXDP2351 Development Platform") | |||
333 | .timer = &ixp23xx_timer, | 344 | .timer = &ixp23xx_timer, |
334 | .atag_offset = 0x100, | 345 | .atag_offset = 0x100, |
335 | .init_machine = ixdp2351_init, | 346 | .init_machine = ixdp2351_init, |
347 | .restart = ixdp2351_restart, | ||
336 | MACHINE_END | 348 | MACHINE_END |
diff --git a/arch/arm/mach-ixp23xx/roadrunner.c b/arch/arm/mach-ixp23xx/roadrunner.c index 8f4dcbba9025..377283fc658c 100644 --- a/arch/arm/mach-ixp23xx/roadrunner.c +++ b/arch/arm/mach-ixp23xx/roadrunner.c | |||
@@ -177,4 +177,5 @@ MACHINE_START(ROADRUNNER, "ADI Engineering RoadRunner Development Platform") | |||
177 | .timer = &ixp23xx_timer, | 177 | .timer = &ixp23xx_timer, |
178 | .atag_offset = 0x100, | 178 | .atag_offset = 0x100, |
179 | .init_machine = roadrunner_init, | 179 | .init_machine = roadrunner_init, |
180 | .restart = ixp23xx_restart, | ||
180 | MACHINE_END | 181 | MACHINE_END |