Commit b56a7c6b authored by Russell King's avatar Russell King

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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 7e3974b2
...@@ -745,6 +745,19 @@ static void versatile_leds_event(led_event_t ledevt) ...@@ -745,6 +745,19 @@ static void versatile_leds_event(led_event_t ledevt)
} }
#endif /* CONFIG_LEDS */ #endif /* CONFIG_LEDS */
void versatile_restart(char mode, const char *cmd)
{
void __iomem *sys = __io_address(VERSATILE_SYS_BASE);
u32 val;
val = __raw_readl(sys + VERSATILE_SYS_RESETCTL_OFFSET);
val |= 0x105;
__raw_writel(0xa05f, sys + VERSATILE_SYS_LOCK_OFFSET);
__raw_writel(val, sys + VERSATILE_SYS_RESETCTL_OFFSET);
__raw_writel(0, sys + VERSATILE_SYS_LOCK_OFFSET);
}
/* Early initializations */ /* Early initializations */
void __init versatile_init_early(void) void __init versatile_init_early(void)
{ {
......
...@@ -30,6 +30,7 @@ extern void __init versatile_init_early(void); ...@@ -30,6 +30,7 @@ extern void __init versatile_init_early(void);
extern void __init versatile_init_irq(void); extern void __init versatile_init_irq(void);
extern void __init versatile_map_io(void); extern void __init versatile_map_io(void);
extern struct sys_timer versatile_timer; extern struct sys_timer versatile_timer;
extern void versatile_restart(char, const char *);
extern unsigned int mmc_status(struct device *dev); extern unsigned int mmc_status(struct device *dev);
#ifdef CONFIG_OF #ifdef CONFIG_OF
extern struct of_dev_auxdata versatile_auxdata_lookup[]; extern struct of_dev_auxdata versatile_auxdata_lookup[];
......
...@@ -21,10 +21,6 @@ ...@@ -21,10 +21,6 @@
#ifndef __ASM_ARCH_SYSTEM_H #ifndef __ASM_ARCH_SYSTEM_H
#define __ASM_ARCH_SYSTEM_H #define __ASM_ARCH_SYSTEM_H
#include <linux/io.h>
#include <mach/hardware.h>
#include <mach/platform.h>
static inline void arch_idle(void) static inline void arch_idle(void)
{ {
/* /*
...@@ -36,14 +32,6 @@ static inline void arch_idle(void) ...@@ -36,14 +32,6 @@ static inline void arch_idle(void)
static inline void arch_reset(char mode, const char *cmd) static inline void arch_reset(char mode, const char *cmd)
{ {
u32 val;
val = __raw_readl(IO_ADDRESS(VERSATILE_SYS_RESETCTL)) & ~0x7;
val |= 0x105;
__raw_writel(0xa05f, IO_ADDRESS(VERSATILE_SYS_LOCK));
__raw_writel(val, IO_ADDRESS(VERSATILE_SYS_RESETCTL));
__raw_writel(0, IO_ADDRESS(VERSATILE_SYS_LOCK));
} }
#endif #endif
...@@ -41,4 +41,5 @@ MACHINE_START(VERSATILE_AB, "ARM-Versatile AB") ...@@ -41,4 +41,5 @@ MACHINE_START(VERSATILE_AB, "ARM-Versatile AB")
.init_irq = versatile_init_irq, .init_irq = versatile_init_irq,
.timer = &versatile_timer, .timer = &versatile_timer,
.init_machine = versatile_init, .init_machine = versatile_init,
.restart = versatile_restart,
MACHINE_END MACHINE_END
...@@ -48,4 +48,5 @@ DT_MACHINE_START(VERSATILE_PB, "ARM-Versatile (Device Tree Support)") ...@@ -48,4 +48,5 @@ DT_MACHINE_START(VERSATILE_PB, "ARM-Versatile (Device Tree Support)")
.timer = &versatile_timer, .timer = &versatile_timer,
.init_machine = versatile_dt_init, .init_machine = versatile_dt_init,
.dt_compat = versatile_dt_match, .dt_compat = versatile_dt_match,
.restart = versatile_restart,
MACHINE_END MACHINE_END
...@@ -109,4 +109,5 @@ MACHINE_START(VERSATILE_PB, "ARM-Versatile PB") ...@@ -109,4 +109,5 @@ MACHINE_START(VERSATILE_PB, "ARM-Versatile PB")
.init_irq = versatile_init_irq, .init_irq = versatile_init_irq,
.timer = &versatile_timer, .timer = &versatile_timer,
.init_machine = versatile_pb_init, .init_machine = versatile_pb_init,
.restart = versatile_restart,
MACHINE_END MACHINE_END
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment