1 /* SPDX-License-Identifier: GPL-2.0+ */
6 #ifndef __ASM_ARCH_IMX8M_REGS_H__
7 #define __ASM_ARCH_IMX8M_REGS_H__
11 #include <asm/mach-imx/regs-lcdif.h>
13 #define ROM_VERSION_A0 0x800
14 #define ROM_VERSION_B0 0x83C
16 #define M4_BOOTROM_BASE_ADDR 0x007E0000
18 #define GPIO1_BASE_ADDR 0X30200000
19 #define GPIO2_BASE_ADDR 0x30210000
20 #define GPIO3_BASE_ADDR 0x30220000
21 #define GPIO4_BASE_ADDR 0x30230000
22 #define GPIO5_BASE_ADDR 0x30240000
23 #define WDOG1_BASE_ADDR 0x30280000
24 #define WDOG2_BASE_ADDR 0x30290000
25 #define WDOG3_BASE_ADDR 0x302A0000
26 #define LCDIF_BASE_ADDR 0x30320000
27 #define IOMUXC_BASE_ADDR 0x30330000
28 #define IOMUXC_GPR_BASE_ADDR 0x30340000
29 #define OCOTP_BASE_ADDR 0x30350000
30 #define ANATOP_BASE_ADDR 0x30360000
31 #define CCM_BASE_ADDR 0x30380000
32 #define SRC_BASE_ADDR 0x30390000
33 #define GPC_BASE_ADDR 0x303A0000
35 #define SYSCNT_RD_BASE_ADDR 0x306A0000
36 #define SYSCNT_CMP_BASE_ADDR 0x306B0000
37 #define SYSCNT_CTRL_BASE_ADDR 0x306C0000
39 #define UART1_BASE_ADDR 0x30860000
40 #define UART3_BASE_ADDR 0x30880000
41 #define UART2_BASE_ADDR 0x30890000
42 #define I2C1_BASE_ADDR 0x30A20000
43 #define I2C2_BASE_ADDR 0x30A30000
44 #define I2C3_BASE_ADDR 0x30A40000
45 #define I2C4_BASE_ADDR 0x30A50000
46 #define UART4_BASE_ADDR 0x30A60000
47 #define USDHC1_BASE_ADDR 0x30B40000
48 #define USDHC2_BASE_ADDR 0x30B50000
50 #define TZASC_BASE_ADDR 0x32F80000
52 #define MXS_LCDIF_BASE LCDIF_BASE_ADDR
54 #define SRC_IPS_BASE_ADDR 0x30390000
55 #define SRC_DDRC_RCR_ADDR 0x30391000
56 #define SRC_DDRC2_RCR_ADDR 0x30391004
58 #define DDRC_DDR_SS_GPR0 0x3d000000
59 #define DDRC_IPS_BASE_ADDR(X) (0x3d400000 + ((X) * 0x2000000))
60 #define DDR_CSD1_BASE_ADDR 0x40000000
62 #if !defined(__ASSEMBLY__)
63 #include <asm/types.h>
64 #include <linux/bitops.h>
67 #define GPR_TZASC_EN BIT(0)
68 #define GPR_TZASC_EN_LOCK BIT(16)
70 #define SRC_SCR_M4_ENABLE_OFFSET 3
71 #define SRC_SCR_M4_ENABLE_MASK BIT(3)
72 #define SRC_SCR_M4C_NON_SCLR_RST_OFFSET 0
73 #define SRC_SCR_M4C_NON_SCLR_RST_MASK BIT(0)
74 #define SRC_DDR1_ENABLE_MASK 0x8F000000UL
75 #define SRC_DDR2_ENABLE_MASK 0x8F000000UL
76 #define SRC_DDR1_RCR_PHY_PWROKIN_N_MASK BIT(3)
77 #define SRC_DDR1_RCR_PHY_RESET_MASK BIT(2)
78 #define SRC_DDR1_RCR_CORE_RESET_N_MASK BIT(1)
79 #define SRC_DDR1_RCR_PRESET_N_MASK BIT(0)
81 struct iomuxc_gpr_base_regs {
117 struct fuse_bank0_regs {
126 struct fuse_bank1_regs {
167 u32 pllout_monitor_cfg;
168 u32 frac_pllout_div_cfg;
169 u32 sscg_pllout_div_cfg;
172 struct fuse_bank9_regs {
179 /* System Reset Controller (SRC) */
220 #define WDOG_WDT_MASK BIT(3)
221 #define WDOG_WDZST_MASK BIT(0)
223 u16 wcr; /* Control */
224 u16 wsr; /* Service */
225 u16 wrsr; /* Reset Status */
226 u16 wicr; /* Interrupt Control */
227 u16 wmcr; /* Miscellaneous Control */
230 struct bootrom_sw_info {
232 u8 boot_dev_instance;
242 #define ROM_SW_INFO_ADDR_B0 0x00000968
243 #define ROM_SW_INFO_ADDR_A0 0x000009e8
245 #define ROM_SW_INFO_ADDR is_soc_rev(CHIP_REV_1_0) ? \
246 (struct bootrom_sw_info **)ROM_SW_INFO_ADDR_A0 : \
247 (struct bootrom_sw_info **)ROM_SW_INFO_ADDR_B0