linux/arch/mips/ralink/reset.c
<<
>>
Prefs
   1/*
   2 * This program is free software; you can redistribute it and/or modify it
   3 * under the terms of the GNU General Public License version 2 as published
   4 * by the Free Software Foundation.
   5 *
   6 * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
   7 * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
   8 * Copyright (C) 2013 John Crispin <blogic@openwrt.org>
   9 */
  10
  11#include <linux/pm.h>
  12#include <linux/io.h>
  13
  14#include <asm/reboot.h>
  15
  16#include <asm/mach-ralink/ralink_regs.h>
  17
  18/* Reset Control */
  19#define SYSC_REG_RESET_CTRL     0x034
  20#define RSTCTL_RESET_SYSTEM     BIT(0)
  21
  22static void ralink_restart(char *command)
  23{
  24        local_irq_disable();
  25        rt_sysc_w32(RSTCTL_RESET_SYSTEM, SYSC_REG_RESET_CTRL);
  26        unreachable();
  27}
  28
  29static void ralink_halt(void)
  30{
  31        local_irq_disable();
  32        unreachable();
  33}
  34
  35static int __init mips_reboot_setup(void)
  36{
  37        _machine_restart = ralink_restart;
  38        _machine_halt = ralink_halt;
  39        pm_power_off = ralink_halt;
  40
  41        return 0;
  42}
  43
  44arch_initcall(mips_reboot_setup);
  45