Linux-libre 5.4.48-gnu
[librecmc/linux-libre.git] / arch / riscv / kernel / reset.c
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 }