1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright (C) 2012-2014 Panasonic Corporation 4 * Copyright (C) 2015-2016 Socionext Inc. 5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 */ 7 8#include <cpu_func.h> 9#include <linux/io.h> 10#include <asm/secure.h> 11 12#include "sc-regs.h" 13 14/* If PSCI is enabled, this is used for SYSTEM_RESET function */ 15#ifdef CONFIG_ARMV7_PSCI 16#define __SECURE __secure 17#else 18#define __SECURE 19#endif 20 21void __SECURE reset_cpu(void) 22{ 23 u32 tmp; 24 25 writel(5, sc_base + SC_IRQTIMSET); /* default value */ 26 27 tmp = readl(sc_base + SC_SLFRSTSEL); 28 tmp &= ~0x3; /* mask [1:0] */ 29 tmp |= 0x0; /* XRST reboot */ 30 writel(tmp, sc_base + SC_SLFRSTSEL); 31 32 tmp = readl(sc_base + SC_SLFRSTCTL); 33 tmp |= 0x1; 34 writel(tmp, sc_base + SC_SLFRSTCTL); 35} 36