Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1/*
 2 * reset.c  -- common ColdFire SoC reset support
 3 *
 4 * (C) Copyright 2012, Greg Ungerer <gerg@uclinux.org>
 5 *
 6 * This file is subject to the terms and conditions of the GNU General Public
 7 * License.  See the file COPYING in the main directory of this archive
 8 * for more details.
 9 */
10
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/io.h>
14#include <asm/machdep.h>
15#include <asm/coldfire.h>
16#include <asm/mcfsim.h>
17
18/*
19 *	There are 2 common methods amongst the ColdFure parts for reseting
20 *	the CPU. But there are couple of exceptions, the 5272 and the 547x
21 *	have something completely special to them, and we let their specific
22 *	subarch code handle them.
23 */
24
25#ifdef MCFSIM_SYPCR
26static void mcf_cpu_reset(void)
27{
28	local_irq_disable();
29	/* Set watchdog to soft reset, and enabled */
30	__raw_writeb(0xc0, MCFSIM_SYPCR);
31	for (;;)
32		/* wait for watchdog to timeout */;
33}
34#endif
35
36#ifdef MCF_RCR
37static void mcf_cpu_reset(void)
38{
39	local_irq_disable();
40	__raw_writeb(MCF_RCR_SWRESET, MCF_RCR);
41}
42#endif
43
44static int __init mcf_setup_reset(void)
45{
46	mach_reset = mcf_cpu_reset;
47	return 0;
48}
49
50arch_initcall(mcf_setup_reset);