xref: /rk3399_rockchip-uboot/arch/arm/mach-socfpga/include/mach/reset_manager_arria10.h (revision 19d1f1a2f3ccfbf85125150f7876ce22714b38bd)
1827e6a7eSLey Foon Tan /*
2827e6a7eSLey Foon Tan  * Copyright (C) 2016-2017 Intel Corporation
3827e6a7eSLey Foon Tan  *
4827e6a7eSLey Foon Tan  * SPDX-License-Identifier:	GPL-2.0
5827e6a7eSLey Foon Tan  */
6827e6a7eSLey Foon Tan 
7827e6a7eSLey Foon Tan #ifndef _RESET_MANAGER_ARRIA10_H_
8827e6a7eSLey Foon Tan #define _RESET_MANAGER_ARRIA10_H_
9827e6a7eSLey Foon Tan 
10827e6a7eSLey Foon Tan #include <dt-bindings/reset/altr,rst-mgr-a10.h>
11827e6a7eSLey Foon Tan 
12827e6a7eSLey Foon Tan void socfpga_watchdog_disable(void);
13827e6a7eSLey Foon Tan void socfpga_reset_deassert_noc_ddr_scheduler(void);
14827e6a7eSLey Foon Tan int socfpga_is_wdt_in_reset(void);
15827e6a7eSLey Foon Tan void socfpga_emac_manage_reset(ulong emacbase, u32 state);
16827e6a7eSLey Foon Tan int socfpga_reset_deassert_bridges_handoff(void);
17827e6a7eSLey Foon Tan void socfpga_reset_assert_fpga_connected_peripherals(void);
18827e6a7eSLey Foon Tan void socfpga_reset_deassert_osc1wd0(void);
19827e6a7eSLey Foon Tan void socfpga_reset_uart(int assert);
20*6a34af5bSTien Fong Chee int socfpga_bridges_reset(void);
21827e6a7eSLey Foon Tan 
22827e6a7eSLey Foon Tan struct socfpga_reset_manager {
23827e6a7eSLey Foon Tan 	u32	stat;
24827e6a7eSLey Foon Tan 	u32	ramstat;
25827e6a7eSLey Foon Tan 	u32	miscstat;
26827e6a7eSLey Foon Tan 	u32	ctrl;
27827e6a7eSLey Foon Tan 	u32	hdsken;
28827e6a7eSLey Foon Tan 	u32	hdskreq;
29827e6a7eSLey Foon Tan 	u32	hdskack;
30827e6a7eSLey Foon Tan 	u32	counts;
31827e6a7eSLey Foon Tan 	u32	mpumodrst;
32827e6a7eSLey Foon Tan 	u32	per0modrst;
33827e6a7eSLey Foon Tan 	u32	per1modrst;
34827e6a7eSLey Foon Tan 	u32	brgmodrst;
35827e6a7eSLey Foon Tan 	u32	sysmodrst;
36827e6a7eSLey Foon Tan 	u32	coldmodrst;
37827e6a7eSLey Foon Tan 	u32	nrstmodrst;
38827e6a7eSLey Foon Tan 	u32	dbgmodrst;
39827e6a7eSLey Foon Tan 	u32	mpuwarmmask;
40827e6a7eSLey Foon Tan 	u32	per0warmmask;
41827e6a7eSLey Foon Tan 	u32	per1warmmask;
42827e6a7eSLey Foon Tan 	u32	brgwarmmask;
43827e6a7eSLey Foon Tan 	u32	syswarmmask;
44827e6a7eSLey Foon Tan 	u32	nrstwarmmask;
45827e6a7eSLey Foon Tan 	u32	l3warmmask;
46827e6a7eSLey Foon Tan 	u32	tststa;
47827e6a7eSLey Foon Tan 	u32	tstscratch;
48827e6a7eSLey Foon Tan 	u32	hdsktimeout;
49827e6a7eSLey Foon Tan 	u32	hmcintr;
50827e6a7eSLey Foon Tan 	u32	hmcintren;
51827e6a7eSLey Foon Tan 	u32	hmcintrens;
52827e6a7eSLey Foon Tan 	u32	hmcintrenr;
53827e6a7eSLey Foon Tan 	u32	hmcgpout;
54827e6a7eSLey Foon Tan 	u32	hmcgpin;
55827e6a7eSLey Foon Tan };
56827e6a7eSLey Foon Tan 
57827e6a7eSLey Foon Tan /*
58827e6a7eSLey Foon Tan  * SocFPGA Arria10 reset IDs, bank mapping is as follows:
59827e6a7eSLey Foon Tan  * 0 ... mpumodrst
60827e6a7eSLey Foon Tan  * 1 ... per0modrst
61827e6a7eSLey Foon Tan  * 2 ... per1modrst
62827e6a7eSLey Foon Tan  * 3 ... brgmodrst
63827e6a7eSLey Foon Tan  * 4 ... sysmodrst
64827e6a7eSLey Foon Tan  */
65827e6a7eSLey Foon Tan #define RSTMGR_EMAC0		RSTMGR_DEFINE(1, 0)
66827e6a7eSLey Foon Tan #define RSTMGR_EMAC1		RSTMGR_DEFINE(1, 1)
67827e6a7eSLey Foon Tan #define RSTMGR_EMAC2		RSTMGR_DEFINE(1, 2)
68827e6a7eSLey Foon Tan #define RSTMGR_NAND		RSTMGR_DEFINE(1, 5)
69827e6a7eSLey Foon Tan #define RSTMGR_QSPI		RSTMGR_DEFINE(1, 6)
70827e6a7eSLey Foon Tan #define RSTMGR_SDMMC		RSTMGR_DEFINE(1, 7)
71827e6a7eSLey Foon Tan #define RSTMGR_DMA		RSTMGR_DEFINE(1, 16)
72827e6a7eSLey Foon Tan #define RSTMGR_SPIM0		RSTMGR_DEFINE(1, 17)
73827e6a7eSLey Foon Tan #define RSTMGR_SPIM1		RSTMGR_DEFINE(1, 18)
74827e6a7eSLey Foon Tan #define RSTMGR_L4WD0		RSTMGR_DEFINE(2, 0)
75827e6a7eSLey Foon Tan #define RSTMGR_L4WD1		RSTMGR_DEFINE(2, 1)
76827e6a7eSLey Foon Tan #define RSTMGR_L4SYSTIMER0	RSTMGR_DEFINE(2, 2)
77827e6a7eSLey Foon Tan #define RSTMGR_L4SYSTIMER1	RSTMGR_DEFINE(2, 3)
78827e6a7eSLey Foon Tan #define RSTMGR_SPTIMER0		RSTMGR_DEFINE(2, 4)
79827e6a7eSLey Foon Tan #define RSTMGR_SPTIMER1		RSTMGR_DEFINE(2, 5)
80827e6a7eSLey Foon Tan #define RSTMGR_UART0		RSTMGR_DEFINE(2, 16)
81827e6a7eSLey Foon Tan #define RSTMGR_UART1		RSTMGR_DEFINE(2, 17)
82827e6a7eSLey Foon Tan #define RSTMGR_DDRSCH		RSTMGR_DEFINE(3, 6)
83827e6a7eSLey Foon Tan 
84827e6a7eSLey Foon Tan #define ALT_RSTMGR_CTL_SWWARMRSTREQ_SET_MSK	BIT(1)
85827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMAC0_SET_MSK	BIT(0)
86827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMAC1_SET_MSK	BIT(1)
87827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMAC2_SET_MSK	BIT(2)
88827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_USB0_SET_MSK	BIT(3)
89827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_USB1_SET_MSK	BIT(4)
90827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_NAND_SET_MSK	BIT(5)
91827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_QSPI_SET_MSK	BIT(6)
92827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SDMMC_SET_MSK	BIT(7)
93827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMACECC0_SET_MSK	BIT(8)
94827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMACECC1_SET_MSK	BIT(9)
95827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMACECC2_SET_MSK	BIT(10)
96827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_USBECC0_SET_MSK	BIT(11)
97827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_USBECC1_SET_MSK	BIT(12)
98827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_NANDECC_SET_MSK	BIT(13)
99827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_QSPIECC_SET_MSK	BIT(14)
100827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SDMMCECC_SET_MSK	BIT(15)
101827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMA_SET_MSK	BIT(16)
102827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SPIM0_SET_MSK	BIT(17)
103827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SPIM1_SET_MSK	BIT(18)
104827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SPIS0_SET_MSK	BIT(19)
105827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_SPIS1_SET_MSK	BIT(20)
106827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAECC_SET_MSK	BIT(21)
107827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_EMACPTP_SET_MSK	BIT(22)
108827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF0_SET_MSK	BIT(24)
109827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF1_SET_MSK	BIT(25)
110827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF2_SET_MSK	BIT(26)
111827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF3_SET_MSK	BIT(27)
112827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF4_SET_MSK	BIT(28)
113827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF5_SET_MSK	BIT(29)
114827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF6_SET_MSK	BIT(30)
115827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER0MODRST_DMAIF7_SET_MSK	BIT(31)
116827e6a7eSLey Foon Tan 
117827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_WD0_SET_MSK	BIT(0)
118827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_WD1_SET_MSK	BIT(1)
119827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_L4SYSTMR0_SET_MSK	BIT(2)
120827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_L4SYSTMR1_SET_MSK	BIT(3)
121827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_SPTMR0_SET_MSK	BIT(4)
122827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_SPTMR1_SET_MSK	BIT(5)
123827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_I2C0_SET_MSK	BIT(8)
124827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_I2C1_SET_MSK	BIT(9)
125827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_I2C2_SET_MSK	BIT(10)
126827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_I2C3_SET_MSK	BIT(11)
127827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_I2C4_SET_MSK	BIT(12)
128827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_UART0_SET_MSK	BIT(16)
129827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_UART1_SET_MSK	BIT(17)
130827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_GPIO0_SET_MSK	BIT(24)
131827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_GPIO1_SET_MSK	BIT(25)
132827e6a7eSLey Foon Tan #define ALT_RSTMGR_PER1MODRST_GPIO2_SET_MSK	BIT(26)
133827e6a7eSLey Foon Tan 
134827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_H2F_SET_MSK	BIT(0)
135827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_LWH2F_SET_MSK	BIT(1)
136827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_F2H_SET_MSK	BIT(2)
137827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_F2SSDRAM0_SET_MSK	BIT(3)
138827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_F2SSDRAM1_SET_MSK	BIT(4)
139827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_F2SSDRAM2_SET_MSK	BIT(5)
140827e6a7eSLey Foon Tan #define ALT_RSTMGR_BRGMODRST_DDRSCH_SET_MSK	BIT(6)
141827e6a7eSLey Foon Tan 
142827e6a7eSLey Foon Tan #define ALT_RSTMGR_HDSKEN_SDRSELFREFEN_SET_MSK	BIT(0)
143827e6a7eSLey Foon Tan #define ALT_RSTMGR_HDSKEN_FPGAMGRHSEN_SET_MSK	BIT(1)
144827e6a7eSLey Foon Tan #define ALT_RSTMGR_HDSKEN_FPGAHSEN_SET_MSK	BIT(2)
145827e6a7eSLey Foon Tan #define ALT_RSTMGR_HDSKEN_ETRSTALLEN_SET_MSK	BIT(3)
146827e6a7eSLey Foon Tan 
147827e6a7eSLey Foon Tan #endif /* _RESET_MANAGER_ARRIA10_H_ */
148