blob: 1857b80b3e44005bfb13b3fb50054d01734fb7ab [file] [log] [blame]
Dinh Nguyenad51f7c2012-10-04 06:46:02 +00001/*
2 * Copyright (C) 2012 Altera Corporation <www.altera.com>
3 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02004 * SPDX-License-Identifier: GPL-2.0+
Dinh Nguyenad51f7c2012-10-04 06:46:02 +00005 */
6
7#ifndef _RESET_MANAGER_H_
8#define _RESET_MANAGER_H_
9
10void reset_cpu(ulong addr);
11void reset_deassert_peripherals_handoff(void);
12
Marek Vasut8d8c6482014-09-08 14:08:45 +020013void socfpga_bridges_reset(int enable);
14
Marek Vasutc38c8692014-09-08 14:08:45 +020015void socfpga_emac_reset(int enable);
Pavel Machek56a00ab2014-09-09 14:03:28 +020016void socfpga_watchdog_reset(void);
17
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000018struct socfpga_reset_manager {
Chin Liang See1922dad2013-08-07 10:08:03 -050019 u32 status;
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000020 u32 ctrl;
Chin Liang See1922dad2013-08-07 10:08:03 -050021 u32 counts;
22 u32 padding1;
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000023 u32 mpu_mod_reset;
24 u32 per_mod_reset;
25 u32 per2_mod_reset;
26 u32 brg_mod_reset;
27};
28
Chin Liang See1922dad2013-08-07 10:08:03 -050029#if defined(CONFIG_SOCFPGA_VIRTUAL_TARGET)
30#define RSTMGR_CTRL_SWWARMRSTREQ_LSB 2
31#else
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000032#define RSTMGR_CTRL_SWWARMRSTREQ_LSB 1
Chin Liang See1922dad2013-08-07 10:08:03 -050033#endif
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000034
Marek Vasutc38c8692014-09-08 14:08:45 +020035#define RSTMGR_PERMODRST_EMAC0_LSB 0
36#define RSTMGR_PERMODRST_EMAC1_LSB 1
Pavel Machek56a00ab2014-09-09 14:03:28 +020037#define RSTMGR_PERMODRST_L4WD0_LSB 6
38
Dinh Nguyenad51f7c2012-10-04 06:46:02 +000039#endif /* _RESET_MANAGER_H_ */