Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* |
Steven J. Hill | b72d9a4 | 2013-06-13 19:55:06 +0000 | [diff] [blame] | 2 | * This file is subject to the terms and conditions of the GNU General Public |
| 3 | * License. See the file "COPYING" in the main directory of this archive |
| 4 | * for more details. |
| 5 | * |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 6 | * Carsten Langgaard, carstenl@mips.com |
| 7 | * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 8 | */ |
Steven J. Hill | b72d9a4 | 2013-06-13 19:55:06 +0000 | [diff] [blame] | 9 | #include <linux/io.h> |
Ralf Baechle | fcdb27a | 2006-01-18 17:37:07 +0000 | [diff] [blame] | 10 | #include <linux/pm.h> |
Paul Burton | 10b6ea0 | 2016-09-19 22:21:28 +0100 | [diff] [blame] | 11 | #include <linux/reboot.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 12 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 13 | #include <asm/reboot.h> |
Paul Burton | dadaa1c | 2014-05-07 12:22:12 +0100 | [diff] [blame] | 14 | #include <asm/mach-malta/malta-pm.h> |
Steven J. Hill | 36a29af | 2013-06-13 19:55:05 +0000 | [diff] [blame] | 15 | |
Paul Burton | 37e5c83 | 2014-05-07 12:20:59 +0100 | [diff] [blame] | 16 | static void mips_machine_power_off(void) |
| 17 | { |
Paul Burton | dadaa1c | 2014-05-07 12:22:12 +0100 | [diff] [blame] | 18 | mips_pm_suspend(PIIX4_FUNC3IO_PMCNTRL_SUS_TYP_SOFF); |
| 19 | |
| 20 | pr_info("Failed to power down, resetting\n"); |
Paul Burton | 10b6ea0 | 2016-09-19 22:21:28 +0100 | [diff] [blame] | 21 | machine_restart(NULL); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 22 | } |
| 23 | |
Ralf Baechle | 1f320d0 | 2009-09-15 14:50:39 +0200 | [diff] [blame] | 24 | static int __init mips_reboot_setup(void) |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 25 | { |
Paul Burton | 37e5c83 | 2014-05-07 12:20:59 +0100 | [diff] [blame] | 26 | pm_power_off = mips_machine_power_off; |
Ralf Baechle | 1f320d0 | 2009-09-15 14:50:39 +0200 | [diff] [blame] | 27 | |
| 28 | return 0; |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 29 | } |
Ralf Baechle | 1f320d0 | 2009-09-15 14:50:39 +0200 | [diff] [blame] | 30 | arch_initcall(mips_reboot_setup); |