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>
This commit is contained in:
parent
7e3974b2f3
commit
b56a7c6b36
@ -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);
|
|||||||
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 @@
|
|||||||
#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)
|
|||||||
|
|
||||||
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")
|
|||||||
.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)")
|
|||||||
.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")
|
|||||||
.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
|
||||||
|
Loading…
Reference in New Issue
Block a user