First version
[3rdparty/ote_partner/tlk.git] / platform / tegra / include / platform / irqs.h
1 /*
2  * Copyright (c) 2008 Travis Geiselbrecht
3  * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining
6  * a copy of this software and associated documentation files
7  * (the "Software"), to deal in the Software without restriction,
8  * including without limitation the rights to use, copy, modify, merge,
9  * publish, distribute, sublicense, and/or sell copies of the Software,
10  * and to permit persons to whom the Software is furnished to do so,
11  * subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be
14  * included in all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23  */
24
25 #ifndef __PLATFORM_TEGRA_IRQS_H
26 #define __PLATFORM_TEGRA_IRQS_H
27
28 #define INT_GIC_BASE                    0
29
30 #define IRQ_LOCALTIMER                  29
31
32 /* Primary Interrupt Controller */
33 #define INT_PRI_BASE                    (INT_GIC_BASE + 32)
34 #define INT_TMR1                        (INT_PRI_BASE + 0)
35 #define INT_TMR2                        (INT_PRI_BASE + 1)
36 #define INT_RTC                         (INT_PRI_BASE + 2)
37 #define INT_CEC                         (INT_PRI_BASE + 3)
38 #define INT_SHR_SEM_INBOX_IBF           (INT_PRI_BASE + 4)
39 #define INT_SHR_SEM_INBOX_IBE           (INT_PRI_BASE + 5)
40 #define INT_SHR_SEM_OUTBOX_IBF          (INT_PRI_BASE + 6)
41 #define INT_SHR_SEM_OUTBOX_IBE          (INT_PRI_BASE + 7)
42 #define INT_VDE_UCQ_ERROR               (INT_PRI_BASE + 8)
43 #define INT_VDE_SYNC_TOKEN              (INT_PRI_BASE + 9)
44 #define INT_VDE_BSE_V                   (INT_PRI_BASE + 10)
45 #define INT_VDE_BSE_A                   (INT_PRI_BASE + 11)
46 #define INT_VDE_SXE                     (INT_PRI_BASE + 12)
47 #define INT_SATA_RX_STAT                (INT_PRI_BASE + 13)
48 #define INT_SDMMC1                      (INT_PRI_BASE + 14)
49 #define INT_SDMMC2                      (INT_PRI_BASE + 15)
50 #define INT_XIO                         (INT_PRI_BASE + 16)
51 #define INT_VDE                         (INT_PRI_BASE + 17)
52 #define INT_AVP_UCQ                     (INT_PRI_BASE + 18)
53 #define INT_SDMMC3                      (INT_PRI_BASE + 19)
54 #define INT_USB                         (INT_PRI_BASE + 20)
55 #define INT_USB2                        (INT_PRI_BASE + 21)
56 #define INT_HSMMC                       (INT_PRI_BASE + 22)
57 #define INT_SATA_CTL                    (INT_PRI_BASE + 23)
58 #define INT_NANDFLASH                   (INT_PRI_BASE + 24)
59 #define INT_VCP                         (INT_PRI_BASE + 25)
60 #define INT_APB_DMA                     (INT_PRI_BASE + 26)
61 #define INT_AHB_DMA                     (INT_PRI_BASE + 27)
62 #define INT_GNT_0                       (INT_PRI_BASE + 28)
63 #define INT_GNT_1                       (INT_PRI_BASE + 29)
64 #define INT_OWR                         (INT_PRI_BASE + 30)
65 #define INT_SDMMC4                      (INT_PRI_BASE + 31)
66
67 /* Secondary Interrupt Controller */
68 #define INT_SEC_BASE                    (INT_PRI_BASE + 32)
69 #define INT_GPIO1                       (INT_SEC_BASE + 0)
70 #define INT_GPIO2                       (INT_SEC_BASE + 1)
71 #define INT_GPIO3                       (INT_SEC_BASE + 2)
72 #define INT_GPIO4                       (INT_SEC_BASE + 3)
73 #define INT_UARTA                       (INT_SEC_BASE + 4)
74 #define INT_UARTB                       (INT_SEC_BASE + 5)
75 #define INT_I2C                         (INT_SEC_BASE + 6)
76 #define INT_SPI                         (INT_SEC_BASE + 7)
77 #define INT_DTV                         INT_SPI
78 #define INT_TWC                         (INT_SEC_BASE + 8)
79 #define INT_TMR3                        (INT_SEC_BASE + 9)
80 #define INT_TMR4                        (INT_SEC_BASE + 10)
81 #define INT_FLOW_RSM0                   (INT_SEC_BASE + 11)
82 #define INT_FLOW_RSM1                   (INT_SEC_BASE + 12)
83 #define INT_ACTMON                      (INT_SEC_BASE + 13)
84 #define INT_UARTC                       (INT_SEC_BASE + 14)
85 #define INT_MIPI                        (INT_SEC_BASE + 15)
86 #define INT_EVENTA                      (INT_SEC_BASE + 16)
87 #define INT_EVENTB                      (INT_SEC_BASE + 17)
88 #define INT_EVENTC                      (INT_SEC_BASE + 18)
89 #define INT_EVENTD                      (INT_SEC_BASE + 19)
90 #define INT_VFIR                        (INT_SEC_BASE + 20)
91 #define INT_I2C5                        (INT_SEC_BASE + 21)
92 #define INT_SYS_STATS_MON               (INT_SEC_BASE + 22)
93 #define INT_GPIO5                       (INT_SEC_BASE + 23)
94 #define INT_SPEEDO_PMON_0               (INT_SEC_BASE + 24)
95 #define INT_SPEEDO_PMON_1               (INT_SEC_BASE + 25)
96 #define INT_SE                          (INT_SEC_BASE + 26)
97 #define INT_SPI_1                       (INT_SEC_BASE + 27)
98 #define INT_APB_DMA_COP                 (INT_SEC_BASE + 28)
99 #define INT_AHB_DMA_COP                 (INT_SEC_BASE + 29)
100 #define INT_DMA_TX                      (INT_SEC_BASE + 30)
101 #define INT_DMA_RX                      (INT_SEC_BASE + 31)
102
103 /* Tertiary Interrupt Controller */
104 #define INT_TRI_BASE                    (INT_SEC_BASE + 32)
105 #define INT_HOST1X_COP_SYNCPT           (INT_TRI_BASE + 0)
106 #define INT_HOST1X_MPCORE_SYNCPT        (INT_TRI_BASE + 1)
107 #define INT_HOST1X_COP_GENERAL          (INT_TRI_BASE + 2)
108 #define INT_HOST1X_MPCORE_GENERAL       (INT_TRI_BASE + 3)
109 #define INT_MPE_GENERAL                 (INT_TRI_BASE + 4)
110 #define INT_VI_GENERAL                  (INT_TRI_BASE + 5)
111 #define INT_EPP_GENERAL                 (INT_TRI_BASE + 6)
112 #define INT_ISP_GENERAL                 (INT_TRI_BASE + 7)
113 #define INT_2D_GENERAL                  (INT_TRI_BASE + 8)
114 #define INT_DISPLAY_GENERAL             (INT_TRI_BASE + 9)
115 #define INT_DISPLAY_B_GENERAL           (INT_TRI_BASE + 10)
116 #define INT_HDMI                        (INT_TRI_BASE + 11)
117 #define INT_TVO_GENERAL                 (INT_TRI_BASE + 12)
118 #define INT_MC_GENERAL                  (INT_TRI_BASE + 13)
119 #define INT_EMC_GENERAL                 (INT_TRI_BASE + 14)
120 #define INT_SPI_6                       (INT_SEC_BASE + 15)
121 #define INT_NOR_FLASH                   (INT_TRI_BASE + 16)
122 #define INT_HDA                         (INT_TRI_BASE + 17)
123 #define INT_SPI_2                       (INT_TRI_BASE + 18)
124 #define INT_SPI_3                       (INT_TRI_BASE + 19)
125 #define INT_I2C2                        (INT_TRI_BASE + 20)
126 #define INT_KBC                         (INT_TRI_BASE + 21)
127 #define INT_EXTERNAL_PMU                (INT_TRI_BASE + 22)
128 #define INT_GPIO6                       (INT_TRI_BASE + 23)
129 #define INT_TVDAC                       (INT_TRI_BASE + 24)
130 #define INT_GPIO7                       (INT_TRI_BASE + 25)
131 #define INT_UARTD                       (INT_TRI_BASE + 26)
132 #define INT_UARTE                       (INT_TRI_BASE + 27)
133 #define INT_I2C3                        (INT_TRI_BASE + 28)
134 #define INT_SPI_4                       (INT_TRI_BASE + 29)
135 #define INT_SPI_5                       (INT_TRI_BASE + 30)
136 #define INT_SW_RESERVED                 (INT_TRI_BASE + 31)
137
138 /* Quaternary Interrupt Controller */
139 #define INT_QUAD_BASE                   (INT_TRI_BASE + 32)
140 #define INT_SNOR                        (INT_QUAD_BASE + 0)
141 #define INT_USB3                        (INT_QUAD_BASE + 1)
142 #define INT_PCIE_INTR                   (INT_QUAD_BASE + 2)
143 #define INT_PCIE_MSI                    (INT_QUAD_BASE + 3)
144 #define INT_PCIE                        (INT_QUAD_BASE + 4)
145 #define INT_AVP_CACHE                   (INT_QUAD_BASE + 5)
146 #define INT_TSENSOR                     (INT_QUAD_BASE + 6)
147 #define INT_AUDIO_CLUSTER               (INT_QUAD_BASE + 7)
148 #define INT_APB_DMA_CH0                 (INT_QUAD_BASE + 8)
149 #define INT_APB_DMA_CH1                 (INT_QUAD_BASE + 9)
150 #define INT_APB_DMA_CH2                 (INT_QUAD_BASE + 10)
151 #define INT_APB_DMA_CH3                 (INT_QUAD_BASE + 11)
152 #define INT_APB_DMA_CH4                 (INT_QUAD_BASE + 12)
153 #define INT_APB_DMA_CH5                 (INT_QUAD_BASE + 13)
154 #define INT_APB_DMA_CH6                 (INT_QUAD_BASE + 14)
155 #define INT_APB_DMA_CH7                 (INT_QUAD_BASE + 15)
156 #define INT_APB_DMA_CH8                 (INT_QUAD_BASE + 16)
157 #define INT_APB_DMA_CH9                 (INT_QUAD_BASE + 17)
158 #define INT_APB_DMA_CH10                (INT_QUAD_BASE + 18)
159 #define INT_APB_DMA_CH11                (INT_QUAD_BASE + 19)
160 #define INT_APB_DMA_CH12                (INT_QUAD_BASE + 20)
161 #define INT_APB_DMA_CH13                (INT_QUAD_BASE + 21)
162 #define INT_APB_DMA_CH14                (INT_QUAD_BASE + 22)
163 #define INT_APB_DMA_CH15                (INT_QUAD_BASE + 23)
164 #define INT_I2C4                        (INT_QUAD_BASE + 24)
165 #define INT_TMR5                        (INT_QUAD_BASE + 25)
166 #define INT_TMR_SHARED                  (INT_QUAD_BASE + 26) /* Deprecated */
167 #define INT_WDT_CPU                     (INT_QUAD_BASE + 27)
168 #define INT_WDT_AVP                     (INT_QUAD_BASE + 28)
169 #define INT_GPIO8                       (INT_QUAD_BASE + 29)
170 #define INT_CAR                         (INT_QUAD_BASE + 30)
171 #define INT_QUAD_RES_31                 (INT_QUAD_BASE + 31)
172
173 /* Quintary Interrupt Controller */
174 #define INT_QUINT_BASE                  (INT_QUAD_BASE + 32)
175 #define INT_APB_DMA_CH16                (INT_QUINT_BASE + 0)
176 #define INT_APB_DMA_CH17                (INT_QUINT_BASE + 1)
177 #define INT_APB_DMA_CH18                (INT_QUINT_BASE + 2)
178 #define INT_APB_DMA_CH19                (INT_QUINT_BASE + 3)
179 #define INT_APB_DMA_CH20                (INT_QUINT_BASE + 4)
180 #define INT_APB_DMA_CH21                (INT_QUINT_BASE + 5)
181 #define INT_APB_DMA_CH22                (INT_QUINT_BASE + 6)
182 #define INT_APB_DMA_CH23                (INT_QUINT_BASE + 7)
183 #define INT_APB_DMA_CH24                (INT_QUINT_BASE + 8)
184 #define INT_APB_DMA_CH25                (INT_QUINT_BASE + 9)
185 #define INT_APB_DMA_CH26                (INT_QUINT_BASE + 10)
186 #define INT_APB_DMA_CH27                (INT_QUINT_BASE + 11)
187 #define INT_APB_DMA_CH28                (INT_QUINT_BASE + 12)
188 #define INT_APB_DMA_CH29                (INT_QUINT_BASE + 13)
189 #define INT_APB_DMA_CH30                (INT_QUINT_BASE + 14)
190 #define INT_APB_DMA_CH31                (INT_QUINT_BASE + 15)
191 #define INT_CPU0_PMU_INTR               (INT_QUINT_BASE + 16)
192 #define INT_CPU1_PMU_INTR               (INT_QUINT_BASE + 17)
193 #define INT_CPU2_PMU_INTR               (INT_QUINT_BASE + 18)
194 #define INT_CPU3_PMU_INTR               (INT_QUINT_BASE + 19)
195 #define INT_CPU4_PMU_INTR               (INT_QUINT_BASE + 20)
196 #define INT_CPU5_PMU_INTR               (INT_QUINT_BASE + 21)
197 #define INT_CPU6_PMU_INTR               (INT_QUINT_BASE + 22)
198 #define INT_CPU7_PMU_INTR               (INT_QUINT_BASE + 23)
199 #define INT_TMR6                        (INT_QUINT_BASE + 24)
200 #define INT_TMR7                        (INT_QUINT_BASE + 25)
201 #define INT_TMR8                        (INT_QUINT_BASE + 26)
202 #define INT_TMR9                        (INT_QUINT_BASE + 27)
203 #define INT_TMR10                       (INT_QUINT_BASE + 28)
204 #define INT_QUINT_RES_29                (INT_QUINT_BASE + 29)
205 #define INT_QUINT_RES_30                (INT_QUINT_BASE + 30)
206 #define INT_QUINT_RES_31                (INT_QUINT_BASE + 31)
207
208 #define INT_GIC_NR                      (INT_QUINT_BASE + 32)
209
210 #define INT_MAIN_NR                     (INT_GIC_NR - INT_PRI_BASE)
211
212 #define INT_SYNCPT_THRESH_BASE          (INT_QUINT_BASE + 32)
213 #define INT_SYNCPT_THRESH_NR            32
214
215 #define INT_GPIO_BASE                   (INT_SYNCPT_THRESH_BASE + \
216                                          INT_SYNCPT_THRESH_NR)
217 #define INT_GPIO_NR                     (32 * 8)
218
219 #define INT_PCI_MSI_BASE                (INT_GPIO_BASE + \
220                                          INT_GPIO_NR)
221 #define INT_PCI_MSI_NR                  (32 * 8)
222
223 #define FIQ_START                       INT_GIC_BASE
224
225 #define TEGRA_NR_IRQS                   (INT_PCI_MSI_BASE + \
226                                                         INT_PCI_MSI_NR)
227
228 #define INT_BOARD_BASE                  TEGRA_NR_IRQS
229
230 #define NR_BOARD_IRQS                   64
231
232 #define NR_IRQS                         (INT_BOARD_BASE + NR_BOARD_IRQS)
233
234 #endif /* __PLATFORM_TEGRA_IRQS_H */