blob: 42beaecdd6b99edfb0b3d036684ec1f05dffdfc3 [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
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000014#define RSTMGR_CTRL_SWWARMRSTREQ_LSB 1
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000015
Marek Vasutbb1f8892015-07-09 02:30:35 +020016/*
17 * Define a reset identifier, from which a permodrst bank ID
18 * and reset ID can be extracted using the subsequent macros
19 * RSTMGR_RESET() and RSTMGR_BANK().
20 */
21#define RSTMGR_BANK_OFFSET 8
22#define RSTMGR_BANK_MASK 0x7
23#define RSTMGR_RESET_OFFSET 0
24#define RSTMGR_RESET_MASK 0x1f
25#define RSTMGR_DEFINE(_bank, _offset) \
26 ((_bank) << RSTMGR_BANK_OFFSET) | ((_offset) << RSTMGR_RESET_OFFSET)
27
28/* Extract reset ID from the reset identifier. */
29#define RSTMGR_RESET(_reset) \
30 (((_reset) >> RSTMGR_RESET_OFFSET) & RSTMGR_RESET_MASK)
31
32/* Extract bank ID from the reset identifier. */
33#define RSTMGR_BANK(_reset) \
34 (((_reset) >> RSTMGR_BANK_OFFSET) & RSTMGR_BANK_MASK)
35
Marek Vasutbb1f8892015-07-09 02:30:35 +020036/* Create a human-readable reference to SoCFPGA reset. */
37#define SOCFPGA_RESET(_name) RSTMGR_##_name
Pavel Machek56a00ab2014-09-09 14:03:28 +020038
Ley Foon Tandd5d12d2017-04-26 02:44:34 +080039#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
40#include <asm/arch/reset_manager_gen5.h>
Ley Foon Tan778ed2c2017-04-26 02:44:38 +080041#elif defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
42#include <asm/arch/reset_manager_arria10.h>
Ley Foon Tan449cbae2018-05-18 22:05:23 +080043#elif defined(CONFIG_TARGET_SOCFPGA_STRATIX10)
44#include <asm/arch/reset_manager_s10.h>
Ley Foon Tandd5d12d2017-04-26 02:44:34 +080045#endif
46
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000047#endif /* _RESET_MANAGER_H_ */