diff options
Diffstat (limited to 'arch/mips/mti-sead3/sead3-reset.c')
| -rw-r--r-- | arch/mips/mti-sead3/sead3-reset.c | 40 | 
1 files changed, 40 insertions, 0 deletions
diff --git a/arch/mips/mti-sead3/sead3-reset.c b/arch/mips/mti-sead3/sead3-reset.c new file mode 100644 index 00000000000..e6fb24414a7 --- /dev/null +++ b/arch/mips/mti-sead3/sead3-reset.c @@ -0,0 +1,40 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License.  See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 2012 MIPS Technologies, Inc.  All rights reserved. + */ +#include <linux/io.h> +#include <linux/pm.h> + +#include <asm/reboot.h> + +#define SOFTRES_REG	0x1f000050 +#define GORESET		0x4d + +static void mips_machine_restart(char *command) +{ +	unsigned int __iomem *softres_reg = +		ioremap(SOFTRES_REG, sizeof(unsigned int)); + +	__raw_writel(GORESET, softres_reg); +} + +static void mips_machine_halt(void) +{ +	unsigned int __iomem *softres_reg = +		ioremap(SOFTRES_REG, sizeof(unsigned int)); + +	__raw_writel(GORESET, softres_reg); +} + +static int __init mips_reboot_setup(void) +{ +	_machine_restart = mips_machine_restart; +	_machine_halt = mips_machine_halt; +	pm_power_off = mips_machine_halt; + +	return 0; +} +arch_initcall(mips_reboot_setup);  | 
