diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-11-03 07:43:08 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-05 07:57:20 -0500 |
| commit | b56a7c6b36388b3eca887bd5d24f297e63e5bb5b (patch) | |
| tree | 5f97c95382475d21a0f39d68f7b1be93c7dc6b22 | |
| parent | 7e3974b2f3e393abcf7934f020e26d3d22efa940 (diff) | |
ARM: restart: versatile: 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>
| -rw-r--r-- | arch/arm/mach-versatile/core.c | 13 | ||||
| -rw-r--r-- | arch/arm/mach-versatile/core.h | 1 | ||||
| -rw-r--r-- | arch/arm/mach-versatile/include/mach/system.h | 12 | ||||
| -rw-r--r-- | arch/arm/mach-versatile/versatile_ab.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-versatile/versatile_dt.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-versatile/versatile_pb.c | 1 |
6 files changed, 17 insertions, 12 deletions
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index e340a54251df..b7a6a4b1a1de 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c | |||
| @@ -745,6 +745,19 @@ static void versatile_leds_event(led_event_t ledevt) | |||
| 745 | } | 745 | } |
| 746 | #endif /* CONFIG_LEDS */ | 746 | #endif /* CONFIG_LEDS */ |
| 747 | 747 | ||
| 748 | void versatile_restart(char mode, const char *cmd) | ||
| 749 | { | ||
| 750 | void __iomem *sys = __io_address(VERSATILE_SYS_BASE); | ||
| 751 | u32 val; | ||
| 752 | |||
| 753 | val = __raw_readl(sys + VERSATILE_SYS_RESETCTL_OFFSET); | ||
| 754 | val |= 0x105; | ||
| 755 | |||
| 756 | __raw_writel(0xa05f, sys + VERSATILE_SYS_LOCK_OFFSET); | ||
| 757 | __raw_writel(val, sys + VERSATILE_SYS_RESETCTL_OFFSET); | ||
| 758 | __raw_writel(0, sys + VERSATILE_SYS_LOCK_OFFSET); | ||
| 759 | } | ||
| 760 | |||
| 748 | /* Early initializations */ | 761 | /* Early initializations */ |
| 749 | void __init versatile_init_early(void) | 762 | void __init versatile_init_early(void) |
| 750 | { | 763 | { |
diff --git a/arch/arm/mach-versatile/core.h b/arch/arm/mach-versatile/core.h index e01422700ebb..2ef2f555f315 100644 --- a/arch/arm/mach-versatile/core.h +++ b/arch/arm/mach-versatile/core.h | |||
| @@ -30,6 +30,7 @@ extern void __init versatile_init_early(void); | |||
| 30 | extern void __init versatile_init_irq(void); | 30 | extern void __init versatile_init_irq(void); |
| 31 | extern void __init versatile_map_io(void); | 31 | extern void __init versatile_map_io(void); |
| 32 | extern struct sys_timer versatile_timer; | 32 | extern struct sys_timer versatile_timer; |
| 33 | extern void versatile_restart(char, const char *); | ||
| 33 | extern unsigned int mmc_status(struct device *dev); | 34 | extern unsigned int mmc_status(struct device *dev); |
| 34 | #ifdef CONFIG_OF | 35 | #ifdef CONFIG_OF |
| 35 | extern struct of_dev_auxdata versatile_auxdata_lookup[]; | 36 | extern struct of_dev_auxdata versatile_auxdata_lookup[]; |
diff --git a/arch/arm/mach-versatile/include/mach/system.h b/arch/arm/mach-versatile/include/mach/system.h index 8ffc12a7cb25..335946addf6f 100644 --- a/arch/arm/mach-versatile/include/mach/system.h +++ b/arch/arm/mach-versatile/include/mach/system.h | |||
| @@ -21,10 +21,6 @@ | |||
| 21 | #ifndef __ASM_ARCH_SYSTEM_H | 21 | #ifndef __ASM_ARCH_SYSTEM_H |
| 22 | #define __ASM_ARCH_SYSTEM_H | 22 | #define __ASM_ARCH_SYSTEM_H |
| 23 | 23 | ||
| 24 | #include <linux/io.h> | ||
| 25 | #include <mach/hardware.h> | ||
| 26 | #include <mach/platform.h> | ||
| 27 | |||
| 28 | static inline void arch_idle(void) | 24 | static inline void arch_idle(void) |
| 29 | { | 25 | { |
| 30 | /* | 26 | /* |
| @@ -36,14 +32,6 @@ static inline void arch_idle(void) | |||
| 36 | 32 | ||
| 37 | static inline void arch_reset(char mode, const char *cmd) | 33 | static inline void arch_reset(char mode, const char *cmd) |
| 38 | { | 34 | { |
| 39 | u32 val; | ||
| 40 | |||
| 41 | val = __raw_readl(IO_ADDRESS(VERSATILE_SYS_RESETCTL)) & ~0x7; | ||
| 42 | val |= 0x105; | ||
| 43 | |||
| 44 | __raw_writel(0xa05f, IO_ADDRESS(VERSATILE_SYS_LOCK)); | ||
| 45 | __raw_writel(val, IO_ADDRESS(VERSATILE_SYS_RESETCTL)); | ||
| 46 | __raw_writel(0, IO_ADDRESS(VERSATILE_SYS_LOCK)); | ||
| 47 | } | 35 | } |
| 48 | 36 | ||
| 49 | #endif | 37 | #endif |
diff --git a/arch/arm/mach-versatile/versatile_ab.c b/arch/arm/mach-versatile/versatile_ab.c index fda4866703cd..f1277ac92fac 100644 --- a/arch/arm/mach-versatile/versatile_ab.c +++ b/arch/arm/mach-versatile/versatile_ab.c | |||
| @@ -41,4 +41,5 @@ MACHINE_START(VERSATILE_AB, "ARM-Versatile AB") | |||
| 41 | .init_irq = versatile_init_irq, | 41 | .init_irq = versatile_init_irq, |
| 42 | .timer = &versatile_timer, | 42 | .timer = &versatile_timer, |
| 43 | .init_machine = versatile_init, | 43 | .init_machine = versatile_init, |
| 44 | .restart = versatile_restart, | ||
| 44 | MACHINE_END | 45 | MACHINE_END |
diff --git a/arch/arm/mach-versatile/versatile_dt.c b/arch/arm/mach-versatile/versatile_dt.c index 54e037c090f5..f48f2e4b667d 100644 --- a/arch/arm/mach-versatile/versatile_dt.c +++ b/arch/arm/mach-versatile/versatile_dt.c | |||
| @@ -48,4 +48,5 @@ DT_MACHINE_START(VERSATILE_PB, "ARM-Versatile (Device Tree Support)") | |||
| 48 | .timer = &versatile_timer, | 48 | .timer = &versatile_timer, |
| 49 | .init_machine = versatile_dt_init, | 49 | .init_machine = versatile_dt_init, |
| 50 | .dt_compat = versatile_dt_match, | 50 | .dt_compat = versatile_dt_match, |
| 51 | .restart = versatile_restart, | ||
| 51 | MACHINE_END | 52 | MACHINE_END |
diff --git a/arch/arm/mach-versatile/versatile_pb.c b/arch/arm/mach-versatile/versatile_pb.c index feaf9cbe60f6..839bea633821 100644 --- a/arch/arm/mach-versatile/versatile_pb.c +++ b/arch/arm/mach-versatile/versatile_pb.c | |||
| @@ -109,4 +109,5 @@ MACHINE_START(VERSATILE_PB, "ARM-Versatile PB") | |||
| 109 | .init_irq = versatile_init_irq, | 109 | .init_irq = versatile_init_irq, |
| 110 | .timer = &versatile_timer, | 110 | .timer = &versatile_timer, |
| 111 | .init_machine = versatile_pb_init, | 111 | .init_machine = versatile_pb_init, |
| 112 | .restart = versatile_restart, | ||
| 112 | MACHINE_END | 113 | MACHINE_END |
