1// Copyright 2017 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD_style license that can be
3// found in the LICENSE file.
4
5#pragma once
6
7// MMIO regions
8#define MMIO_CCI_CFG_BASE                       0xE8100000
9#define MMIO_CCI_CFG_LENGTH                     0x100000
10#define MMIO_GIC400_BASE                        0xE82B0000
11#define MMIO_GIC400_LENGTH                      0x8000
12#define MMIO_HKADC_SSI_BASE                     0xE82B8000
13#define MMIO_HKADC_SSI_LENGTH                   0x1000
14#define MMIO_CODEC_SSI_BASE                     0xE82B9000
15#define MMIO_CODEC_SSI_LENGTH                   0x1000
16#define MMIO_G3D_BASE                           0xE82C0000
17#define MMIO_G3D_LENGTH                         0x4000
18#define MMIO_DSI_BASE                           0xE8601000
19#define MMIO_DSI_LENGTH                         0x7F000
20#define MMIO_IPC_BASE                           0xE896A000
21#define MMIO_IPC_LENGTH                         0x1000
22#define MMIO_IPC_NS_BASE                        0xE896B000
23#define MMIO_IPC_NS_LENGTH                      0x1000
24#define MMIO_IOC_BASE                           0xE896C000
25#define MMIO_IOC_LENGTH                         0x1000
26#define MMIO_TIMER9_BASE                        0xE8A00000
27#define MMIO_TIMER9_LENGTH                      0x1000
28#define MMIO_TIMER10_BASE                       0xE8A01000
29#define MMIO_TIMER10_LENGTH                     0x1000
30#define MMIO_TIMER11_BASE                       0xE8A02000
31#define MMIO_TIMER11_LENGTH                     0x1000
32#define MMIO_TIMER12_BASE                       0xE8A03000
33#define MMIO_TIMER12_LENGTH                     0x1000
34#define MMIO_PWM_BASE                           0xE8A04000
35#define MMIO_PWM_LENGTH                         0x1000
36#define MMIO_WD0_BASE                           0xE8A06000
37#define MMIO_WD0_LENGTH                         0x1000
38#define MMIO_WD1_BASE                           0xE8A07000
39#define MMIO_WD1_LENGTH                         0x1000
40#define MMIO_PCTRL_BASE                         0xE8A09000
41#define MMIO_PCTRL_LENGTH                       0x1000
42#define MMIO_GPIO0_SE_BASE                      0xE8A0A000
43#define MMIO_GPIO0_SE_LENGTH                    0x1000
44#define MMIO_GPIO0_BASE                         0xE8A0B000
45#define MMIO_GPIO0_LENGTH                       0x1000
46#define MMIO_GPIO1_BASE                         0xE8A0C000
47#define MMIO_GPIO1_LENGTH                       0x1000
48#define MMIO_GPIO2_BASE                         0xE8A0D000
49#define MMIO_GPIO2_LENGTH                       0x1000
50#define MMIO_GPIO3_BASE                         0xE8A0E000
51#define MMIO_GPIO3_LENGTH                       0x1000
52#define MMIO_GPIO4_BASE                         0xE8A0F000
53#define MMIO_GPIO4_LENGTH                       0x1000
54#define MMIO_GPIO5_BASE                         0xE8A10000
55#define MMIO_GPIO5_LENGTH                       0x1000
56#define MMIO_GPIO6_BASE                         0xE8A11000
57#define MMIO_GPIO6_LENGTH                       0x1000
58#define MMIO_GPIO7_BASE                         0xE8A12000
59#define MMIO_GPIO7_LENGTH                       0x1000
60#define MMIO_GPIO8_BASE                         0xE8A13000
61#define MMIO_GPIO8_LENGTH                       0x1000
62#define MMIO_GPIO9_BASE                         0xE8A14000
63#define MMIO_GPIO9_LENGTH                       0x1000
64#define MMIO_GPIO10_BASE                        0xE8A15000
65#define MMIO_GPIO10_LENGTH                      0x1000
66#define MMIO_GPIO11_BASE                        0xE8A16000
67#define MMIO_GPIO11_LENGTH                      0x1000
68#define MMIO_GPIO12_BASE                        0xE8A17000
69#define MMIO_GPIO12_LENGTH                      0x1000
70#define MMIO_GPIO13_BASE                        0xE8A18000
71#define MMIO_GPIO13_LENGTH                      0x1000
72#define MMIO_GPIO14_BASE                        0xE8A19000
73#define MMIO_GPIO14_LENGTH                      0x1000
74#define MMIO_GPIO15_BASE                        0xE8A1A000
75#define MMIO_GPIO15_LENGTH                      0x1000
76#define MMIO_GPIO16_BASE                        0xE8A1B000
77#define MMIO_GPIO16_LENGTH                      0x1000
78#define MMIO_GPIO17_BASE                        0xE8A1C000
79#define MMIO_GPIO17_LENGTH                      0x1000
80#define MMIO_GPIO20_BASE                        0xE8A1F000
81#define MMIO_GPIO20_LENGTH                      0x1000
82#define MMIO_GPIO21_BASE                        0xE8A20000
83#define MMIO_GPIO21_LENGTH                      0x1000
84#define MMIO_CFGBUS_SERVICE_TARGET_BASE         0xE9800000
85#define MMIO_CFGBUS_SERVICE_TARGET_LENGTH       0x10000
86#define MMIO_UFSBUS_SERVICE_TARGET_BASE         0xE9810000
87#define MMIO_UFSBUS_SERVICE_TARGET_LENGTH       0x10000
88#define MMIO_DMA_NOC_SERVICE_TARGET_BASE        0xE9860000
89#define MMIO_DMA_NOC_SERVICE_TARGET_LENGTH      0x10000
90#define MMIO_AOBUS_SERVICE_TARGET_BASE          0xE9870000
91#define MMIO_AOBUS_SERVICE_TARGET_LENGTH        0x10000
92#define MMIO_MMC1_NOC_SERVICE_TARGET_BASE       0xE9880000
93#define MMIO_MMC1_NOC_SERVICE_TARGET_LENGTH     0x10000
94#define MMIO_MMC0_NOC_SERVICE_TARGET_BASE       0xE9890000
95#define MMIO_MMC0_NOC_SERVICE_TARGET_LENGTH     0x10000
96#define MMIO_CSSYS_APB_BASE                     0xEC000000
97#define MMIO_CSSYS_APB_LENGTH                   0x1800000
98#define MMIO_IOMCU_TCM_BASE                     0xF0000000
99#define MMIO_IOMCU_TCM_LENGTH                   0xC00000
100#define MMIO_PCIEPHY_BASE                       0xF3F00000
101#define MMIO_PCIEPHY_LENGTH                     0x40000
102#define MMIO_PCIECTRL_BASE                      0xF4000000
103#define MMIO_PCIECTRL_LENGTH                    0x8000000
104#define MMIO_UART1_BASE                         0xFDF00000
105#define MMIO_UART1_LENGTH                       0x1000
106#define MMIO_UART4_BASE                         0xFDF01000
107#define MMIO_UART4_LENGTH                       0x1000
108#define MMIO_UART0_BASE                         0xFDF02000
109#define MMIO_UART0_LENGTH                       0x1000
110#define MMIO_UART2_BASE                         0xFDF03000
111#define MMIO_UART2_LENGTH                       0x1000
112#define MMIO_UART5_BASE                         0xFDF05000
113#define MMIO_UART5_LENGTH                       0x1000
114#define MMIO_SPI4_BASE                          0xFDF06000
115#define MMIO_SPI4_LENGTH                        0x1000
116#define MMIO_SPI1_BASE                          0xFDF08000
117#define MMIO_SPI1_LENGTH                        0x1000
118#define MMIO_I2C7_BASE                          0xFDF0B000
119#define MMIO_I2C7_LENGTH                        0x1000
120#define MMIO_I2C3_BASE                          0xFDF0C000
121#define MMIO_I2C3_LENGTH                        0x1000
122#define MMIO_I2C4_BASE                          0xFDF0D000
123#define MMIO_I2C4_LENGTH                        0x1000
124#define MMIO_PERF_STAT_BASE                     0xFDF10000
125#define MMIO_PERF_STAT_LENGTH                   0x1000
126#define MMIO_PERI_DMAC_BASE                     0xFDF30000
127#define MMIO_PERI_DMAC_LENGTH                   0x1000
128#define MMIO_IPC_MDM_S_BASE                     0xFF010000
129#define MMIO_IPC_MDM_S_LENGTH                   0x1000
130#define MMIO_IPC_MDM_NS_BASE                    0xFF011000
131#define MMIO_IPC_MDM_NS_LENGTH                  0x1000
132#define MMIO_USB3OTG_BASE                       0xFF100000
133#define MMIO_USB3OTG_LENGTH                     0x100000
134#define MMIO_USB3OTG_BC_BASE                    0xFF200000
135#define MMIO_USB3OTG_BC_LENGTH                  0x1000
136#define MMIO_IOC_MMC0_BASE                      0xFF37E000
137#define MMIO_IOC_MMC0_LENGTH                    0x1000
138#define MMIO_SD3_BASE                           0xFF37F000
139#define MMIO_SD3_LENGTH                         0x1000
140#define MMIO_UFS_CFG_BASE                       0xFF3B0000
141#define MMIO_UFS_CFG_LENGTH                     0x1000
142#define MMIO_UFS_SYS_CTRL_BASE                  0xFF3B1000
143#define MMIO_UFS_SYS_CTRL_LENGTH                0x1000
144#define MMIO_SPI3_BASE                          0xFF3B3000
145#define MMIO_SPI3_LENGTH                        0x1000
146#define MMIO_GPIO18_BASE                        0xFF3B4000
147#define MMIO_GPIO18_LENGTH                      0x1000
148#define MMIO_GPIO19_BASE                        0xFF3B5000
149#define MMIO_GPIO19_LENGTH                      0x1000
150#define MMIO_IOC_FIX_BASE                       0xFF3B6000
151#define MMIO_IOC_FIX_LENGTH                     0x1000
152#define MMIO_GPIO0_MMC1_BASE                    0xFF3E0000
153#define MMIO_GPIO0_MMC1_LENGTH                  0x1000
154#define MMIO_GPIO1_MMC1_BASE                    0xFF3E1000
155#define MMIO_GPIO1_MMC1_LENGTH                  0x1000
156#define MMIO_EMMC_BASE                          0xFF3FB000
157#define MMIO_EMMC_LENGTH                        0x1000
158#define MMIO_IOC_MMC1_BASE                      0xFF3FD000
159#define MMIO_IOC_MMC1_LENGTH                    0x1000
160#define MMIO_PCIE_APB_CFG_BASE                  0xFF3FE000
161#define MMIO_PCIE_APB_CFG_LENGTH                0x1000
162#define MMIO_SDIO0_BASE                         0xFF3FF000
163#define MMIO_SDIO0_LENGTH                       0x1000
164#define MMIO_IOMCU_BASE                         0xFFD00000
165#define MMIO_IOMCU_LENGTH                       0x80000
166#define MMIO_I2C0_BASE                          0xFFD71000
167#define MMIO_I2C0_LENGTH                        0x1000
168#define MMIO_I2C1_BASE                          0xFFD72000
169#define MMIO_I2C1_LENGTH                        0x1000
170#define MMIO_I2C2_BASE                          0xFFD73000
171#define MMIO_I2C2_LENGTH                        0x1000
172#define MMIO_IOMCU_CONFIG_BASE                  0xFFD7E000
173#define MMIO_IOMCU_CONFIG_LENGTH                0x1000
174#define MMIO_RTC0_BASE                          0xFFF04000
175#define MMIO_RTC0_LENGTH                        0x1000
176#define MMIO_RTC1_BASE                          0xFFF05000
177#define MMIO_RTC1_LENGTH                        0x1000
178#define MMIO_SYS_CNT_BASE                       0xFFF08000
179#define MMIO_SYS_CNT_LENGTH                     0x2000
180#define MMIO_SCTRL_BASE                         0xFFF0A000
181#define MMIO_SCTRL_LENGTH                       0x1000
182#define MMIO_GPIO22_BASE                        0xFFF0B000
183#define MMIO_GPIO22_LENGTH                      0x1000
184#define MMIO_GPIO23_BASE                        0xFFF0C000
185#define MMIO_GPIO23_LENGTH                      0x1000
186#define MMIO_GPIO24_BASE                        0xFFF0D000
187#define MMIO_GPIO24_LENGTH                      0x1000
188#define MMIO_GPIO25_BASE                        0xFFF0E000
189#define MMIO_GPIO25_LENGTH                      0x1000
190#define MMIO_GPIO26_BASE                        0xFFF0F000
191#define MMIO_GPIO26_LENGTH                      0x1000
192#define MMIO_GPIO27_BASE                        0xFFF10000
193#define MMIO_GPIO27_LENGTH                      0x1000
194#define MMIO_AO_IOC_BASE                        0xFFF11000
195#define MMIO_AO_IOC_LENGTH                      0x1000
196#define MMIO_IOMG_PMX4_BASE                     0xFFF11000
197#define MMIO_IOMG_PMX4_LENGTH                   0x1000
198#define MMIO_TIMER0_BASE                        0xFFF14000
199#define MMIO_TIMER0_LENGTH                      0x1000
200#define MMIO_TIMER1_BASE                        0xFFF15000
201#define MMIO_TIMER1_LENGTH                      0x1000
202#define MMIO_TIMER2_BASE                        0xFFF16000
203#define MMIO_TIMER2_LENGTH                      0x1000
204#define MMIO_TIMER3_BASE                        0xFFF17000
205#define MMIO_TIMER3_LENGTH                      0x1000
206#define MMIO_TIMER4_BASE                        0xFFF18000
207#define MMIO_TIMER4_LENGTH                      0x1000
208#define MMIO_TIMER5_BASE                        0xFFF19000
209#define MMIO_TIMER5_LENGTH                      0x1000
210#define MMIO_TIMER6_BASE                        0xFFF1A000
211#define MMIO_TIMER6_LENGTH                      0x1000
212#define MMIO_TIMER7_BASE                        0xFFF1B000
213#define MMIO_TIMER7_LENGTH                      0x1000
214#define MMIO_TIMER8_BASE                        0xFFF1C000
215#define MMIO_TIMER8_LENGTH                      0x1000
216#define MMIO_GPIO28_BASE                        0xFFF1D000
217#define MMIO_GPIO28_LENGTH                      0x1000
218#define MMIO_TSENSORC_BASE                      0xFFF30000
219#define MMIO_TSENSORC_LENGTH                    0x1000
220#define MMIO_PMCTRL_BASE                        0xFFF31000
221#define MMIO_PMCTRL_LENGTH                      0x1000
222#define MMIO_UART6_BASE                         0xFFF32000
223#define MMIO_UART6_LENGTH                       0x1000
224#define MMIO_PMU_I2C_BASE                       0xFFF33000
225#define MMIO_PMU_I2C_LENGTH                     0x1000
226#define MMIO_PMU_SSI0_BASE                      0xFFF34000
227#define MMIO_PMU_SSI0_LENGTH                    0x1000
228#define MMIO_PERI_CRG_BASE                      0xFFF35000
229#define MMIO_PERI_CRG_LENGTH                    0x1000
230#define MMIO_PMU_SSI1_BASE                      0xFFF36000
231#define MMIO_PMU_SSI1_LENGTH                    0x1000
232#define MMIO_PMU_SSI2_BASE                      0xFFF38000
233#define MMIO_PMU_SSI2_LENGTH                    0x1000
234
235// Interrupts
236#define IRQ_A73_INTERR                          32
237#define IRQ_A73_EXTERR                          33
238#define IRQ_A73_PMU0                            34
239#define IRQ_A73_PMU1                            35
240#define IRQ_A73_PMU2                            36
241#define IRQ_A73_PMU3                            37
242#define IRQ_A73_CTI0                            38
243#define IRQ_A73_CTI1                            39
244#define IRQ_A73_CTI2                            40
245#define IRQ_A73_CTI3                            41
246#define IRQ_A73_COMMRX0                         42
247#define IRQ_A73_COMMRX1                         43
248#define IRQ_A73_COMMRX2                         44
249#define IRQ_A73_COMMRX3                         45
250#define IRQ_A73_COMMTX0                         46
251#define IRQ_A73_COMMTX1                         47
252#define IRQ_A73_COMMTX2                         48
253#define IRQ_A73_COMMTX3                         49
254#define IRQ_A73_COMMIRQ0                        50
255#define IRQ_A73_COMMIRQ1                        51
256#define IRQ_A73_COMMIRQ2                        52
257#define IRQ_A73_COMMIRQ3                        53
258#define IRQ_A53_INTERR                          54
259#define IRQ_A53_EXTERR                          55
260#define IRQ_A53_PMU0                            56
261#define IRQ_A53_PMU1                            57
262#define IRQ_A53_PMU2                            58
263#define IRQ_A53_PMU3                            59
264#define IRQ_A53_CTI0                            60
265#define IRQ_A53_CTI1                            61
266#define IRQ_A53_CTI2                            62
267#define IRQ_A53_CTI3                            63
268#define IRQ_A53_COMMRX0                         64
269#define IRQ_A53_COMMRX1                         65
270#define IRQ_A53_COMMRX2                         66
271#define IRQ_A53_COMMRX3                         67
272#define IRQ_A53_COMMTX0                         68
273#define IRQ_A53_COMMTX1                         69
274#define IRQ_A53_COMMTX2                         70
275#define IRQ_A53_COMMTX3                         71
276#define IRQ_A53_COMMIRQ0                        72
277#define IRQ_A53_COMMIRQ1                        73
278#define IRQ_A53_COMMIRQ2                        74
279#define IRQ_A53_COMMIRQ3                        75
280#define IRQ_WATCHDOG0                           76
281#define IRQ_WATCHDOG1                           77
282#define IRQ_RTC0                                78
283#define IRQ_RTC1                                79
284#define IRQ_TIME00                              80
285#define IRQ_TIME01                              81
286#define IRQ_TIME10                              82
287#define IRQ_TIME11                              83
288#define IRQ_TIME20                              84
289#define IRQ_TIME21                              85
290#define IRQ_TIME30                              86
291#define IRQ_TIME31                              87
292#define IRQ_TIME40                              88
293#define IRQ_TIME41                              89
294#define IRQ_TIME50                              90
295#define IRQ_TIME51                              91
296#define IRQ_TIME60                              92
297#define IRQ_TIME61                              93
298#define IRQ_TIME70                              94
299#define IRQ_TIME71                              95
300#define IRQ_TIME80                              96
301#define IRQ_TIME81                              97
302#define IRQ_TIME90                              98
303#define IRQ_TIME91                              99
304#define IRQ_TIME100                             100
305#define IRQ_TIME101                             101
306#define IRQ_TIME110                             102
307#define IRQ_TIME111                             103
308#define IRQ_TIME120                             104
309#define IRQ_TIME121                             105
310#define IRQ_UART0                               106
311#define IRQ_UART1                               107
312#define IRQ_UART2                               108
313#define IRQ_UART4                               109
314#define IRQ_UART5                               110
315#define IRQ_UART6                               111
316#define IRQ_SPI1                                112
317#define IRQ_I2C3                                113
318#define IRQ_I2C4                                114
319#define IRQ_I2C5                                115
320#define IRQ_GPIO0_INTR1                         116
321#define IRQ_GPIO1_INTR1                         117
322#define IRQ_GPIO2_INTR1                         118
323#define IRQ_GPIO3_INTR1                         119
324#define IRQ_GPIO4_INTR1                         120
325#define IRQ_GPIO5_INTR1                         121
326#define IRQ_GPIO6_INTR1                         122
327#define IRQ_GPIO7_INTR1                         123
328#define IRQ_GPIO8_INTR1                         124
329#define IRQ_GPIO9_INTR1                         125
330#define IRQ_GPIO10_INTR1                        126
331#define IRQ_GPIO11_INTR1                        127
332#define IRQ_GPIO12_INTR1                        128
333#define IRQ_GPIO13_INTR1                        129
334#define IRQ_GPIO14_INTR1                        130
335#define IRQ_GPIO15_INTR1                        131
336#define IRQ_GPIO16_INTR1                        132
337#define IRQ_GPIO17_INTR1                        133
338#define IRQ_GPIO18_INTR1                        134
339#define IRQ_GPIO19_INTR1                        135
340#define IRQ_GPIO20_INTR1                        136
341#define IRQ_GPIO21_INTR1                        137
342#define IRQ_GPIO22_INTR1                        138
343#define IRQ_GPIO23_INTR1                        139
344#define IRQ_GPIO24_INTR1                        140
345#define IRQ_GPIO25_INTR1                        141
346#define IRQ_GPIO26_INTR1                        142
347#define IRQ_GPIO27_INTR1                        143
348#define IRQ_IOMCU_WD                            144
349#define IRQ_IOMCU_SPI                           145
350#define IRQ_IOMCU_UART3                         146
351#define IRQ_IOMCU_UART8                         147
352#define IRQ_IOMCU_SPI2                          148
353#define IRQ_IOMCU_I2C3                          149
354#define IRQ_IOMCU_I2C0                          150
355#define IRQ_IOMCU_I2C1                          151
356#define IRQ_IOMCU_I2C2                          152
357#define IRQ_IOMCU_GPIO0_INT1                    153
358#define IRQ_IOMCU_GPIO1_INT1                    154
359#define IRQ_IOMCU_GPIO2_INT1                    155
360#define IRQ_IOMCU_GPIO3_INT1                    156
361#define IRQ_IOMCU_DMAC_INT0                     157
362#define IRQ_IOMCU_DMAC_NS_INT0                  158
363#define IRQ_PERF_STAT                           159
364#define IRQ_IOMCU_COMB                          160
365#define IRQ_IOMCU_BLPWM                         161
366#define IRQ_NOC_COMB                            162
367#define IRQ_INTR_DMSS                           163
368#define IRQ_INTR_DDRC0_ERR                      164
369#define IRQ_INTR_DDRC1_ERR                      165
370#define IRQ_PMCTRL                              166
371#define IRQ_SECENG_P                            167
372#define IRQ_SECENG_S                            168
373#define IRQ_EMMC51                              169
374#define IRQ_ASP_IPC_MODEM_CBBE                  170
375#define IRQ_SD3                                 171
376#define IRQ_SDIO                                172
377#define IRQ_GPIO28_INTR1                        173
378#define IRQ_PERI_DMAC_INT0                      174
379#define IRQ_PERI_DMAC_NS_INT0                   175
380#define IRQ_CLK_MONITOR                         176
381#define IRQ_TSENSOR_A73                         177
382#define IRQ_TSENSOR_A53                         178
383#define IRQ_TSENSOR_G3D                         179
384#define IRQ_TSENSOR_MODEM                       180
385#define IRQ_ASP_ARM_SECURE                      181
386#define IRQ_ASP_ARM                             182
387#define IRQ_VDM_INT2                            183
388#define IRQ_VDM_INT0                            184
389#define IRQ_VDM_INT1                            185
390#define IRQ_MODEM_IPC0                          186
391#define IRQ_MODEM_IPC1                          187
392#define IRQ_MDM_BUS_ERR                         188
393#define IRQ_MDM_EDMAC0_INTR_NS_0                190
394#define IRQ_USB3                                191
395#define IRQ_USB3_OTG                            193
396#define IRQ_USB3_BC                             194
397#define IRQ_GPIO1_SE_INTR1                      195
398#define IRQ_GPIO0_SE_INTR1                      196
399#define IRQ_PMC_DVFS_A73                        197
400#define IRQ_PMC_DVFS_A53                        198
401#define IRQ_PMC_DVFS_G3D                        199
402#define IRQ_PMC_AVS_A73                         200
403#define IRQ_PMC_AVS_A53                         201
404#define IRQ_PMC_AVS_G3D                         202
405#define IRQ_PMC_AVS_IDLE_A73                    203
406#define IRQ_PMC_AVS_IDLE_A53                    204
407#define IRQ_PMC_AVS_IDLE_G3D                    205
408#define IRQ_M3_LP_WD                            206
409#define IRQ_CCI400_ERR                          207
410#define IRQ_CCI400_OVERFLOW_6_0                 208
411#define IRQ_CCI400_OVERFLOW_7                   209
412#define IRQ_IPC_S_INT0                          210
413#define IRQ_IPC_S_INT1                          211
414#define IRQ_IPC_S_INT4                          212
415#define IRQ_IPC_S_MBX0                          213
416#define IRQ_IPC_S_MBX1                          214
417#define IRQ_IPC_S_MBX2                          215
418#define IRQ_IPC_S_MBX3                          216
419#define IRQ_IPC_S_MBX4                          217
420#define IRQ_IPC_S_MBX5                          218
421#define IRQ_IPC_S_MBX6                          219
422#define IRQ_IPC_S_MBX7                          220
423#define IRQ_IPC_S_MBX8                          221
424#define IRQ_IPC_S_MBX9                          222
425#define IRQ_IPC_S_MBX18                         223
426#define IRQ_IPC_NS_INT0                         224
427#define IRQ_IPC_NS_INT1                         225
428#define IRQ_IPC_NS_INT4                         226
429#define IRQ_IPC_NS_INT5                         227
430#define IRQ_IPC_NS_INT6                         228
431#define IRQ_IPC_NS_MBX0                         229
432#define IRQ_IPC_NS_MBX1                         230
433#define IRQ_IPC_NS_MBX2                         231
434#define IRQ_IPC_NS_MBX3                         232
435#define IRQ_IPC_NS_MBX4                         233
436#define IRQ_IPC_NS_MBX5                         234
437#define IRQ_IPC_NS_MBX6                         235
438#define IRQ_IPC_NS_MBX7                         236
439#define IRQ_IPC_NS_MBX8                         237
440#define IRQ_IPC_NS_MBX9                         238
441#define IRQ_IPC_NS_MBX18                        239
442#define IRQ_MDM_AXIMON_INTR                     240
443#define IRQ_MDM_WDOG_INTR                       241
444#define IRQ_ASP_IPC_ARM                         242
445#define IRQ_ASP_IPC_MCPU                        243
446#define IRQ_ASP_IPC_BBE16                       244
447#define IRQ_ASP_WD                              245
448#define IRQ_ASP_AXI_DLOCK                       246
449#define IRQ_ASP_DMA_SECURE                      247
450#define IRQ_ASP_DMA_SECURE_N                    248
451#define IRQ_SCI0                                249
452#define IRQ_SCI1                                250
453#define IRQ_SOCP0                               251
454#define IRQ_SOCP1                               252
455#define IRQ_MDM_IPF_INTR0                       253
456#define IRQ_MDM_IPF_INTR1                       254
457#define IRQ_IDDRC_FATAL_INT_3_0                 255
458#define IRQ_MDM_AXI_DLOCK_INT                   256
459#define IRQ_MDM_WDT1_INTR                       257
460#define IRQ_GIC_IRQ_OUT_0                       258
461#define IRQ_GIC_IRQ_OUT_1                       259
462#define IRQ_GIC_IRQ_OUT_2                       260
463#define IRQ_GIC_IRQ_OUT_3                       261
464#define IRQ_GIC_IRQ_OUT_4                       262
465#define IRQ_GIC_IRQ_OUT_5                       263
466#define IRQ_GIC_IRQ_OUT_6                       264
467#define IRQ_GIC_IRQ_OUT_7                       265
468#define IRQ_GIC_FIQ_OUT_0                       266
469#define IRQ_GIC_FIQ_OUT_1                       267
470#define IRQ_GIC_FIQ_OUT_2                       268
471#define IRQ_GIC_FIQ_OUT_3                       269
472#define IRQ_GIC_FIQ_OUT_4                       270
473#define IRQ_GIC_FIQ_OUT_5                       271
474#define IRQ_GIC_FIQ_OUT_6                       272
475#define IRQ_GIC_FIQ_OUT_7                       273
476#define IRQ_NANDC                               274
477#define IRQ_CORESIGHT_ETR_FULL                  275
478#define IRQ_CORESIGHT_ETF_FULL                  276
479#define IRQ_DSS_PDP                             277
480#define IRQ_DSS_SDP                             278
481#define IRQ_DSS_OFFLINE                         279
482#define IRQ_DSS_MCU_PDP                         280
483#define IRQ_DSS_MCU_SDP                         281
484#define IRQ_DSS_MCU_OFFLINE                     282
485#define IRQ_DSS_DSI0                            283
486#define IRQ_DSS_DSI1                            284
487#define IRQ_IVP32_SMMU_IRPT_S                   285
488#define IRQ_IVP32_SMMU_IRPT_NS                  286
489#define IRQ_IVP32_WATCH_DOG                     287
490#define IRQ_ATGC                                288
491#define IRQ_G3D_IRQEVENT                        289
492#define IRQ_G3D_JOB                             290
493#define IRQ_G3D_MMU                             291
494#define IRQ_G3D_GPU                             292
495#define IRQ_ISP_IRQ_0                           293
496#define IRQ_ISP_IRQ_1                           294
497#define IRQ_ISP_IRQ_2                           295
498#define IRQ_ISP_IRQ_3                           296
499#define IRQ_ISP_IRQ_4                           297
500#define IRQ_ISP_IRQ_5                           298
501#define IRQ_ISP_IRQ_6                           299
502#define IRQ_ISP_IRQ_7                           300
503#define IRQ_ISP_A7_TO_GIC_MBX_INT_0             301
504#define IRQ_ISP_A7_TO_GIC_MBX_INT_1             302
505#define IRQ_ISP_A7_TO_GIC_IPC_INT               303
506#define IRQ_ISP_A7_WATCHDOG_INT                 304
507#define IRQ_ISP_AXI_DLCOK                       305
508#define IRQ_ISP_A7_IRQ_OUT                      306
509#define IRQ_IVP32_DWAXI_DLOCK_IRQ               307
510#define IRQ_MMBUF_ASC0                          308
511#define IRQ_MMBUF_ASC1                          309
512#define IRQ_UFS                                 310
513#define IRQ_PCIE_LINK_DOWN_INT                  311
514#define IRQ_PCIE_EDMA_INT                       312
515#define IRQ_PCIE_PM_INT                         313
516#define IRQ_PCIE_RADM_INTA                      314
517#define IRQ_PCIE_RADM_INTB                      315
518#define IRQ_PCIE_RADM_INTC                      316
519#define IRQ_PCIE_RADM_INTD                      317
520#define IRQ_PSAM_INTR_0                         318
521#define IRQ_PSAM_INTR_1                         319
522#define IRQ_OCBC_PE_NPINT_0                     320
523#define IRQ_INTR_WDOG_OCBC                      321
524#define IRQ_INTR_VDEC_MFDE_NORM                 322
525#define IRQ_INTR_VDEC_SCD_NORM                  323
526#define IRQ_INTR_VDEC_BPD_NORM                  324
527#define IRQ_INTR_VDEC_MMU_NORM                  325
528#define IRQ_INTR_VDEC_MFDE_SAFE                 326
529#define IRQ_INTR_VDEC_SCD_SAFE                  327
530#define IRQ_INTR_VDEC_BPD_SAFE                  328
531#define IRQ_INTR_VDEC_MMU_SAFE                  329
532#define IRQ_INTR_VENC_VEDU_NORM                 330
533#define IRQ_INTR_VENC_MMU_NORM                  331
534#define IRQ_INTR_VENC_VEDU_SAFE                 332
535#define IRQ_INTR_VENC_MMU_SAFE                  333
536#define IRQ_INTR_QOSBUF0                        334
537#define IRQ_INTR_QOSBUF1                        335
538#define IRQ_INTR_DDRC2_ERR                      336
539#define IRQ_INTR_DDRC3_ERR                      337
540#define IRQ_INTR_DDRPHY_0                       338
541#define IRQ_INTR_DDRPHY_1                       339
542#define IRQ_INTR_DDRPHY_2                       340
543#define IRQ_INTR_DDRPHY_3                       341
544#define IRQ_INTR0_MDM_IPC_GIC_S                 342
545#define IRQ_INTR1_MDM_IPC_GIC_S                 343
546#define IRQ_SPI3                                344
547#define IRQ_SPI4                                345
548#define IRQ_I2C7                                346
549#define IRQ_INTR_UCE0_WDOG                      347
550#define IRQ_INTR_UCE1_WDOG                      348
551#define IRQ_INTR_UCE2_WDOG                      349
552#define IRQ_INTR_UCE3_WDOG                      350
553#define IRQ_INTR_EXMBIST                        351
554#define IRQ_INTR_HISEE_WDOG                     352
555#define IRQ_INTR_HISEE_IPC_MBX_GIC_0            353
556#define IRQ_INTR_HISEE_IPC_MBX_GIC_1            354
557#define IRQ_INTR_HISEE_IPC_MBX_GIC_2            355
558#define IRQ_INTR_HISEE_IPC_MBX_GIC_3            356
559#define IRQ_INTR_HISEE_IPC_MBX_GIC_4            357
560#define IRQ_INTR_HISEE_IPC_MBX_GIC_5            358
561#define IRQ_INTR_HISEE_IPC_MBX_GIC_6            359
562#define IRQ_INTR_HISEE_IPC_MBX_GIC_7            360
563#define IRQ_INTR_HISEE_ALARM_0                  361
564#define IRQ_INTR_HISEE_ALARM_1                  362
565#define IRQ_INTR_HISEE_EH2H_SLV                 365
566#define IRQ_INTR_HISEE_AS2AP_IRQ                366
567#define IRQ_INTR_HISEE_DS2AP_IRQ                367
568#define IRQ_INTR_HISEE_SENC2AP_IRQ              368
569#define IRQ_GPIO0_EMMC                          369
570#define IRQ_GPIO1_EMMC                          370
571#define IRQ_AONOC_TIMEOUT                       371
572#define IRQ_INTR_HISEE_TSENSOR_0                372
573#define IRQ_INTR_HISEE_TSENSOR_1                373
574#define IRQ_INTR_HISEE_LOCKUP                   374
575#define IRQ_INTR_HISEE_DMA                      375
576
577// I2C ports
578enum {
579    DW_I2C_0,
580    DW_I2C_1,
581    DW_I2C_2,
582    DW_I2C_COUNT,
583};
584
585typedef enum hisi_3660_sep_gate_clk_idx {
586	HI3660_PERI_VOLT_HOLD = 0,
587	HI3660_HCLK_GATE_SDIO0,
588	HI3660_HCLK_GATE_SD,
589	HI3660_CLK_GATE_AOMM,
590	HI3660_PCLK_GPIO0,
591	HI3660_PCLK_GPIO1,
592	HI3660_PCLK_GPIO2,
593	HI3660_PCLK_GPIO3,
594	HI3660_PCLK_GPIO4,
595	HI3660_PCLK_GPIO5,
596	HI3660_PCLK_GPIO6,
597	HI3660_PCLK_GPIO7,
598	HI3660_PCLK_GPIO8,
599	HI3660_PCLK_GPIO9,
600	HI3660_PCLK_GPIO10,
601	HI3660_PCLK_GPIO11,
602	HI3660_PCLK_GPIO12,
603	HI3660_PCLK_GPIO13,
604	HI3660_PCLK_GPIO14,
605	HI3660_PCLK_GPIO15,
606	HI3660_PCLK_GPIO16,
607	HI3660_PCLK_GPIO17,
608	HI3660_PCLK_GPIO18,
609	HI3660_PCLK_GPIO19,
610	HI3660_PCLK_GPIO20,
611	HI3660_PCLK_GPIO21,
612	HI3660_CLK_GATE_SPI3,
613	HI3660_CLK_GATE_I2C7,
614	HI3660_CLK_GATE_I2C3,
615	HI3660_CLK_GATE_SPI1,
616	HI3660_CLK_GATE_UART1,
617	HI3660_CLK_GATE_UART2,
618	HI3660_CLK_GATE_UART4,
619	HI3660_CLK_GATE_UART5,
620	HI3660_CLK_GATE_I2C4,
621	HI3660_CLK_GATE_DMAC,
622	HI3660_CLK_GATE_VENC,
623	HI3660_CLK_GATE_VDEC,
624	HI3660_PCLK_GATE_DSS,
625	HI3660_ACLK_GATE_DSS,
626	HI3660_CLK_GATE_LDI1,
627	HI3660_CLK_GATE_LDI0,
628	HI3660_CLK_GATE_VIVOBUS,
629	HI3660_CLK_GATE_EDC0,
630	HI3660_CLK_GATE_TXDPHY0_CFG,
631	HI3660_CLK_GATE_TXDPHY0_REF,
632	HI3660_CLK_GATE_TXDPHY1_CFG,
633	HI3660_CLK_GATE_TXDPHY1_REF,
634	HI3660_ACLK_GATE_USB3OTG,
635	HI3660_CLK_GATE_SPI4,
636	HI3660_CLK_GATE_SD,
637	HI3660_CLK_GATE_SDIO0,
638	HI3660_CLK_GATE_ISP_SNCLK0,
639	HI3660_CLK_GATE_ISP_SNCLK1,
640	HI3660_CLK_GATE_ISP_SNCLK2,
641	HI3660_CLK_GATE_UFS_SUBSYS,
642	HI3660_PCLK_GATE_DSI0,
643	HI3660_PCLK_GATE_DSI1,
644	HI3660_ACLK_GATE_PCIE,
645	HI3660_PCLK_GATE_PCIE_SYS,
646	HI3660_CLK_GATE_PCIEAUX,
647	HI3660_PCLK_GATE_PCIE_PHY,
648
649	HI3660_PCLK_MMBUF_ANDGT,
650	HI3660_CLK_MMBUF_PLL_ANDGT,
651	HI3660_CLK_FLL_MMBUF_ANDGT,
652	HI3660_CLK_SYS_MMBUF_ANDGT,
653	HI3660_CLK_GATE_PCIEPHY_GT,
654
655	// Must be last.
656	HI3660_SEP_CLK_GATE_COUNT,
657} hisi_3660_sep_gate_clk_idx_t;