diff options
author | John Crispin <blogic@openwrt.org> | 2013-01-20 16:00:57 -0500 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2013-02-16 19:25:29 -0500 |
commit | c06e836ada59fbc6d1109277e693e5b3e056ac12 (patch) | |
tree | 2dba753c01872704c8dc13487cf603df7513d94d | |
parent | 19d3814e7b325f8965fd71f329b3467a97f8d217 (diff) |
MIPS: ralink: adds reset code
Resetting these SoCs requires no real magic. The code is straight forward.
Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Patchwork: http://patchwork.linux-mips.org/patch/4891/
-rw-r--r-- | arch/mips/ralink/reset.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/arch/mips/ralink/reset.c b/arch/mips/ralink/reset.c new file mode 100644 index 000000000000..22120e512e7e --- /dev/null +++ b/arch/mips/ralink/reset.c | |||
@@ -0,0 +1,44 @@ | |||
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); | ||