e2fee5723b
The built-in Loongson 2E/2F northbridge in is bonito64-compatible but not identical with it. To avoid influencing the original bonito64 support and make the loongson support more maintainable, it's better to separate the Bonito64 code from the Loongson code. This also prepares the kernel for the coming Loongson 2f machines family support. Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com> Cc: Linux-MIPS <linux-mips@linux-mips.org> Cc: yanh@lemote.com Cc: huhb@lemote.com Cc: Zhang Le <r0bertz@gentoo.org> Cc: zhangfx@lemote.com, Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
/*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2 of the License, or (at your
|
|
* option) any later version.
|
|
*
|
|
* Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
|
|
* Author: Fuxin Zhang, zhangfx@lemote.com
|
|
* Copyright (C) 2009 Lemote, Inc. & Institute of Computing Technology
|
|
* Author: Zhangjin Wu, wuzj@lemote.com
|
|
*/
|
|
#include <linux/init.h>
|
|
#include <linux/pm.h>
|
|
|
|
#include <asm/reboot.h>
|
|
|
|
#include <loongson.h>
|
|
|
|
static void loongson_restart(char *command)
|
|
{
|
|
/* do preparation for reboot */
|
|
mach_prepare_reboot();
|
|
|
|
/* reboot via jumping to boot base address */
|
|
((void (*)(void))ioremap_nocache(LOONGSON_BOOT_BASE, 4)) ();
|
|
}
|
|
|
|
static void loongson_halt(void)
|
|
{
|
|
mach_prepare_shutdown();
|
|
while (1)
|
|
;
|
|
}
|
|
|
|
static int __init mips_reboot_setup(void)
|
|
{
|
|
_machine_restart = loongson_restart;
|
|
_machine_halt = loongson_halt;
|
|
pm_power_off = loongson_halt;
|
|
|
|
return 0;
|
|
}
|
|
|
|
arch_initcall(mips_reboot_setup);
|