root/arch/m68k/coldfire/reset.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. mcf_cpu_reset
  2. mcf_cpu_reset
  3. mcf_setup_reset

   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
  26 static 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
  37 static void mcf_cpu_reset(void)
  38 {
  39         local_irq_disable();
  40         __raw_writeb(MCF_RCR_SWRESET, MCF_RCR);
  41 }
  42 #endif
  43 
  44 static int __init mcf_setup_reset(void)
  45 {
  46         mach_reset = mcf_cpu_reset;
  47         return 0;
  48 }
  49 
  50 arch_initcall(mcf_setup_reset);

/* [<][>][^][v][top][bottom][index][help] */