ARM: restart: mv78xx0: use new restart hook

Hook these platforms restart code into the new restart hook rather than
using arch_reset().

Acked-by: Nicolas pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Russell King
2011-11-05 10:09:15 +00:00
parent 9854a38e37
commit 9635f9cd49
6 changed files with 20 additions and 14 deletions

View File

@@ -151,4 +151,5 @@ MACHINE_START(TERASTATION_WXL, "Buffalo Nas WXL")
.init_early = mv78xx0_init_early, .init_early = mv78xx0_init_early,
.init_irq = mv78xx0_init_irq, .init_irq = mv78xx0_init_irq,
.timer = &mv78xx0_timer, .timer = &mv78xx0_timer,
.restart = mv78xx0_restart,
MACHINE_END MACHINE_END

View File

@@ -401,3 +401,19 @@ void __init mv78xx0_init(void)
feroceon_l2_init(is_l2_writethrough()); feroceon_l2_init(is_l2_writethrough());
#endif #endif
} }
void mv78xx0_restart(char mode, const char *cmd)
{
/*
* Enable soft reset to assert RSTOUTn.
*/
writel(SOFT_RESET_OUT_EN, RSTOUTn_MASK);
/*
* Assert soft reset.
*/
writel(SOFT_RESET, SYSTEM_SOFT_RESET);
while (1)
;
}

View File

@@ -46,6 +46,7 @@ void mv78xx0_uart1_init(void);
void mv78xx0_uart2_init(void); void mv78xx0_uart2_init(void);
void mv78xx0_uart3_init(void); void mv78xx0_uart3_init(void);
void mv78xx0_i2c_init(void); void mv78xx0_i2c_init(void);
void mv78xx0_restart(char, const char *);
extern struct sys_timer mv78xx0_timer; extern struct sys_timer mv78xx0_timer;

View File

@@ -99,4 +99,5 @@ MACHINE_START(DB78X00_BP, "Marvell DB-78x00-BP Development Board")
.init_early = mv78xx0_init_early, .init_early = mv78xx0_init_early,
.init_irq = mv78xx0_init_irq, .init_irq = mv78xx0_init_irq,
.timer = &mv78xx0_timer, .timer = &mv78xx0_timer,
.restart = mv78xx0_restart,
MACHINE_END MACHINE_END

View File

@@ -9,8 +9,6 @@
#ifndef __ASM_ARCH_SYSTEM_H #ifndef __ASM_ARCH_SYSTEM_H
#define __ASM_ARCH_SYSTEM_H #define __ASM_ARCH_SYSTEM_H
#include <mach/bridge-regs.h>
static inline void arch_idle(void) static inline void arch_idle(void)
{ {
cpu_do_idle(); cpu_do_idle();
@@ -18,18 +16,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)
{ {
/*
* Enable soft reset to assert RSTOUTn.
*/
writel(SOFT_RESET_OUT_EN, RSTOUTn_MASK);
/*
* Assert soft reset.
*/
writel(SOFT_RESET, SYSTEM_SOFT_RESET);
while (1)
;
} }

View File

@@ -84,4 +84,5 @@ MACHINE_START(RD78X00_MASA, "Marvell RD-78x00-MASA Development Board")
.init_early = mv78xx0_init_early, .init_early = mv78xx0_init_early,
.init_irq = mv78xx0_init_irq, .init_irq = mv78xx0_init_irq,
.timer = &mv78xx0_timer, .timer = &mv78xx0_timer,
.restart = mv78xx0_restart,
MACHINE_END MACHINE_END