MIPS: Loongson: pm: Remove redundant source code
[kernel.git] / arch / mips / lemote / lm2e / reset.c
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 as published by the
4  * Free Software Foundation;  either version 2 of the  License, or (at your
5  * option) any later version.
6  *
7  * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
8  * Author: Fuxin Zhang, zhangfx@lemote.com
9  */
10 #include <linux/init.h>
11 #include <linux/pm.h>
12
13 #include <asm/reboot.h>
14
15 static void loongson2e_restart(char *command)
16 {
17 #ifdef CONFIG_32BIT
18         *(unsigned long *)0xbfe00104 &= ~(1 << 2);
19         *(unsigned long *)0xbfe00104 |= (1 << 2);
20 #else
21         *(unsigned long *)0xffffffffbfe00104 &= ~(1 << 2);
22         *(unsigned long *)0xffffffffbfe00104 |= (1 << 2);
23 #endif
24         __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
25 }
26
27 static void loongson2e_halt(void)
28 {
29         while (1) ;
30 }
31
32 static int __init mips_reboot_setup(void)
33 {
34         _machine_restart = loongson2e_restart;
35         _machine_halt = loongson2e_halt;
36         pm_power_off = loongson2e_halt;
37
38         return 0;
39 }
40
41 arch_initcall(mips_reboot_setup);