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