blob: d9e0b33c601c841e87fc0d782ba5450b5a28a75b [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 Vasut3386c852018-04-23 22:49:31 +020013int socfpga_eth_reset_common(void (*resetfn)(const u8 of_reset_id,
14 const u8 phymode));
Marek Vasut3425eeb2015-07-09 02:45:15 +020015
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000016#define RSTMGR_CTRL_SWWARMRSTREQ_LSB 1
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000017
Marek Vasutbb1f8892015-07-09 02:30:35 +020018/*
19 * Define a reset identifier, from which a permodrst bank ID
20 * and reset ID can be extracted using the subsequent macros
21 * RSTMGR_RESET() and RSTMGR_BANK().
22 */
23#define RSTMGR_BANK_OFFSET 8
24#define RSTMGR_BANK_MASK 0x7
25#define RSTMGR_RESET_OFFSET 0
26#define RSTMGR_RESET_MASK 0x1f
27#define RSTMGR_DEFINE(_bank, _offset) \
28 ((_bank) << RSTMGR_BANK_OFFSET) | ((_offset) << RSTMGR_RESET_OFFSET)
29
30/* Extract reset ID from the reset identifier. */
31#define RSTMGR_RESET(_reset) \
32 (((_reset) >> RSTMGR_RESET_OFFSET) & RSTMGR_RESET_MASK)
33
34/* Extract bank ID from the reset identifier. */
35#define RSTMGR_BANK(_reset) \
36 (((_reset) >> RSTMGR_BANK_OFFSET) & RSTMGR_BANK_MASK)
37
Marek Vasutbb1f8892015-07-09 02:30:35 +020038/* Create a human-readable reference to SoCFPGA reset. */
39#define SOCFPGA_RESET(_name) RSTMGR_##_name
Pavel Machek56a00ab2014-09-09 14:03:28 +020040
Ley Foon Tandd5d12d2017-04-26 02:44:34 +080041#if defined(CONFIG_TARGET_SOCFPGA_GEN5)
42#include <asm/arch/reset_manager_gen5.h>
Ley Foon Tan778ed2c2017-04-26 02:44:38 +080043#elif defined(CONFIG_TARGET_SOCFPGA_ARRIA10)
44#include <asm/arch/reset_manager_arria10.h>
Ley Foon Tan449cbae2018-05-18 22:05:23 +080045#elif defined(CONFIG_TARGET_SOCFPGA_STRATIX10)
46#include <asm/arch/reset_manager_s10.h>
Ley Foon Tandd5d12d2017-04-26 02:44:34 +080047#endif
48
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000049#endif /* _RESET_MANAGER_H_ */