1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2011-01-13     weety      modified from mini2440
9  */
10 
11 #include <rthw.h>
12 #include <rtthread.h>
13 #include "at91sam9g45.h"
14 
15 /**
16  * @addtogroup AT91SAM926X
17  */
18 /*@{*/
19 
machine_reset(void)20 void machine_reset(void)
21 {
22     AT91C_BASE_RSTC->RSTC_RCR = AT91C_RSTC_KEY | AT91C_RSTC_PROCRST | AT91C_RSTC_PERRST;
23 }
24 
machine_shutdown(void)25 void machine_shutdown(void)
26 {
27     AT91C_BASE_SHDWC->SHDWC_SHCR = AT91C_SHDWC_KEY | AT91C_SHDWC_SHDW;
28 }
29 
30 #ifdef RT_USING_FINSH
31 
32 #include <finsh.h>
33 
34 #ifdef FINSH_USING_MSH
cmd_reset(int argc,char ** argv)35 int cmd_reset(int argc, char** argv)
36 {
37     rt_hw_cpu_reset();
38     return 0;
39 }
40 MSH_CMD_EXPORT_ALIAS(cmd_reset, reset, restart the system);
41 
cmd_shutdown(int argc,char ** argv)42 int cmd_shutdown(int argc, char** argv)
43 {
44     rt_hw_cpu_shutdown();
45     return 0;
46 }
47 MSH_CMD_EXPORT_ALIAS(cmd_shutdown, shutdown, shutdown the system);
48 
49 #endif
50 #endif
51 
52 /*@}*/
53