445f12dca8
Some platforms, such as the DNS-323 rev C requires the soft reset line to be toggled on and back off for the reset to work. Note: The choice of 200ms delay comes from the 2.6.12 based vendor kernel. It seems to be a -lot- though and I had my device working fine with much smaller delays but better safe... Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
34 lines
677 B
C
34 lines
677 B
C
/*
|
|
* arch/arm/mach-orion5x/include/mach/system.h
|
|
*
|
|
* Tzachi Perelstein <tzachi@marvell.com>
|
|
*
|
|
* This file is licensed under the terms of the GNU General Public
|
|
* License version 2. This program is licensed "as is" without any
|
|
* warranty of any kind, whether express or implied.
|
|
*/
|
|
|
|
#ifndef __ASM_ARCH_SYSTEM_H
|
|
#define __ASM_ARCH_SYSTEM_H
|
|
|
|
#include <mach/bridge-regs.h>
|
|
|
|
static inline void arch_idle(void)
|
|
{
|
|
cpu_do_idle();
|
|
}
|
|
|
|
static inline void arch_reset(char mode, const char *cmd)
|
|
{
|
|
/*
|
|
* Enable and issue soft reset
|
|
*/
|
|
orion5x_setbits(RSTOUTn_MASK, (1 << 2));
|
|
orion5x_setbits(CPU_SOFT_RESET, 1);
|
|
mdelay(200);
|
|
orion5x_clrbits(CPU_SOFT_RESET, 1);
|
|
}
|
|
|
|
|
|
#endif
|