Commit | Line | Data |
---|---|---|
c06e836a JC |
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 | ||
22 | static 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 | ||
29 | static void ralink_halt(void) | |
30 | { | |
31 | local_irq_disable(); | |
32 | unreachable(); | |
33 | } | |
34 | ||
35 | static 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 | ||
44 | arch_initcall(mips_reboot_setup); |