xref: /openbmc/linux/arch/riscv/kernel/reset.c (revision 6b22c736)
150acfb2bSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
276d2a049SPalmer Dabbelt /*
376d2a049SPalmer Dabbelt  * Copyright (C) 2012 Regents of the University of California
476d2a049SPalmer Dabbelt  */
576d2a049SPalmer Dabbelt 
676d2a049SPalmer Dabbelt #include <linux/reboot.h>
75ed881bcSPaul Walmsley #include <linux/pm.h>
876d2a049SPalmer Dabbelt 
default_power_off(void)9bf0102a0SChristoph Hellwig static void default_power_off(void)
10bf0102a0SChristoph Hellwig {
1186fe639aSChristoph Hellwig 	while (1)
1286fe639aSChristoph Hellwig 		wait_for_interrupt();
13bf0102a0SChristoph Hellwig }
14bf0102a0SChristoph Hellwig 
15f2928e22SDimitri John Ledkov void (*pm_power_off)(void) = NULL;
1640594558SAndreas Schwab EXPORT_SYMBOL(pm_power_off);
1776d2a049SPalmer Dabbelt 
machine_restart(char * cmd)1876d2a049SPalmer Dabbelt void machine_restart(char *cmd)
1976d2a049SPalmer Dabbelt {
2076d2a049SPalmer Dabbelt 	do_kernel_restart(cmd);
2176d2a049SPalmer Dabbelt 	while (1);
2276d2a049SPalmer Dabbelt }
2376d2a049SPalmer Dabbelt 
machine_halt(void)2476d2a049SPalmer Dabbelt void machine_halt(void)
2576d2a049SPalmer Dabbelt {
26*6b22c736SDmitry Osipenko 	do_kernel_power_off();
27f2928e22SDimitri John Ledkov 	default_power_off();
2876d2a049SPalmer Dabbelt }
2976d2a049SPalmer Dabbelt 
machine_power_off(void)3076d2a049SPalmer Dabbelt void machine_power_off(void)
3176d2a049SPalmer Dabbelt {
32*6b22c736SDmitry Osipenko 	do_kernel_power_off();
33f2928e22SDimitri John Ledkov 	default_power_off();
3476d2a049SPalmer Dabbelt }
35