Merge tag 'u-boot-atmel-fixes-2020.07-a' of https://gitlab.denx.de/u-boot/custodians...
[oweals/u-boot.git] / arch / arm / mach-uniphier / reset.c
index 005fbcf0b8ef8bfd264ad751f0c5231f725c0447..5fffd23e9a5a31bf3d7991bf92c50e33bfe1faa5 100644 (file)
@@ -1,26 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright (C) 2012-2014 Panasonic Corporation
- *   Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
+ * Copyright (C) 2015-2016 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  */
 
-#include <common.h>
-#include <asm/io.h>
-#include <mach/sc-regs.h>
+#include <cpu_func.h>
+#include <linux/io.h>
+#include <asm/secure.h>
 
-void reset_cpu(unsigned long ignored)
+#include "sc-regs.h"
+
+/* If PSCI is enabled, this is used for SYSTEM_RESET function */
+#ifdef CONFIG_ARMV7_PSCI
+#define __SECURE       __secure
+#else
+#define __SECURE
+#endif
+
+void __SECURE reset_cpu(unsigned long ignored)
 {
        u32 tmp;
 
-       writel(5, SC_IRQTIMSET); /* default value */
+       writel(5, sc_base + SC_IRQTIMSET); /* default value */
 
-       tmp  = readl(SC_SLFRSTSEL);
+       tmp  = readl(sc_base + SC_SLFRSTSEL);
        tmp &= ~0x3; /* mask [1:0] */
        tmp |= 0x0;  /* XRST reboot */
-       writel(tmp, SC_SLFRSTSEL);
+       writel(tmp, sc_base + SC_SLFRSTSEL);
 
-       tmp = readl(SC_SLFRSTCTL);
+       tmp = readl(sc_base + SC_SLFRSTCTL);
        tmp |= 0x1;
-       writel(tmp, SC_SLFRSTCTL);
+       writel(tmp, sc_base + SC_SLFRSTCTL);
 }