xref: /openbmc/linux/arch/riscv/kernel/reset.c (revision c24c57a4)
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (C) 2012 Regents of the University of California
4  */
5 
6 #include <linux/reboot.h>
7 #include <linux/pm.h>
8 #include <asm/sbi.h>
9 
10 static void default_power_off(void)
11 {
12 	sbi_shutdown();
13 	while (1);
14 }
15 
16 void (*pm_power_off)(void) = default_power_off;
17 EXPORT_SYMBOL(pm_power_off);
18 
19 void machine_restart(char *cmd)
20 {
21 	do_kernel_restart(cmd);
22 	while (1);
23 }
24 
25 void machine_halt(void)
26 {
27 	pm_power_off();
28 }
29 
30 void machine_power_off(void)
31 {
32 	pm_power_off();
33 }
34