1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * (C) Copyright 2009 4 * Vipin Kumar, ST Micoelectronics, vipin.kumar@st.com. 5 */ 6 7 #include <common.h> 8 #include <cpu_func.h> 9 #include <asm/io.h> 10 #include <asm/arch/hardware.h> 11 #include <asm/arch/spr_syscntl.h> 12 #include <linux/delay.h> 13 reset_cpu(ulong ignored)14void reset_cpu(ulong ignored) 15 { 16 struct syscntl_regs *syscntl_regs_p = 17 (struct syscntl_regs *)CONFIG_SPEAR_SYSCNTLBASE; 18 19 printf("System is going to reboot ...\n"); 20 21 /* 22 * This 1 second delay will allow the above message 23 * to be printed before reset 24 */ 25 udelay((1000 * 1000)); 26 27 /* Going into slow mode before resetting SOC */ 28 writel(0x02, &syscntl_regs_p->scctrl); 29 30 /* 31 * Writing any value to the system status register will 32 * reset the SoC 33 */ 34 writel(0x00, &syscntl_regs_p->scsysstat); 35 36 /* system will restart */ 37 while (1) 38 ; 39 } 40