1*cd357ad1SPeng Fan /* SPDX-License-Identifier: GPL-2.0+ */
2*cd357ad1SPeng Fan /*
3*cd357ad1SPeng Fan  * Copyright 2017 NXP
4*cd357ad1SPeng Fan  */
5*cd357ad1SPeng Fan 
6*cd357ad1SPeng Fan #ifndef __ASM_ARCH_IMX8M_REGS_H__
7*cd357ad1SPeng Fan #define __ASM_ARCH_IMX8M_REGS_H__
8*cd357ad1SPeng Fan 
9*cd357ad1SPeng Fan #include <asm/mach-imx/regs-lcdif.h>
10*cd357ad1SPeng Fan 
11*cd357ad1SPeng Fan #define ROM_VERSION_A0		0x800
12*cd357ad1SPeng Fan #define ROM_VERSION_B0		0x83C
13*cd357ad1SPeng Fan 
14*cd357ad1SPeng Fan #define M4_BOOTROM_BASE_ADDR	0x007E0000
15*cd357ad1SPeng Fan 
16*cd357ad1SPeng Fan #define SAI1_BASE_ADDR		0x30010000
17*cd357ad1SPeng Fan #define SAI6_BASE_ADDR		0x30030000
18*cd357ad1SPeng Fan #define SAI5_BASE_ADDR		0x30040000
19*cd357ad1SPeng Fan #define SAI4_BASE_ADDR		0x30050000
20*cd357ad1SPeng Fan #define SPBA2_BASE_ADDR		0x300F0000
21*cd357ad1SPeng Fan #define AIPS1_BASE_ADDR		0x301F0000
22*cd357ad1SPeng Fan #define GPIO1_BASE_ADDR		0X30200000
23*cd357ad1SPeng Fan #define GPIO2_BASE_ADDR		0x30210000
24*cd357ad1SPeng Fan #define GPIO3_BASE_ADDR		0x30220000
25*cd357ad1SPeng Fan #define GPIO4_BASE_ADDR		0x30230000
26*cd357ad1SPeng Fan #define GPIO5_BASE_ADDR		0x30240000
27*cd357ad1SPeng Fan #define ANA_TSENSOR_BASE_ADDR	0x30260000
28*cd357ad1SPeng Fan #define ANA_OSC_BASE_ADDR	0x30270000
29*cd357ad1SPeng Fan #define WDOG1_BASE_ADDR		0x30280000
30*cd357ad1SPeng Fan #define WDOG2_BASE_ADDR		0x30290000
31*cd357ad1SPeng Fan #define WDOG3_BASE_ADDR		0x302A0000
32*cd357ad1SPeng Fan #define SDMA2_BASE_ADDR		0x302C0000
33*cd357ad1SPeng Fan #define GPT1_BASE_ADDR		0x302D0000
34*cd357ad1SPeng Fan #define GPT2_BASE_ADDR		0x302E0000
35*cd357ad1SPeng Fan #define GPT3_BASE_ADDR		0x302F0000
36*cd357ad1SPeng Fan #define ROMCP_BASE_ADDR		0x30310000
37*cd357ad1SPeng Fan #define LCDIF_BASE_ADDR		0x30320000
38*cd357ad1SPeng Fan #define IOMUXC_BASE_ADDR	0x30330000
39*cd357ad1SPeng Fan #define IOMUXC_GPR_BASE_ADDR	0x30340000
40*cd357ad1SPeng Fan #define OCOTP_BASE_ADDR		0x30350000
41*cd357ad1SPeng Fan #define ANATOP_BASE_ADDR	0x30360000
42*cd357ad1SPeng Fan #define SNVS_HP_BASE_ADDR	0x30370000
43*cd357ad1SPeng Fan #define CCM_BASE_ADDR		0x30380000
44*cd357ad1SPeng Fan #define SRC_BASE_ADDR		0x30390000
45*cd357ad1SPeng Fan #define GPC_BASE_ADDR		0x303A0000
46*cd357ad1SPeng Fan #define SEMAPHORE1_BASE_ADDR	0x303B0000
47*cd357ad1SPeng Fan #define SEMAPHORE2_BASE_ADDR	0x303C0000
48*cd357ad1SPeng Fan #define RDC_BASE_ADDR		0x303D0000
49*cd357ad1SPeng Fan #define CSU_BASE_ADDR		0x303E0000
50*cd357ad1SPeng Fan 
51*cd357ad1SPeng Fan #define AIPS2_BASE_ADDR		0x305F0000
52*cd357ad1SPeng Fan #define PWM1_BASE_ADDR		0x30660000
53*cd357ad1SPeng Fan #define PWM2_BASE_ADDR		0x30670000
54*cd357ad1SPeng Fan #define PWM3_BASE_ADDR		0x30680000
55*cd357ad1SPeng Fan #define PWM4_BASE_ADDR		0x30690000
56*cd357ad1SPeng Fan #define SYSCNT_RD_BASE_ADDR	0x306A0000
57*cd357ad1SPeng Fan #define SYSCNT_CMP_BASE_ADDR	0x306B0000
58*cd357ad1SPeng Fan #define SYSCNT_CTRL_BASE_ADDR	0x306C0000
59*cd357ad1SPeng Fan #define GPT6_BASE_ADDR		0x306E0000
60*cd357ad1SPeng Fan #define GPT5_BASE_ADDR		0x306F0000
61*cd357ad1SPeng Fan #define GPT4_BASE_ADDR		0x30700000
62*cd357ad1SPeng Fan #define PERFMON1_BASE_ADDR	0x307C0000
63*cd357ad1SPeng Fan #define PERFMON2_BASE_ADDR	0x307D0000
64*cd357ad1SPeng Fan #define QOSC_BASE_ADDR		0x307F0000
65*cd357ad1SPeng Fan 
66*cd357ad1SPeng Fan #define SPDIF1_BASE_ADDR	0x30810000
67*cd357ad1SPeng Fan #define ECSPI1_BASE_ADDR	0x30820000
68*cd357ad1SPeng Fan #define ECSPI2_BASE_ADDR	0x30830000
69*cd357ad1SPeng Fan #define ECSPI3_BASE_ADDR	0x30840000
70*cd357ad1SPeng Fan #define UART1_BASE_ADDR		0x30860000
71*cd357ad1SPeng Fan #define UART3_BASE_ADDR		0x30880000
72*cd357ad1SPeng Fan #define UART2_BASE_ADDR		0x30890000
73*cd357ad1SPeng Fan #define SPDIF2_BASE_ADDR	0x308A0000
74*cd357ad1SPeng Fan #define SAI2_BASE_ADDR		0x308B0000
75*cd357ad1SPeng Fan #define SAI3_BASE_ADDR		0x308C0000
76*cd357ad1SPeng Fan #define SPBA1_BASE_ADDR		0x308F0000
77*cd357ad1SPeng Fan #define CAAM_BASE_ADDR		0x30900000
78*cd357ad1SPeng Fan #define AIPS3_BASE_ADDR		0x309F0000
79*cd357ad1SPeng Fan #define MIPI_PHY_BASE_ADDR	0x30A00000
80*cd357ad1SPeng Fan #define MIPI_DSI_BASE_ADDR	0x30A10000
81*cd357ad1SPeng Fan #define I2C1_BASE_ADDR		0x30A20000
82*cd357ad1SPeng Fan #define I2C2_BASE_ADDR		0x30A30000
83*cd357ad1SPeng Fan #define I2C3_BASE_ADDR		0x30A40000
84*cd357ad1SPeng Fan #define I2C4_BASE_ADDR		0x30A50000
85*cd357ad1SPeng Fan #define UART4_BASE_ADDR		0x30A60000
86*cd357ad1SPeng Fan #define MIPI_CSI_BASE_ADDR	0x30A70000
87*cd357ad1SPeng Fan #define MIPI_CSI_PHY1_BASE_ADDR	0x30A80000
88*cd357ad1SPeng Fan #define CSI1_BASE_ADDR		0x30A90000
89*cd357ad1SPeng Fan #define MU_A_BASE_ADDR		0x30AA0000
90*cd357ad1SPeng Fan #define MU_B_BASE_ADDR		0x30AB0000
91*cd357ad1SPeng Fan #define SEMAPHOR_HS_BASE_ADDR	0x30AC0000
92*cd357ad1SPeng Fan #define USDHC1_BASE_ADDR	0x30B40000
93*cd357ad1SPeng Fan #define USDHC2_BASE_ADDR	0x30B50000
94*cd357ad1SPeng Fan #define MIPI_CS2_BASE_ADDR	0x30B60000
95*cd357ad1SPeng Fan #define MIPI_CSI_PHY2_BASE_ADDR	0x30B70000
96*cd357ad1SPeng Fan #define CSI2_BASE_ADDR		0x30B80000
97*cd357ad1SPeng Fan #define QSPI0_BASE_ADDR		0x30BB0000
98*cd357ad1SPeng Fan #define QSPI0_AMBA_BASE		0x08000000
99*cd357ad1SPeng Fan #define SDMA1_BASE_ADDR		0x30BD0000
100*cd357ad1SPeng Fan #define ENET1_BASE_ADDR		0x30BE0000
101*cd357ad1SPeng Fan 
102*cd357ad1SPeng Fan #define HDMI_CTRL_BASE_ADDR	0x32C00000
103*cd357ad1SPeng Fan #define AIPS4_BASE_ADDR		0x32DF0000
104*cd357ad1SPeng Fan #define DC1_BASE_ADDR		0x32E00000
105*cd357ad1SPeng Fan #define DC2_BASE_ADDR		0x32E10000
106*cd357ad1SPeng Fan #define DC3_BASE_ADDR		0x32E20000
107*cd357ad1SPeng Fan #define HDMI_SEC_BASE_ADDR	0x32E40000
108*cd357ad1SPeng Fan #define TZASC_BASE_ADDR		0x32F80000
109*cd357ad1SPeng Fan #define MTR_BASE_ADDR		0x32FB0000
110*cd357ad1SPeng Fan #define PLATFORM_CTRL_BASE_ADDR	0x32FE0000
111*cd357ad1SPeng Fan 
112*cd357ad1SPeng Fan #define MXS_APBH_BASE		0x33000000
113*cd357ad1SPeng Fan #define MXS_GPMI_BASE		0x33002000
114*cd357ad1SPeng Fan #define MXS_BCH_BASE		0x33004000
115*cd357ad1SPeng Fan 
116*cd357ad1SPeng Fan #define USB1_BASE_ADDR		0x38100000
117*cd357ad1SPeng Fan #define USB2_BASE_ADDR		0x38200000
118*cd357ad1SPeng Fan #define USB1_PHY_BASE_ADDR	0x381F0000
119*cd357ad1SPeng Fan #define USB2_PHY_BASE_ADDR	0x382F0000
120*cd357ad1SPeng Fan 
121*cd357ad1SPeng Fan #define MXS_LCDIF_BASE		LCDIF_BASE_ADDR
122*cd357ad1SPeng Fan 
123*cd357ad1SPeng Fan #define SRC_IPS_BASE_ADDR	0x30390000
124*cd357ad1SPeng Fan #define SRC_DDRC_RCR_ADDR	0x30391000
125*cd357ad1SPeng Fan #define SRC_DDRC2_RCR_ADDR	0x30391004
126*cd357ad1SPeng Fan 
127*cd357ad1SPeng Fan #define DDRC_DDR_SS_GPR0	0x3d000000
128*cd357ad1SPeng Fan #define DDRC_IPS_BASE_ADDR(X)	(0x3d400000 + ((X) * 0x2000000))
129*cd357ad1SPeng Fan #define DDR_CSD1_BASE_ADDR	0x40000000
130*cd357ad1SPeng Fan 
131*cd357ad1SPeng Fan #if !defined(__ASSEMBLY__)
132*cd357ad1SPeng Fan #include <asm/types.h>
133*cd357ad1SPeng Fan #include <linux/bitops.h>
134*cd357ad1SPeng Fan #include <stdbool.h>
135*cd357ad1SPeng Fan 
136*cd357ad1SPeng Fan #define GPR_TZASC_EN		BIT(0)
137*cd357ad1SPeng Fan #define GPR_TZASC_EN_LOCK	BIT(16)
138*cd357ad1SPeng Fan 
139*cd357ad1SPeng Fan #define SRC_SCR_M4_ENABLE_OFFSET	3
140*cd357ad1SPeng Fan #define SRC_SCR_M4_ENABLE_MASK		BIT(3)
141*cd357ad1SPeng Fan #define SRC_SCR_M4C_NON_SCLR_RST_OFFSET	0
142*cd357ad1SPeng Fan #define SRC_SCR_M4C_NON_SCLR_RST_MASK	BIT(0)
143*cd357ad1SPeng Fan #define SRC_DDR1_ENABLE_MASK		0x8F000000UL
144*cd357ad1SPeng Fan #define SRC_DDR2_ENABLE_MASK		0x8F000000UL
145*cd357ad1SPeng Fan #define SRC_DDR1_RCR_PHY_PWROKIN_N_MASK	BIT(3)
146*cd357ad1SPeng Fan #define SRC_DDR1_RCR_PHY_RESET_MASK	BIT(2)
147*cd357ad1SPeng Fan #define SRC_DDR1_RCR_CORE_RESET_N_MASK	BIT(1)
148*cd357ad1SPeng Fan #define SRC_DDR1_RCR_PRESET_N_MASK	BIT(0)
149*cd357ad1SPeng Fan 
150*cd357ad1SPeng Fan struct iomuxc_gpr_base_regs {
151*cd357ad1SPeng Fan 	u32 gpr[47];
152*cd357ad1SPeng Fan };
153*cd357ad1SPeng Fan 
154*cd357ad1SPeng Fan struct ocotp_regs {
155*cd357ad1SPeng Fan 	u32	ctrl;
156*cd357ad1SPeng Fan 	u32	ctrl_set;
157*cd357ad1SPeng Fan 	u32     ctrl_clr;
158*cd357ad1SPeng Fan 	u32	ctrl_tog;
159*cd357ad1SPeng Fan 	u32	timing;
160*cd357ad1SPeng Fan 	u32     rsvd0[3];
161*cd357ad1SPeng Fan 	u32     data;
162*cd357ad1SPeng Fan 	u32     rsvd1[3];
163*cd357ad1SPeng Fan 	u32     read_ctrl;
164*cd357ad1SPeng Fan 	u32     rsvd2[3];
165*cd357ad1SPeng Fan 	u32	read_fuse_data;
166*cd357ad1SPeng Fan 	u32     rsvd3[3];
167*cd357ad1SPeng Fan 	u32	sw_sticky;
168*cd357ad1SPeng Fan 	u32     rsvd4[3];
169*cd357ad1SPeng Fan 	u32     scs;
170*cd357ad1SPeng Fan 	u32     scs_set;
171*cd357ad1SPeng Fan 	u32     scs_clr;
172*cd357ad1SPeng Fan 	u32     scs_tog;
173*cd357ad1SPeng Fan 	u32     crc_addr;
174*cd357ad1SPeng Fan 	u32     rsvd5[3];
175*cd357ad1SPeng Fan 	u32     crc_value;
176*cd357ad1SPeng Fan 	u32     rsvd6[3];
177*cd357ad1SPeng Fan 	u32     version;
178*cd357ad1SPeng Fan 	u32     rsvd7[0xdb];
179*cd357ad1SPeng Fan 
180*cd357ad1SPeng Fan 	/* fuse banks */
181*cd357ad1SPeng Fan 	struct fuse_bank {
182*cd357ad1SPeng Fan 		u32	fuse_regs[0x10];
183*cd357ad1SPeng Fan 	} bank[0];
184*cd357ad1SPeng Fan };
185*cd357ad1SPeng Fan 
186*cd357ad1SPeng Fan struct fuse_bank0_regs {
187*cd357ad1SPeng Fan 	u32 lock;
188*cd357ad1SPeng Fan 	u32 rsvd0[3];
189*cd357ad1SPeng Fan 	u32 uid_low;
190*cd357ad1SPeng Fan 	u32 rsvd1[3];
191*cd357ad1SPeng Fan 	u32 uid_high;
192*cd357ad1SPeng Fan 	u32 rsvd2[7];
193*cd357ad1SPeng Fan };
194*cd357ad1SPeng Fan 
195*cd357ad1SPeng Fan struct fuse_bank1_regs {
196*cd357ad1SPeng Fan 	u32 tester3;
197*cd357ad1SPeng Fan 	u32 rsvd0[3];
198*cd357ad1SPeng Fan 	u32 tester4;
199*cd357ad1SPeng Fan 	u32 rsvd1[3];
200*cd357ad1SPeng Fan 	u32 tester5;
201*cd357ad1SPeng Fan 	u32 rsvd2[3];
202*cd357ad1SPeng Fan 	u32 cfg0;
203*cd357ad1SPeng Fan 	u32 rsvd3[3];
204*cd357ad1SPeng Fan };
205*cd357ad1SPeng Fan 
206*cd357ad1SPeng Fan struct anamix_pll {
207*cd357ad1SPeng Fan 	u32 audio_pll1_cfg0;
208*cd357ad1SPeng Fan 	u32 audio_pll1_cfg1;
209*cd357ad1SPeng Fan 	u32 audio_pll2_cfg0;
210*cd357ad1SPeng Fan 	u32 audio_pll2_cfg1;
211*cd357ad1SPeng Fan 	u32 video_pll_cfg0;
212*cd357ad1SPeng Fan 	u32 video_pll_cfg1;
213*cd357ad1SPeng Fan 	u32 gpu_pll_cfg0;
214*cd357ad1SPeng Fan 	u32 gpu_pll_cfg1;
215*cd357ad1SPeng Fan 	u32 vpu_pll_cfg0;
216*cd357ad1SPeng Fan 	u32 vpu_pll_cfg1;
217*cd357ad1SPeng Fan 	u32 arm_pll_cfg0;
218*cd357ad1SPeng Fan 	u32 arm_pll_cfg1;
219*cd357ad1SPeng Fan 	u32 sys_pll1_cfg0;
220*cd357ad1SPeng Fan 	u32 sys_pll1_cfg1;
221*cd357ad1SPeng Fan 	u32 sys_pll1_cfg2;
222*cd357ad1SPeng Fan 	u32 sys_pll2_cfg0;
223*cd357ad1SPeng Fan 	u32 sys_pll2_cfg1;
224*cd357ad1SPeng Fan 	u32 sys_pll2_cfg2;
225*cd357ad1SPeng Fan 	u32 sys_pll3_cfg0;
226*cd357ad1SPeng Fan 	u32 sys_pll3_cfg1;
227*cd357ad1SPeng Fan 	u32 sys_pll3_cfg2;
228*cd357ad1SPeng Fan 	u32 video_pll2_cfg0;
229*cd357ad1SPeng Fan 	u32 video_pll2_cfg1;
230*cd357ad1SPeng Fan 	u32 video_pll2_cfg2;
231*cd357ad1SPeng Fan 	u32 dram_pll_cfg0;
232*cd357ad1SPeng Fan 	u32 dram_pll_cfg1;
233*cd357ad1SPeng Fan 	u32 dram_pll_cfg2;
234*cd357ad1SPeng Fan 	u32 digprog;
235*cd357ad1SPeng Fan 	u32 osc_misc_cfg;
236*cd357ad1SPeng Fan 	u32 pllout_monitor_cfg;
237*cd357ad1SPeng Fan 	u32 frac_pllout_div_cfg;
238*cd357ad1SPeng Fan 	u32 sscg_pllout_div_cfg;
239*cd357ad1SPeng Fan };
240*cd357ad1SPeng Fan 
241*cd357ad1SPeng Fan struct fuse_bank9_regs {
242*cd357ad1SPeng Fan 	u32 mac_addr0;
243*cd357ad1SPeng Fan 	u32 rsvd0[3];
244*cd357ad1SPeng Fan 	u32 mac_addr1;
245*cd357ad1SPeng Fan 	u32 rsvd1[11];
246*cd357ad1SPeng Fan };
247*cd357ad1SPeng Fan 
248*cd357ad1SPeng Fan /* System Reset Controller (SRC) */
249*cd357ad1SPeng Fan struct src {
250*cd357ad1SPeng Fan 	u32 scr;
251*cd357ad1SPeng Fan 	u32 a53rcr;
252*cd357ad1SPeng Fan 	u32 a53rcr1;
253*cd357ad1SPeng Fan 	u32 m4rcr;
254*cd357ad1SPeng Fan 	u32 reserved1[4];
255*cd357ad1SPeng Fan 	u32 usbophy1_rcr;
256*cd357ad1SPeng Fan 	u32 usbophy2_rcr;
257*cd357ad1SPeng Fan 	u32 mipiphy_rcr;
258*cd357ad1SPeng Fan 	u32 pciephy_rcr;
259*cd357ad1SPeng Fan 	u32 hdmi_rcr;
260*cd357ad1SPeng Fan 	u32 disp_rcr;
261*cd357ad1SPeng Fan 	u32 reserved2[2];
262*cd357ad1SPeng Fan 	u32 gpu_rcr;
263*cd357ad1SPeng Fan 	u32 vpu_rcr;
264*cd357ad1SPeng Fan 	u32 pcie2_rcr;
265*cd357ad1SPeng Fan 	u32 mipiphy1_rcr;
266*cd357ad1SPeng Fan 	u32 mipiphy2_rcr;
267*cd357ad1SPeng Fan 	u32 reserved3;
268*cd357ad1SPeng Fan 	u32 sbmr1;
269*cd357ad1SPeng Fan 	u32 srsr;
270*cd357ad1SPeng Fan 	u32 reserved4[2];
271*cd357ad1SPeng Fan 	u32 sisr;
272*cd357ad1SPeng Fan 	u32 simr;
273*cd357ad1SPeng Fan 	u32 sbmr2;
274*cd357ad1SPeng Fan 	u32 gpr1;
275*cd357ad1SPeng Fan 	u32 gpr2;
276*cd357ad1SPeng Fan 	u32 gpr3;
277*cd357ad1SPeng Fan 	u32 gpr4;
278*cd357ad1SPeng Fan 	u32 gpr5;
279*cd357ad1SPeng Fan 	u32 gpr6;
280*cd357ad1SPeng Fan 	u32 gpr7;
281*cd357ad1SPeng Fan 	u32 gpr8;
282*cd357ad1SPeng Fan 	u32 gpr9;
283*cd357ad1SPeng Fan 	u32 gpr10;
284*cd357ad1SPeng Fan 	u32 reserved5[985];
285*cd357ad1SPeng Fan 	u32 ddr1_rcr;
286*cd357ad1SPeng Fan 	u32 ddr2_rcr;
287*cd357ad1SPeng Fan };
288*cd357ad1SPeng Fan 
289*cd357ad1SPeng Fan struct gpc_reg {
290*cd357ad1SPeng Fan 	u32 lpcr_bsc;
291*cd357ad1SPeng Fan 	u32 lpcr_ad;
292*cd357ad1SPeng Fan 	u32 lpcr_cpu1;
293*cd357ad1SPeng Fan 	u32 lpcr_cpu2;
294*cd357ad1SPeng Fan 	u32 lpcr_cpu3;
295*cd357ad1SPeng Fan 	u32 slpcr;
296*cd357ad1SPeng Fan 	u32 mst_cpu_mapping;
297*cd357ad1SPeng Fan 	u32 mmdc_cpu_mapping;
298*cd357ad1SPeng Fan 	u32 mlpcr;
299*cd357ad1SPeng Fan 	u32 pgc_ack_sel;
300*cd357ad1SPeng Fan 	u32 pgc_ack_sel_m4;
301*cd357ad1SPeng Fan 	u32 gpc_misc;
302*cd357ad1SPeng Fan 	u32 imr1_core0;
303*cd357ad1SPeng Fan 	u32 imr2_core0;
304*cd357ad1SPeng Fan 	u32 imr3_core0;
305*cd357ad1SPeng Fan 	u32 imr4_core0;
306*cd357ad1SPeng Fan 	u32 imr1_core1;
307*cd357ad1SPeng Fan 	u32 imr2_core1;
308*cd357ad1SPeng Fan 	u32 imr3_core1;
309*cd357ad1SPeng Fan 	u32 imr4_core1;
310*cd357ad1SPeng Fan 	u32 imr1_cpu1;
311*cd357ad1SPeng Fan 	u32 imr2_cpu1;
312*cd357ad1SPeng Fan 	u32 imr3_cpu1;
313*cd357ad1SPeng Fan 	u32 imr4_cpu1;
314*cd357ad1SPeng Fan 	u32 imr1_cpu3;
315*cd357ad1SPeng Fan 	u32 imr2_cpu3;
316*cd357ad1SPeng Fan 	u32 imr3_cpu3;
317*cd357ad1SPeng Fan 	u32 imr4_cpu3;
318*cd357ad1SPeng Fan 	u32 isr1_cpu0;
319*cd357ad1SPeng Fan 	u32 isr2_cpu0;
320*cd357ad1SPeng Fan 	u32 isr3_cpu0;
321*cd357ad1SPeng Fan 	u32 isr4_cpu0;
322*cd357ad1SPeng Fan 	u32 isr1_cpu1;
323*cd357ad1SPeng Fan 	u32 isr2_cpu1;
324*cd357ad1SPeng Fan 	u32 isr3_cpu1;
325*cd357ad1SPeng Fan 	u32 isr4_cpu1;
326*cd357ad1SPeng Fan 	u32 isr1_cpu2;
327*cd357ad1SPeng Fan 	u32 isr2_cpu2;
328*cd357ad1SPeng Fan 	u32 isr3_cpu2;
329*cd357ad1SPeng Fan 	u32 isr4_cpu2;
330*cd357ad1SPeng Fan 	u32 isr1_cpu3;
331*cd357ad1SPeng Fan 	u32 isr2_cpu3;
332*cd357ad1SPeng Fan 	u32 isr3_cpu3;
333*cd357ad1SPeng Fan 	u32 isr4_cpu3;
334*cd357ad1SPeng Fan 	u32 slt0_cfg;
335*cd357ad1SPeng Fan 	u32 slt1_cfg;
336*cd357ad1SPeng Fan 	u32 slt2_cfg;
337*cd357ad1SPeng Fan 	u32 slt3_cfg;
338*cd357ad1SPeng Fan 	u32 slt4_cfg;
339*cd357ad1SPeng Fan 	u32 slt5_cfg;
340*cd357ad1SPeng Fan 	u32 slt6_cfg;
341*cd357ad1SPeng Fan 	u32 slt7_cfg;
342*cd357ad1SPeng Fan 	u32 slt8_cfg;
343*cd357ad1SPeng Fan 	u32 slt9_cfg;
344*cd357ad1SPeng Fan 	u32 slt10_cfg;
345*cd357ad1SPeng Fan 	u32 slt11_cfg;
346*cd357ad1SPeng Fan 	u32 slt12_cfg;
347*cd357ad1SPeng Fan 	u32 slt13_cfg;
348*cd357ad1SPeng Fan 	u32 slt14_cfg;
349*cd357ad1SPeng Fan 	u32 pgc_cpu_0_1_mapping;
350*cd357ad1SPeng Fan 	u32 cpu_pgc_up_trg;
351*cd357ad1SPeng Fan 	u32 mix_pgc_up_trg;
352*cd357ad1SPeng Fan 	u32 pu_pgc_up_trg;
353*cd357ad1SPeng Fan 	u32 cpu_pgc_dn_trg;
354*cd357ad1SPeng Fan 	u32 mix_pgc_dn_trg;
355*cd357ad1SPeng Fan 	u32 pu_pgc_dn_trg;
356*cd357ad1SPeng Fan 	u32 lpcr_bsc2;
357*cd357ad1SPeng Fan 	u32 pgc_cpu_2_3_mapping;
358*cd357ad1SPeng Fan 	u32 lps_cpu0;
359*cd357ad1SPeng Fan 	u32 lps_cpu1;
360*cd357ad1SPeng Fan 	u32 lps_cpu2;
361*cd357ad1SPeng Fan 	u32 lps_cpu3;
362*cd357ad1SPeng Fan 	u32 gpc_gpr;
363*cd357ad1SPeng Fan 	u32 gtor;
364*cd357ad1SPeng Fan 	u32 debug_addr1;
365*cd357ad1SPeng Fan 	u32 debug_addr2;
366*cd357ad1SPeng Fan 	u32 cpu_pgc_up_status1;
367*cd357ad1SPeng Fan 	u32 mix_pgc_up_status0;
368*cd357ad1SPeng Fan 	u32 mix_pgc_up_status1;
369*cd357ad1SPeng Fan 	u32 mix_pgc_up_status2;
370*cd357ad1SPeng Fan 	u32 m4_mix_pgc_up_status0;
371*cd357ad1SPeng Fan 	u32 m4_mix_pgc_up_status1;
372*cd357ad1SPeng Fan 	u32 m4_mix_pgc_up_status2;
373*cd357ad1SPeng Fan 	u32 pu_pgc_up_status0;
374*cd357ad1SPeng Fan 	u32 pu_pgc_up_status1;
375*cd357ad1SPeng Fan 	u32 pu_pgc_up_status2;
376*cd357ad1SPeng Fan 	u32 m4_pu_pgc_up_status0;
377*cd357ad1SPeng Fan 	u32 m4_pu_pgc_up_status1;
378*cd357ad1SPeng Fan 	u32 m4_pu_pgc_up_status2;
379*cd357ad1SPeng Fan 	u32 a53_lp_io_0;
380*cd357ad1SPeng Fan 	u32 a53_lp_io_1;
381*cd357ad1SPeng Fan 	u32 a53_lp_io_2;
382*cd357ad1SPeng Fan 	u32 cpu_pgc_dn_status1;
383*cd357ad1SPeng Fan 	u32 mix_pgc_dn_status0;
384*cd357ad1SPeng Fan 	u32 mix_pgc_dn_status1;
385*cd357ad1SPeng Fan 	u32 mix_pgc_dn_status2;
386*cd357ad1SPeng Fan 	u32 m4_mix_pgc_dn_status0;
387*cd357ad1SPeng Fan 	u32 m4_mix_pgc_dn_status1;
388*cd357ad1SPeng Fan 	u32 m4_mix_pgc_dn_status2;
389*cd357ad1SPeng Fan 	u32 pu_pgc_dn_status0;
390*cd357ad1SPeng Fan 	u32 pu_pgc_dn_status1;
391*cd357ad1SPeng Fan 	u32 pu_pgc_dn_status2;
392*cd357ad1SPeng Fan 	u32 m4_pu_pgc_dn_status0;
393*cd357ad1SPeng Fan 	u32 m4_pu_pgc_dn_status1;
394*cd357ad1SPeng Fan 	u32 m4_pu_pgc_dn_status2;
395*cd357ad1SPeng Fan 	u32 res[3];
396*cd357ad1SPeng Fan 	u32 mix_pdn_flg;
397*cd357ad1SPeng Fan 	u32 pu_pdn_flg;
398*cd357ad1SPeng Fan 	u32 m4_mix_pdn_flg;
399*cd357ad1SPeng Fan 	u32 m4_pu_pdn_flg;
400*cd357ad1SPeng Fan 	u32 imr1_core2;
401*cd357ad1SPeng Fan 	u32 imr2_core2;
402*cd357ad1SPeng Fan 	u32 imr3_core2;
403*cd357ad1SPeng Fan 	u32 imr4_core2;
404*cd357ad1SPeng Fan 	u32 imr1_core3;
405*cd357ad1SPeng Fan 	u32 imr2_core3;
406*cd357ad1SPeng Fan 	u32 imr3_core3;
407*cd357ad1SPeng Fan 	u32 imr4_core3;
408*cd357ad1SPeng Fan 	u32 pgc_ack_sel_pu;
409*cd357ad1SPeng Fan 	u32 pgc_ack_sel_m4_pu;
410*cd357ad1SPeng Fan 	u32 slt15_cfg;
411*cd357ad1SPeng Fan 	u32 slt16_cfg;
412*cd357ad1SPeng Fan 	u32 slt17_cfg;
413*cd357ad1SPeng Fan 	u32 slt18_cfg;
414*cd357ad1SPeng Fan 	u32 slt19_cfg;
415*cd357ad1SPeng Fan 	u32 gpc_pu_pwrhsk;
416*cd357ad1SPeng Fan 	u32 slt0_cfg_pu;
417*cd357ad1SPeng Fan 	u32 slt1_cfg_pu;
418*cd357ad1SPeng Fan 	u32 slt2_cfg_pu;
419*cd357ad1SPeng Fan 	u32 slt3_cfg_pu;
420*cd357ad1SPeng Fan 	u32 slt4_cfg_pu;
421*cd357ad1SPeng Fan 	u32 slt5_cfg_pu;
422*cd357ad1SPeng Fan 	u32 slt6_cfg_pu;
423*cd357ad1SPeng Fan 	u32 slt7_cfg_pu;
424*cd357ad1SPeng Fan 	u32 slt8_cfg_pu;
425*cd357ad1SPeng Fan 	u32 slt9_cfg_pu;
426*cd357ad1SPeng Fan 	u32 slt10_cfg_pu;
427*cd357ad1SPeng Fan 	u32 slt11_cfg_pu;
428*cd357ad1SPeng Fan 	u32 slt12_cfg_pu;
429*cd357ad1SPeng Fan 	u32 slt13_cfg_pu;
430*cd357ad1SPeng Fan 	u32 slt14_cfg_pu;
431*cd357ad1SPeng Fan 	u32 slt15_cfg_pu;
432*cd357ad1SPeng Fan 	u32 slt16_cfg_pu;
433*cd357ad1SPeng Fan 	u32 slt17_cfg_pu;
434*cd357ad1SPeng Fan 	u32 slt18_cfg_pu;
435*cd357ad1SPeng Fan 	u32 slt19_cfg_pu;
436*cd357ad1SPeng Fan };
437*cd357ad1SPeng Fan 
438*cd357ad1SPeng Fan #define WDOG_WDT_MASK	BIT(3)
439*cd357ad1SPeng Fan #define WDOG_WDZST_MASK	BIT(0)
440*cd357ad1SPeng Fan struct wdog_regs {
441*cd357ad1SPeng Fan 	u16	wcr;	/* Control */
442*cd357ad1SPeng Fan 	u16	wsr;	/* Service */
443*cd357ad1SPeng Fan 	u16	wrsr;	/* Reset Status */
444*cd357ad1SPeng Fan 	u16	wicr;	/* Interrupt Control */
445*cd357ad1SPeng Fan 	u16	wmcr;	/* Miscellaneous Control */
446*cd357ad1SPeng Fan };
447*cd357ad1SPeng Fan 
448*cd357ad1SPeng Fan struct bootrom_sw_info {
449*cd357ad1SPeng Fan 	u8 reserved_1;
450*cd357ad1SPeng Fan 	u8 boot_dev_instance;
451*cd357ad1SPeng Fan 	u8 boot_dev_type;
452*cd357ad1SPeng Fan 	u8 reserved_2;
453*cd357ad1SPeng Fan 	u32 core_freq;
454*cd357ad1SPeng Fan 	u32 axi_freq;
455*cd357ad1SPeng Fan 	u32 ddr_freq;
456*cd357ad1SPeng Fan 	u32 tick_freq;
457*cd357ad1SPeng Fan 	u32 reserved_3[3];
458*cd357ad1SPeng Fan };
459*cd357ad1SPeng Fan 
460*cd357ad1SPeng Fan #define ROM_SW_INFO_ADDR_B0	0x00000968
461*cd357ad1SPeng Fan #define ROM_SW_INFO_ADDR_A0	0x000009e8
462*cd357ad1SPeng Fan 
463*cd357ad1SPeng Fan #define ROM_SW_INFO_ADDR is_soc_rev(CHIP_REV_1_0) ? \
464*cd357ad1SPeng Fan 		(struct bootrom_sw_info **)ROM_SW_INFO_ADDR_A0 : \
465*cd357ad1SPeng Fan 		(struct bootrom_sw_info **)ROM_SW_INFO_ADDR_B0
466*cd357ad1SPeng Fan #endif
467*cd357ad1SPeng Fan #endif
468