added 2.6.29.6 aldebaran kernel
[nao-ulib.git] / kernel / 2.6.29.6-aldebaran-rt / arch / mips / lemote / lm2e / reset.c
blob099387a3827a730f584a2f7fe144805a25153147
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.
7 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
8 * Author: Fuxin Zhang, zhangfx@lemote.com
9 */
10 #include <linux/pm.h>
12 #include <asm/reboot.h>
14 static void loongson2e_restart(char *command)
16 #ifdef CONFIG_32BIT
17 *(unsigned long *)0xbfe00104 &= ~(1 << 2);
18 *(unsigned long *)0xbfe00104 |= (1 << 2);
19 #else
20 *(unsigned long *)0xffffffffbfe00104 &= ~(1 << 2);
21 *(unsigned long *)0xffffffffbfe00104 |= (1 << 2);
22 #endif
23 __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
26 static void loongson2e_halt(void)
28 while (1) ;
31 static void loongson2e_power_off(void)
33 loongson2e_halt();
36 void mips_reboot_setup(void)
38 _machine_restart = loongson2e_restart;
39 _machine_halt = loongson2e_halt;
40 pm_power_off = loongson2e_power_off;