blob: ebc2bb65b59dd0c34971b8d05280cb816b489915 [file] [log] [blame]
Sheetal Tigadoli13680c92019-12-13 10:39:06 +05301/*
2 * Copyright (c) 2019-2020, Broadcom
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef CRMU_DEF_H
8#define CRMU_DEF_H
9
10#define CRMU_REGS_BASE 0x66410000
11/* 32 kB IDRAM */
12#define CRMU_IDRAM_BASE_ADDR CRMU_REGS_BASE
13#define CRMU_IDRAM_SIZE 0x8000
14/* 4 kB Scratch RAM */
15#define CRMU_SRAM_BASE (CRMU_IDRAM_BASE_ADDR + CRMU_IDRAM_SIZE)
16#define CRMU_SRAM_SIZE 0x1000
17
18#define CRMU_RESERVED_SPACE 0x3000
19#define CRMU_CORE_BASE (CRMU_SRAM_BASE + CRMU_SRAM_SIZE + \
20 CRMU_RESERVED_SPACE)
21
22#define CRMU_SHARED_SRAM_BASE CRMU_SRAM_BASE
23#define CRMU_SHARED_SRAM_SIZE 0x200
24#define CRMU_CFG_BASE (CRMU_SHARED_SRAM_BASE + \
25 CRMU_SHARED_SRAM_SIZE)
26
27#define CRMU_PWR_GOOD_STATUS CRMU_CORE_BASE
28#define CRMU_PWR_GOOD_STATUS__BBL_POWER_GOOD 0
29#define CRMU_ISO_CELL_CONTROL (CRMU_CORE_BASE + 0x4)
30#define CRMU_ISO_CELL_CONTROL__CRMU_ISO_PDBBL 16
31#define CRMU_ISO_CELL_CONTROL__CRMU_ISO_PDBBL_TAMPER 24
32#define CRMU_SPRU_SOURCE_SEL_STAT (CRMU_CORE_BASE + 0xc)
33#define CRMU_SPRU_SOURCE_SEL_STAT__SPRU_SOURCE_SELECT 0
34#define BSTI_BASE (CRMU_CORE_BASE + 0x28)
35#define BSTI_CONTROL_OFFSET BSTI_BASE
36#define BSTI_COMMAND_OFFSET (BSTI_BASE + 0x4)
37
38#define OCOTP_REGS_BASE (CRMU_CORE_BASE + 0x400)
39
40#define CRMU_TCI_BASE (CRMU_CORE_BASE + 0x800)
41#define CRMU_SWREG_STATUS_ADDR (CRMU_TCI_BASE + 0x0c)
42#define CRMU_CHIP_OTPC_STATUS (CRMU_TCI_BASE + 0x10)
43#define CRMU_CHIP_OTPC_STATUS__OTP_BISR_LOAD_DONE 19
44#define CRMU_BISR_PDG_MASK (CRMU_TCI_BASE + 0x4c)
45#define CRMU_BISR_PDG_MASK__CRMU_BISR_IHOST0 2
46#define CRMU_BISR_PDG_MASK__CRMU_BISR_IHOST1 3
47#define CRMU_BISR_PDG_MASK__CRMU_BISR_IHOST2 4
48#define CRMU_BISR_PDG_MASK__CRMU_BISR_IHOST3 0
49#define CRMU_POWER_POLL (CRMU_TCI_BASE + 0x60)
50#define CRMU_OTP_STATUS CRMU_POWER_POLL
51#define CRMU_OTP_STATUS_BIT 1
52#define CRMU_DDR_PHY_AON_CTRL (CRMU_TCI_BASE + 0x64)
53#define CRMU_DDRPHY2_HW_RESETN_R BIT(21)
54#define CRMU_DDRPHY2_PWROKIN_PHY_R BIT(20)
55#define CRMU_DDRPHY2_PWRONIN_PHY_R BIT(19)
56#define CRMU_DDRPHY2_ISO_PHY_DFI_R BIT(18)
57#define CRMU_DDRPHY2_ISO_PHY_REGS_R BIT(17)
58#define CRMU_DDRPHY2_ISO_PHY_PLL_R BIT(16)
59#define CRMU_DDRPHY1_HW_RESETN_R BIT(13)
60#define CRMU_DDRPHY1_PWROKIN_PHY_R BIT(12)
61#define CRMU_DDRPHY1_PWRONIN_PHY_R BIT(11)
62#define CRMU_DDRPHY1_ISO_PHY_DFI_R BIT(10)
63#define CRMU_DDRPHY1_ISO_PHY_REGS_R BIT(9)
64#define CRMU_DDRPHY1_ISO_PHY_PLL_R BIT(8)
65#define CRMU_DDRPHY0_HW_RESETN_R BIT(5)
66#define CRMU_DDRPHY0_PWROKIN_PHY_R BIT(4)
67#define CRMU_DDRPHY0_PWRONIN_PHY_R BIT(3)
68#define CRMU_DDRPHY0_ISO_PHY_DFI_R BIT(2)
69#define CRMU_DDRPHY0_ISO_PHY_REGS_R BIT(1)
70#define CRMU_DDRPHY0_ISO_PHY_PLL_R BIT(0)
71#define CRMU_EMEM_RESET_N_R BIT(16)
72#define CRMU_EMEM_PRESET_N_R BIT(0)
73#define CRMU_SWREG_CTRL_ADDR (CRMU_TCI_BASE + 0x6c)
74#define CRMU_AON_CTRL1 (CRMU_TCI_BASE + 0x70)
75#define CRMU_AON_CTRL1__LCPLL1_ISO_IN 18
76#define CRMU_AON_CTRL1__LCPLL1_PWRON_LDO 19
77#define CRMU_AON_CTRL1__LCPLL1_PWR_ON 20
78#define CRMU_AON_CTRL1__LCPLL0_ISO_IN 21
79#define CRMU_AON_CTRL1__LCPLL0_PWRON_LDO 22
80#define CRMU_AON_CTRL1__LCPLL0_PWR_ON 23
81#define CRMU_PCIE_LCPLL_PWR_ON_SHIFT 29
82#define CRMU_PCIE_LCPLL_PWR_ON_MASK BIT(CRMU_PCIE_LCPLL_PWR_ON_SHIFT)
83#define CRMU_PCIE_LCPLL_PWRON_LDO_SHIFT 28
84#define CRMU_PCIE_LCPLL_PWRON_LDO_MASK BIT(CRMU_PCIE_LCPLL_PWRON_LDO_SHIFT)
85#define CRMU_PCIE_LCPLL_ISO_IN_SHIFT 27
86#define CRMU_PCIE_LCPLL_ISO_IN_MASK BIT(CRMU_PCIE_LCPLL_ISO_IN_SHIFT)
87#define CRMU_MASTER_AXI_ARUSER_CONFIG (CRMU_TCI_BASE + 0x74)
88#define CRMU_MASTER_AXI_AWUSER_CONFIG (CRMU_TCI_BASE + 0x78)
89#define CRMU_DDR_PHY_AON_CTRL_1 (CRMU_TCI_BASE + 0x8c)
90
91#define CDRU_BASE_ADDR (CRMU_CORE_BASE + 0x1000)
92#define CDRU_MISC_RESET_CONTROL CDRU_BASE_ADDR
93#define CDRU_MISC_RESET_CONTROL_TS_RESET_N 16
94#define CDRU_MISC_RESET_CONTROL__CDRU_USBSS_RESET_N 14
95#define CDRU_MISC_RESET_CONTROL__CDRU_SATA_RESET_N_R 15
96#define CDRU_MISC_RESET_CONTROL__CDRU_MHB_RESET_N_R 13
97#define CDRU_MISC_RESET_CONTROL__CDRU_PCIE_RESET_N_R 3
98#define CDRU_MISC_RESET_CONTROL__CDRU_PM_RESET_N_R 2
99#define CDRU_MISC_RESET_CONTROL__CDRU_NITRO_RESET_N_R 1
100
101#define CDRU_PROC_EVENT_CLEAR (CDRU_BASE_ADDR + 0x48)
102#define CDRU_PROC_EVENT_CLEAR__IH0_CDRU_STANDBYWFIL2 0
103#define CDRU_PROC_EVENT_CLEAR__IH0_CDRU_STANDBYWFI 3
104#define CDRU_PROC_EVENT_CLEAR__IH1_CDRU_STANDBYWFIL2 5
105#define CDRU_PROC_EVENT_CLEAR__IH1_CDRU_STANDBYWFI 8
106#define CDRU_PROC_EVENT_CLEAR__IH2_CDRU_STANDBYWFIL2 10
107#define CDRU_PROC_EVENT_CLEAR__IH2_CDRU_STANDBYWFI 13
108#define CDRU_PROC_EVENT_CLEAR__IH3_CDRU_STANDBYWFIL2 15
109#define CDRU_PROC_EVENT_CLEAR__IH3_CDRU_STANDBYWFI 18
110
111#define CDRU_CHIP_STRAP_CTRL (CDRU_BASE_ADDR + 0x50)
112#define CDRU_CHIP_STRAP_CTRL__SOFTWARE_OVERRIDE 31
113
114#define CDRU_CHIP_IO_PAD_CONTROL (CDRU_BASE_ADDR + 0x58)
115#define CDRU_CHIP_IO_PAD_CONTROL__CDRU_IOMUX_FORCE_PDN_R 8
116#define CDRU_CHIP_IO_PAD_CONTROL__CDRU_IOMUX_FORCE_PAD_IN_R 0
117
118#define CDRU_CHIP_STRAP_DATA_LSW (CDRU_BASE_ADDR + 0x5c)
119#define CDRU_CHIP_STRAP_DATA_LSW__BISR_BYPASS_MODE 18
120#define CDRU_CHIP_STRAP_DATA_LSW__NIC_MODE_MASK BIT(8)
121#define CDRU_CHIP_STRAP_DATA_LSW_PAD_USB_MODE BIT(26)
122
123#define CDRU_CHIP_STRAP_DATA (CDRU_BASE_ADDR + 0x5c)
124#define CDRU_DDR0_CONTROL_OFFSET (CDRU_BASE_ADDR + 0xb8)
125#define CDRU_DDR1_CONTROL_OFFSET (CDRU_BASE_ADDR + 0xbc)
126#define CDRU_DDR2_CONTROL_OFFSET (CDRU_BASE_ADDR + 0xc0)
127#define CRMU_SW_POR_RESET_CTRL (CDRU_BASE_ADDR + 0x100)
128
129#define CDRU_GENPLL2_CONTROL1 (CDRU_BASE_ADDR + 0x1b0)
130#define CDRU_GENPLL2_CONTROL1__CHNL6_FS4_CLK BIT(11)
131#define CDRU_GENPLL5_CONTROL1 (CDRU_BASE_ADDR + 0x24c)
132#define CDRU_GENPLL5_CONTROL1__CHNL0_DME_CLK BIT(6)
133#define CDRU_GENPLL5_CONTROL1__CHNL1_CRYPTO_AE_CLK BIT(7)
134#define CDRU_GENPLL5_CONTROL1__CHNL2_RAID_AE_CLK BIT(8)
135
136#define CDRU_NITRO_CONTROL (CDRU_BASE_ADDR + 0x2c4)
137#define CDRU_NITRO_CONTROL__CDRU_NITRO_SEC_MODE_R 20
138#define CDRU_NITRO_CONTROL__CDRU_NITRO_SEC_OVERRIDE_R 16
139
140#define CDRU_MISC_CLK_ENABLE_CONTROL (CDRU_BASE_ADDR + 0x2c8)
141#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_EMEM2_CLK_EN_R 11
142#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_EMEM1_CLK_EN_R 10
143#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_EMEM0_CLK_EN_R 9
144#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_SATA_CLK_EN_R 8
145#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_USBSS_CLK_EN_R 7
146#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_MHB_CLK_EN_R 6
147#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_HSLS_CLK_EN_R 5
148#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_SCR_CLK_EN_R 4
149#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_FS4_CLK_EN_R 3
150#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_PCIE_CLK_EN_R 2
151#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_PM_CLK_EN_R 1
152#define CDRU_MISC_CLK_ENABLE_CONTROL__CDRU_NITRO_CLK_EN_R 0
153
154#define CDRU_CCN_REGISTER_CONTROL_1 (CDRU_BASE_ADDR + 0x324)
155#define CDRU_CCN_REGISTER_CONTROL_1__D2XS_PD_EMEM0_BIT 6
156#define CDRU_CCN_REGISTER_CONTROL_1__D2XS_PD_EMEM1_BIT 5
157#define CDRU_CCN_REGISTER_CONTROL_1__D2XS_PD_EMEM2_BIT 4
158
159#define CDRU_CHIP_TOP_SPARE_REG0 (CDRU_BASE_ADDR + 0x378)
160#define CDRU_CHIP_TOP_SPARE_REG1 (CDRU_BASE_ADDR + 0x37c)
161
162#define CENTRAL_TIMER_BASE (CRMU_CORE_BASE + 0x5000)
163#define CENTRAL_TIMER_CTRL (CENTRAL_TIMER_BASE + 0x0)
164#define CENTRAL_TIMER_GET_L (CENTRAL_TIMER_BASE + 0x4)
165#define CENTRAL_TIMER_GET_L0 (CENTRAL_TIMER_BASE + 0x8) /* SCR STM */
166#define CENTRAL_TIMER_GET_L1 (CENTRAL_TIMER_BASE + 0xC) /* FS STM */
167#define CENTRAL_TIMER_GET_L2 (CENTRAL_TIMER_BASE + 0x10) /* iHost0 */
168#define CENTRAL_TIMER_GET_L3 (CENTRAL_TIMER_BASE + 0x14) /* iHost1 */
169#define CENTRAL_TIMER_GET_L4 (CENTRAL_TIMER_BASE + 0x18) /* iHost2 */
170#define CENTRAL_TIMER_GET_L5 (CENTRAL_TIMER_BASE + 0x1C) /* iHost3 */
171#define CENTRAL_TIMER_GET_H (CENTRAL_TIMER_BASE + 0x28)
172#define CENTRAL_TIMER_SAT_TMR_ENA (CENTRAL_TIMER_BASE + 0x34)
173#define CENTRAL_TIMER_GET_IHOST_ENA_BASE (CENTRAL_TIMER_GET_L2)
174
175#define CRMU_WDT_REGS_BASE (CRMU_CORE_BASE + 0x6000)
176
177#define CRMU_MAIL_BOX0 (CRMU_CORE_BASE + 0x8024)
178#define CRMU_MAIL_BOX1 (CRMU_CORE_BASE + 0x8028)
179#define CRMU_READ_MAIL_BOX0 (CRMU_CORE_BASE + 0x802c)
180#define CRMU_READ_MAIL_BOX1 (CRMU_CORE_BASE + 0x8030)
181#define AP_TO_SCP_MAILBOX1 CRMU_MAIL_BOX1
182#define SCP_TO_AP_MAILBOX1 CRMU_READ_MAIL_BOX1
183#define CRMU_IHOST_POWER_CONFIG (CRMU_CORE_BASE + 0x8038)
184#define CRMU_RESET_EVENT_LOG (CRMU_CORE_BASE + 0x8064)
185#define CRMU_SOFT_RESET_CTRL (CRMU_CORE_BASE + 0x8090)
186#define CRMU_SOFT_RESET_CTRL__SOFT_PWR_UP_RST 0
187#define CRMU_SOFT_RESET_CTRL__SOFT_SYS_RST 1
188#define CRMU_SPARE_REG_0 (CRMU_CORE_BASE + 0x80b8)
189#define CRMU_SPARE_REG_1 (CRMU_CORE_BASE + 0x80bc)
190#define CRMU_SPARE_REG_2 (CRMU_CORE_BASE + 0x80c0)
191#define CRMU_SPARE_REG_3 (CRMU_CORE_BASE + 0x80c4)
192#define CRMU_SPARE_REG_4 (CRMU_CORE_BASE + 0x80c8)
193#define CRMU_SPARE_REG_5 (CRMU_CORE_BASE + 0x80cc)
194#define CRMU_CORE_ADDR_RANGE0_LOW (CRMU_CORE_BASE + 0x8c30)
195#define CRMU_CORE_ADDR_RANGE1_LOW (CRMU_CORE_BASE + 0x8c38)
196#define CRMU_CORE_ADDR_RANGE2_LOW (CRMU_CORE_BASE + 0x8c40)
197#define CRMU_IHOST_SW_PERSISTENT_REG0 (CRMU_CORE_BASE + 0x8c54)
198#define CRMU_IHOST_SW_PERSISTENT_REG1 (CRMU_CORE_BASE + 0x8c58)
199#define CRMU_IHOST_SW_PERSISTENT_REG2 (CRMU_CORE_BASE + 0x8c5c)
200#define CRMU_IHOST_SW_PERSISTENT_REG3 (CRMU_CORE_BASE + 0x8c60)
201#define CRMU_IHOST_SW_PERSISTENT_REG4 (CRMU_CORE_BASE + 0x8c64)
202#define CRMU_IHOST_SW_PERSISTENT_REG5 (CRMU_CORE_BASE + 0x8c68)
203#define CRMU_IHOST_SW_PERSISTENT_REG6 (CRMU_CORE_BASE + 0x8c6c)
204#define CRMU_IHOST_SW_PERSISTENT_REG7 (CRMU_CORE_BASE + 0x8c70)
205#define CRMU_BBL_AUTH_CHECK (CRMU_CORE_BASE + 0x8c78)
206#define CRMU_SOTP_NEUTRALIZE_ENABLE (CRMU_CORE_BASE + 0x8c84)
207#define CRMU_IHOST_SW_PERSISTENT_REG8 (CRMU_CORE_BASE + 0x8c88)
208#define CRMU_IHOST_SW_PERSISTENT_REG9 (CRMU_CORE_BASE + 0x8c8c)
209#define CRMU_IHOST_SW_PERSISTENT_REG10 (CRMU_CORE_BASE + 0x8c90)
210#define CRMU_IHOST_SW_PERSISTENT_REG11 (CRMU_CORE_BASE + 0x8c94)
211
212#define CNT_CONTROL_BASE (CRMU_CORE_BASE + 0x9000)
213#define CNTCR (CNT_CONTROL_BASE)
214#define CNTCR__EN BIT(0)
215
216#define SPRU_BBL_WDATA (CRMU_CORE_BASE + 0xa000)
217#define SPRU_BBL_CMD (CRMU_CORE_BASE + 0xa004)
218#define SPRU_BBL_CMD__IND_SOFT_RST_N 10
219#define SPRU_BBL_CMD__IND_WR 11
220#define SPRU_BBL_CMD__BBL_ADDR_R 0
221#define SPRU_BBL_CMD__IND_RD 12
222#define SPRU_BBL_CMD__BBL_ADDR_R 0
223#define SPRU_BBL_STATUS (CRMU_CORE_BASE + 0xa008)
224#define SPRU_BBL_STATUS__ACC_DONE 0
225#define SPRU_BBL_RDATA (CRMU_CORE_BASE + 0xa00c)
226
227#endif /* CRMU_DEF_H */