xref: /openbmc/linux/arch/riscv/kernel/reset.c (revision b664e06d)
1 /*
2  * Copyright (C) 2012 Regents of the University of California
3  *
4  *   This program is free software; you can redistribute it and/or
5  *   modify it under the terms of the GNU General Public License
6  *   as published by the Free Software Foundation, version 2.
7  *
8  *   This program is distributed in the hope that it will be useful,
9  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
10  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  *   GNU General Public License for more details.
12  */
13 
14 #include <linux/reboot.h>
15 #include <asm/sbi.h>
16 
17 static void default_power_off(void)
18 {
19 	sbi_shutdown();
20 	while (1);
21 }
22 
23 void (*pm_power_off)(void) = default_power_off;
24 
25 void machine_restart(char *cmd)
26 {
27 	do_kernel_restart(cmd);
28 	while (1);
29 }
30 
31 void machine_halt(void)
32 {
33 	pm_power_off();
34 }
35 
36 void machine_power_off(void)
37 {
38 	pm_power_off();
39 }
40