blob: 6ad037e325d0424a426c2d03f01b97e61eafd9e4 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Dinh Nguyenad51f7c2012-10-04 06:46:02 +00002/*
Ley Foon Tandd5d12d2017-04-26 02:44:34 +08003 * Copyright (C) 2012-2017 Altera Corporation <www.altera.com>
Dinh Nguyenad51f7c2012-10-04 06:46:02 +00004 */
5
Ley Foon Tandd5d12d2017-04-26 02:44:34 +08006#ifndef _RESET_MANAGER_H_
7#define _RESET_MANAGER_H_
Dinh Nguyenad51f7c2012-10-04 06:46:02 +00008
9void reset_cpu(ulong addr);
Marek Vasut8d8c6482014-09-08 14:08:45 +020010
Marek Vasut3425eeb2015-07-09 02:45:15 +020011void socfpga_per_reset(u32 reset, int set);
Marek Vasut49edbd42015-07-09 04:27:28 +020012void socfpga_per_reset_all(void);
Marek Vasut3425eeb2015-07-09 02:45:15 +020013
Simon Goldschmidtb32e1e82019-07-15 21:47:52 +020014#define RSTMGR_CTRL_SWCOLDRSTREQ_LSB 0
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000015#define RSTMGR_CTRL_SWWARMRSTREQ_LSB 1
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000016
Marek Vasutbb1f8892015-07-09 02:30:35 +020017/*
18 * Define a reset identifier, from which a permodrst bank ID
19 * and reset ID can be extracted using the subsequent macros
20 * RSTMGR_RESET() and RSTMGR_BANK().
21 */
22#define RSTMGR_BANK_OFFSET 8
23#define RSTMGR_BANK_MASK 0x7
24#define RSTMGR_RESET_OFFSET 0
25#define RSTMGR_RESET_MASK 0x1f
26#define RSTMGR_DEFINE(_bank, _offset) \
27 ((_bank) << RSTMGR_BANK_OFFSET) | ((_offset) << RSTMGR_RESET_OFFSET)
28
29/* Extract reset ID from the reset identifier. */
30#define RSTMGR_RESET(_reset) \
31 (((_reset) >> RSTMGR_RESET_OFFSET) & RSTMGR_RESET_MASK)
32
33/* Extract bank ID from the reset identifier. */
34#define RSTMGR_BANK(_reset) \
35 (((_reset) >> RSTMGR_BANK_OFFSET) & RSTMGR_BANK_MASK)
36
Marek Vasutbb1f8892015-07-09 02:30:35 +020037/* Create a human-readable reference to SoCFPGA reset. */
38#define SOCFPGA_RESET(_name) RSTMGR_##_name
Pavel Machek56a00ab2014-09-09 14:03:28 +020039
Ley Foon Tandd5d12d2017-04-26 02:44:34 +080040#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
41#include <asm/arch/reset_manager_gen5.h>
Ley Foon Tan778ed2c2017-04-26 02:44:38 +080042#elif defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
43#include <asm/arch/reset_manager_arria10.h>
Ley Foon Tan449cbae2018-05-18 22:05:23 +080044#elif defined(CONFIG_TARGET_SOCFPGA_STRATIX10)
45#include <asm/arch/reset_manager_s10.h>
Ley Foon Tandd5d12d2017-04-26 02:44:34 +080046#endif
47
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000048#endif /* _RESET_MANAGER_H_ */