summaryrefslogtreecommitdiff
path: root/plat/sun50iw1p1/gic_sunxi.h
blob: f52bde44a45d8602845075b40a3e11fdf91783df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
/*
 * Copyright (c) 2014, ARM Limited and Contributors. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this
 * list of conditions and the following disclaimer.
 *
 * Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * Neither the name of ARM nor the names of its contributors may be used
 * to endorse or promote products derived from this software without specific
 * prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef __GIC_SUNXI_H_
#define __GIC_SUNXI_H_


#include "sunxi_def.h"
/*irq num*/
#define GIC_SRC_SPI(_n)                (32 + (_n))
#define AW_IRQ_UART0                   GIC_SRC_SPI(0)  /* 32 */
#define AW_IRQ_UART1                   GIC_SRC_SPI(1)  /* 33 */
#define AW_IRQ_UART2                   GIC_SRC_SPI(2)  /* 34 */
#define AW_IRQ_UART3                   GIC_SRC_SPI(3)  /* 35 */
#define AW_IRQ_UART4                   GIC_SRC_SPI(4)  /* 36 */

#define AW_IRQ_TWI0                    GIC_SRC_SPI(6)  /* 38 */
#define AW_IRQ_TWI1                    GIC_SRC_SPI(7)  /* 39 */
#define AW_IRQ_TWI2                    GIC_SRC_SPI(8)  /* 40 */

#define AW_IRQ_PBEINT                  GIC_SRC_SPI(11)  /* 43 */
#define AW_IRQ_OWA                     GIC_SRC_SPI(12)  /* 44*/
#define AW_IRQ_DAUDIO0                 GIC_SRC_SPI(13)  /* 45 */
#define AW_IRQ_DAUDIO1                 GIC_SRC_SPI(14)  /* 46 */
#define AW_IRQ_DAUDIO2                 GIC_SRC_SPI(15)  /* 47 */

#define AW_IRQ_PG_EINT                 GIC_SRC_SPI(17)  /* 49 */
#define AW_IRQ_TIMER0                  GIC_SRC_SPI(18)  /* 50 */
#define AW_IRQ_TIMER1                  GIC_SRC_SPI(19)  /* 51 */
#define AW_IRQ_PH_EINT                 GIC_SRC_SPI(21)  /* 53 */

#define AW_IRQ_WATCHDOG                GIC_SRC_SPI(25)  /* 57*/
#define AW_IRQ_NMI                     GIC_SRC_SPI(32)  /* 64*/


#define AW_IRQ_DMA                     GIC_SRC_SPI(50)  /* 82 */
#define AW_IRQ_HSTIMER                 GIC_SRC_SPI(51)  /* 83 */
#define AW_IRQ_SMC                     GIC_SRC_SPI(56)  /* 88 */
#define AW_IRQ_MMC0                    GIC_SRC_SPI(60)  /* 92 */
#define AW_IRQ_MMC1                    GIC_SRC_SPI(61)  /* 93 */
#define AW_IRQ_MMC2                    GIC_SRC_SPI(62)  /* 94 */
#define AW_IRQ_SPI0                    GIC_SRC_SPI(65)  /* 97 */
#define AW_IRQ_SPI1                    GIC_SRC_SPI(66)  /* 98 */
#define AW_IRQ_NAND                    GIC_SRC_SPI(70) /* 102 */
#define AW_IRQ_USB_OTG                 GIC_SRC_SPI(71) /* 103 */
#define AW_IRQ_USB_EHCI0               GIC_SRC_SPI(72) /* 104*/
#define AW_IRQ_USB_OHCI0               GIC_SRC_SPI(73) /* 105 */
#define AW_IRQ_USB_EHCI1               GIC_SRC_SPI(74) /* 106 */
#define AW_IRQ_USB_OHCI1               GIC_SRC_SPI(75) /* 107 */

#define AW_IRQ_CE0                     GIC_SRC_SPI(80) /* 112 */
#define AW_IRQ_TS                      GIC_SRC_SPI(81) /* 113 */
#define AW_IRQ_EMC                     GIC_SRC_SPI(82) /* 114 */
#define AW_IRQ_SCR                     GIC_SRC_SPI(83) /* 115 */
#define AW_IRQ_CSI                     GIC_SRC_SPI(84) /* 116 */
#define AW_IRQ_CSI_CCI                 GIC_SRC_SPI(85) /* 117 */
#define AW_IRQ_TCON0                   GIC_SRC_SPI(86) /* 118 */ 
#define AW_IRQ_TCON1                   GIC_SRC_SPI(87) /* 119 */
#define AW_IRQ_HDMI                    GIC_SRC_SPI(88) /* 120 */
#define AW_IRQ_MIPI_DSI                GIC_SRC_SPI(89) /* 121 */

#define AW_IRQ_DIT                     GIC_SRC_SPI(93) /* 125 */
#define AW_IRQ_CE1                     GIC_SRC_SPI(94) /* 126 */
#define AW_IRQ_DE                      GIC_SRC_SPI(95) /* 127 */
#define AW_IRQ_ROT                     GIC_SRC_SPI(96) /* 128 */
#define AW_IRQ_GPU_GP                  GIC_SRC_SPI(97) /* 129 */ 
#define AW_IRQ_GPU_GPMMU               GIC_SRC_SPI(98) /* 130 */ 
#define AW_IRQ_GPU_PP0                 GIC_SRC_SPI(99) /* 131 */ 
#define AW_IRQ_GPU_PP0MMU              GIC_SRC_SPI(100) /* 132 */ 
#define AW_IRQ_GPU_PMU                 GIC_SRC_SPI(101) /* 133 */ 
#define AW_IRQ_GPU_PP1                 GIC_SRC_SPI(102) /* 134 */ 
#define AW_IRQ_GPU_PPMMU1              GIC_SRC_SPI(103) /* 135 */ 

#define AW_IRQ_CTI0                   GIC_SRC_SPI(108) /* 140 */ 
#define AW_IRQ_CTI1                   GIC_SRC_SPI(109) /* 141 */ 
#define AW_IRQ_CTI2                   GIC_SRC_SPI(110) /* 142 */ 
#define AW_IRQ_CTI3                   GIC_SRC_SPI(111) /* 143 */ 
#define AW_IRQ_COMMTX0                GIC_SRC_SPI(112) /* 144 */ 
#define AW_IRQ_COMMTX1                GIC_SRC_SPI(113) /* 145 */ 
#define AW_IRQ_COMMTX2                GIC_SRC_SPI(114) /* 146 */ 
#define AW_IRQ_COMMTX3                GIC_SRC_SPI(115) /* 147 */ 
#define AW_IRQ_COMMRX0                GIC_SRC_SPI(116) /* 148 */ 
#define AW_IRQ_COMMRX1                GIC_SRC_SPI(117) /* 149 */ 
#define AW_IRQ_COMMRX2                GIC_SRC_SPI(118) /* 150 */ 
#define AW_IRQ_COMMRX3                GIC_SRC_SPI(119) /* 151 */ 
#define AW_IRQ_PMU0                   GIC_SRC_SPI(120) /* 152 */ 
#define AW_IRQ_PMU1                   GIC_SRC_SPI(121) /* 153 */ 
#define AW_IRQ_PMU2                   GIC_SRC_SPI(122) /* 154 */ 
#define AW_IRQ_PMU3                   GIC_SRC_SPI(123) /* 155 */ 
#define AW_IRQ_AXI_ERROR              GIC_SRC_SPI(124) /*156*/
#define GIC_IRQ_NUM                  (AW_IRQ_AXI_ERROR + 1)
/*irq num end*/



/* GIC registers */
#define GIC_DIST_CON		(ARMA9_GIC_BASE + 0x0000)
#define GIC_CON_TYPE		(ARMA9_GIC_BASE + 0x0004)
#define GIC_CON_IIDR		(ARMA9_GIC_BASE + 0x0008)

#define GIC_CON_IGRP(n)		(ARMA9_GIC_BASE + 0x0080 + (n)*4)

#define GIC_SET_EN(_n)		(ARMA9_GIC_BASE + 0x100 + 4 * (_n))
#define GIC_SET_EN0			GIC_SET_EN(0)	// 0x100
#define GIC_SET_EN1			GIC_SET_EN(1)   // 0x104
#define GIC_SET_EN2			GIC_SET_EN(2)   // 0x108
#define GIC_SET_EN3			GIC_SET_EN(3)   // 0x10c
#define GIC_SET_EN4			GIC_SET_EN(4)   // 0x110

#define GIC_CLR_EN(_n)		(ARMA9_GIC_BASE + 0x180 + 4 * (_n))
#define GIC_CLR_EN0			GIC_CLR_EN(0)	// 0x180
#define GIC_CLR_EN1			GIC_CLR_EN(1)   // 0x184
#define GIC_CLR_EN2			GIC_CLR_EN(2)   // 0x188
#define GIC_CLR_EN3			GIC_CLR_EN(3)   // 0x18c
#define GIC_CLR_EN4			GIC_CLR_EN(4)   // 0x190

#define GIC_PEND_SET(_n)	(ARMA9_GIC_BASE + 0x200 + 4 * (_n))
#define GIC_PEND_SET0		GIC_PEND_SET(0)	// 0x200
#define GIC_PEND_SET1		GIC_PEND_SET(1) // 0x204
#define GIC_PEND_SET2		GIC_PEND_SET(2) // 0x208
#define GIC_PEND_SET3		GIC_PEND_SET(3) // 0x20c
#define GIC_PEND_SET4		GIC_PEND_SET(4) // 0x210

#define GIC_PEND_CLR(_n)	(ARMA9_GIC_BASE + 0x280 + 4 * (_n))
#define GIC_PEND_CLR0		GIC_PEND_CLR(0)	// 0x280
#define GIC_PEND_CLR1		GIC_PEND_CLR(1) // 0x284
#define GIC_PEND_CLR2		GIC_PEND_CLR(2) // 0x288
#define GIC_PEND_CLR3		GIC_PEND_CLR(3) // 0x28c
#define GIC_PEND_CLR4		GIC_PEND_CLR(4) // 0x290

#define GIC_ACT_SET(_n)		(ARMA9_GIC_BASE + 0x300 + 4 * (_n))
#define GIC_ACT_SET0		GIC_ACT_SET(0)	// 0x300
#define GIC_ACT_SET1		GIC_ACT_SET(1)  // 0x304
#define GIC_ACT_SET2		GIC_ACT_SET(2)  // 0x308
#define GIC_ACT_SET3		GIC_ACT_SET(3)  // 0x30c
#define GIC_ACT_SET4		GIC_ACT_SET(4)  // 0x310

#define GIC_ACT_CLR(_n)		(ARMA9_GIC_BASE + 0x380 + 4 * (_n))
#define GIC_ACT_CLR0		GIC_ACT_CLR(0)	// 0x380
#define GIC_ACT_CLR1		GIC_ACT_CLR(1)  // 0x384
#define GIC_ACT_CLR2		GIC_ACT_CLR(2)  // 0x388
#define GIC_ACT_CLR3		GIC_ACT_CLR(3)  // 0x38c
#define GIC_ACT_CLR4		GIC_ACT_CLR(4)  // 0x390

#define GIC_SGI_PRIO(_n)	(ARMA9_GIC_BASE + 0x400 + 4 * (_n))
#define GIC_SGI_PRIO0		GIC_SGI_PRIO(0)	// 0x400
#define GIC_SGI_PRIO1		GIC_SGI_PRIO(1) // 0x404
#define GIC_SGI_PRIO2		GIC_SGI_PRIO(2) // 0x408
#define GIC_SGI_PRIO3		GIC_SGI_PRIO(3) // 0x40C

#define GIC_PPI_PRIO(_n)	(ARMA9_GIC_BASE + 0x410 + 4 * (_n))
#define GIC_PPI_PRIO0		GIC_PPI_PRIO(0)	// 0x410
#define GIC_PPI_PRIO1		GIC_PPI_PRIO(1) // 0x414
#define GIC_PPI_PRIO2		GIC_PPI_PRIO(2) // 0x418
#define GIC_PPI_PRIO3		GIC_PPI_PRIO(3) // 0x41C

#define GIC_SPI_PRIO(_n)	(ARMA9_GIC_BASE + 0x420 + 4 * (_n))
#define GIC_SPI_PRIO0		GIC_SPI_PRIO(0 )	// 0x420
#define GIC_SPI_PRIO1 		GIC_SPI_PRIO(1 )    // 0x424
#define GIC_SPI_PRIO2 		GIC_SPI_PRIO(2 )    // 0x428
#define GIC_SPI_PRIO3 		GIC_SPI_PRIO(3 )    // 0x42C
#define GIC_SPI_PRIO4 		GIC_SPI_PRIO(4 )    // 0x430
#define GIC_SPI_PRIO5 		GIC_SPI_PRIO(5 )    // 0x434
#define GIC_SPI_PRIO6 		GIC_SPI_PRIO(6 )    // 0x438
#define GIC_SPI_PRIO7 		GIC_SPI_PRIO(7 )    // 0x43C
#define GIC_SPI_PRIO8 		GIC_SPI_PRIO(8 )    // 0x440
#define GIC_SPI_PRIO9 		GIC_SPI_PRIO(9 )    // 0x444
#define GIC_SPI_PRIO10		GIC_SPI_PRIO(10)    // 0x448
#define GIC_SPI_PRIO11		GIC_SPI_PRIO(11)    // 0x44C
#define GIC_SPI_PRIO12		GIC_SPI_PRIO(12)    // 0x450
#define GIC_SPI_PRIO13		GIC_SPI_PRIO(13)    // 0x454
#define GIC_SPI_PRIO14		GIC_SPI_PRIO(14)    // 0x458
#define GIC_SPI_PRIO15		GIC_SPI_PRIO(15)    // 0x45C
#define GIC_SPI_PRIO16		GIC_SPI_PRIO(16)    // 0x460
#define GIC_SPI_PRIO17		GIC_SPI_PRIO(17)    // 0x464
#define GIC_SPI_PRIO18		GIC_SPI_PRIO(18)    // 0x468
#define GIC_SPI_PRIO19		GIC_SPI_PRIO(19)    // 0x46C
#define GIC_SPI_PRIO20		GIC_SPI_PRIO(20)    // 0x470
#define GIC_SPI_PRIO21		GIC_SPI_PRIO(21)    // 0x474
#define GIC_SPI_PRIO22		GIC_SPI_PRIO(22)    // 0x478
#define GIC_SPI_PRIO23		GIC_SPI_PRIO(23)    // 0x47C
#define GIC_SPI_PRIO24		GIC_SPI_PRIO(24)    // 0x480
#define GIC_SPI_PRIO25		GIC_SPI_PRIO(25)    // 0x484
#define GIC_SPI_PRIO26		GIC_SPI_PRIO(26)    // 0x488
#define GIC_SPI_PRIO27		GIC_SPI_PRIO(27)    // 0x48C
#define GIC_SPI_PRIO28		GIC_SPI_PRIO(28)    // 0x490
#define GIC_SPI_PRIO29		GIC_SPI_PRIO(29)    // 0x494
#define GIC_SPI_PRIO30		GIC_SPI_PRIO(30)    // 0x498
#define GIC_SPI_PRIO31		GIC_SPI_PRIO(31)    // 0x49C

#define GIC_SGI_PROC_TARG(_n)	(ARMA9_GIC_BASE + 0x800 + 4 * (_n))
#define GIC_SGI_PROC_TARG0		GIC_SGI_PROC_TARG(0)	// 0x800
#define GIC_SGI_PROC_TARG1		GIC_SGI_PROC_TARG(1)    // 0x804
#define GIC_SGI_PROC_TARG2		GIC_SGI_PROC_TARG(2)    // 0x808
#define GIC_SGI_PROC_TARG3		GIC_SGI_PROC_TARG(3)    // 0x80C

#define GIC_PPI_PROC_TARG(_n)	(ARMA9_GIC_BASE + 0x810 + 4 * (_n))
#define GIC_PPI_PROC_TARG0		GIC_PPI_PROC_TARG(0)	// 0x810
#define GIC_PPI_PROC_TARG1		GIC_PPI_PROC_TARG(1)    // 0x814
#define GIC_PPI_PROC_TARG2		GIC_PPI_PROC_TARG(2)    // 0x818
#define GIC_PPI_PROC_TARG3		GIC_PPI_PROC_TARG(3)    // 0x81C

#define GIC_SPI_PROC_TARG(_n)	(ARMA9_GIC_BASE + 0x820 + 4 * (_n))
#define GIC_SPI_PROC_TARG0 		GIC_SPI_PROC_TARG(0 )	// 0x820
#define GIC_SPI_PROC_TARG1 		GIC_SPI_PROC_TARG(1 )   // 0x824
#define GIC_SPI_PROC_TARG2 		GIC_SPI_PROC_TARG(2 )   // 0x828
#define GIC_SPI_PROC_TARG3 		GIC_SPI_PROC_TARG(3 )   // 0x82C
#define GIC_SPI_PROC_TARG4 		GIC_SPI_PROC_TARG(4 )   // 0x830
#define GIC_SPI_PROC_TARG5 		GIC_SPI_PROC_TARG(5 )   // 0x834
#define GIC_SPI_PROC_TARG6 		GIC_SPI_PROC_TARG(6 )   // 0x838
#define GIC_SPI_PROC_TARG7 		GIC_SPI_PROC_TARG(7 )   // 0x83C
#define GIC_SPI_PROC_TARG8 		GIC_SPI_PROC_TARG(8 )   // 0x840
#define GIC_SPI_PROC_TARG9 		GIC_SPI_PROC_TARG(9 )   // 0x844
#define GIC_SPI_PROC_TARG10		GIC_SPI_PROC_TARG(10)   // 0x848
#define GIC_SPI_PROC_TARG11		GIC_SPI_PROC_TARG(11)   // 0x84C
#define GIC_SPI_PROC_TARG12		GIC_SPI_PROC_TARG(12)   // 0x850
#define GIC_SPI_PROC_TARG13		GIC_SPI_PROC_TARG(13)   // 0x854
#define GIC_SPI_PROC_TARG14		GIC_SPI_PROC_TARG(14)   // 0x858
#define GIC_SPI_PROC_TARG15		GIC_SPI_PROC_TARG(15)   // 0x85C
#define GIC_SPI_PROC_TARG16		GIC_SPI_PROC_TARG(16)   // 0x860
#define GIC_SPI_PROC_TARG17		GIC_SPI_PROC_TARG(17)   // 0x864
#define GIC_SPI_PROC_TARG18		GIC_SPI_PROC_TARG(18)   // 0x868
#define GIC_SPI_PROC_TARG19		GIC_SPI_PROC_TARG(19)   // 0x86C
#define GIC_SPI_PROC_TARG20		GIC_SPI_PROC_TARG(20)   // 0x870
#define GIC_SPI_PROC_TARG21		GIC_SPI_PROC_TARG(21)   // 0x874
#define GIC_SPI_PROC_TARG22		GIC_SPI_PROC_TARG(22)   // 0x878
#define GIC_SPI_PROC_TARG23		GIC_SPI_PROC_TARG(23)   // 0x87C
#define GIC_SPI_PROC_TARG24		GIC_SPI_PROC_TARG(24)   // 0x880
#define GIC_SPI_PROC_TARG25		GIC_SPI_PROC_TARG(25)   // 0x884
#define GIC_SPI_PROC_TARG26		GIC_SPI_PROC_TARG(26)   // 0x888
#define GIC_SPI_PROC_TARG27		GIC_SPI_PROC_TARG(27)   // 0x88C
#define GIC_SPI_PROC_TARG28		GIC_SPI_PROC_TARG(28)   // 0x890
#define GIC_SPI_PROC_TARG29		GIC_SPI_PROC_TARG(29)   // 0x894
#define GIC_SPI_PROC_TARG30		GIC_SPI_PROC_TARG(30)   // 0x898
#define GIC_SPI_PROC_TARG31		GIC_SPI_PROC_TARG(31)   // 0x89C

#define GIC_IRQ_MOD_CFG(_n)		(ARMA9_GIC_BASE + 0xc00 + 4 * (_n))
#define GIC_IRQ_MOD_CFG0		GIC_IRQ_MOD_CFG(0)		// 0xc00 - SGI
#define GIC_IRQ_MOD_CFG1		GIC_IRQ_MOD_CFG(1)  	// 0xc04 - PPI
#define GIC_IRQ_MOD_CFG2		GIC_IRQ_MOD_CFG(2)  	// 0xc08 - SPI0 ~ 15
#define GIC_IRQ_MOD_CFG3		GIC_IRQ_MOD_CFG(3)  	// 0xc0C - SPI16 ~ 31
#define GIC_IRQ_MOD_CFG4		GIC_IRQ_MOD_CFG(4)  	// 0xc10 - SPI32 ~ 47
#define GIC_IRQ_MOD_CFG5		GIC_IRQ_MOD_CFG(5)  	// 0xc14 - SPI48 ~ 63
#define GIC_IRQ_MOD_CFG6		GIC_IRQ_MOD_CFG(6)  	// 0xc18 - SPI64 ~ 79
#define GIC_IRQ_MOD_CFG7		GIC_IRQ_MOD_CFG(7)  	// 0xc1C - SPI80 ~ 95
#define GIC_IRQ_MOD_CFG8		GIC_IRQ_MOD_CFG(8)  	// 0xc20 - SPI96 ~ 111
#define GIC_IRQ_MOD_CFG9		GIC_IRQ_MOD_CFG(9)  	// 0xc24 - SPI112 ~ 127

#define GIC_SOFT_IRQ_GEN		(ARMA9_GIC_BASE + 0xf00)	// 0xf00
#define GIC_SGI_PEND_SET(_n)	(ARMA9_GIC_BASE + 0xf10 + 4 * (_n))
#define GIC_SGI_PEND_SET0		GIC_SGI_PEND_SET(0)		// 0xf10
#define GIC_SGI_PEND_SET1		GIC_SGI_PEND_SET(1)		// 0xf14
#define GIC_SGI_PEND_SET2		GIC_SGI_PEND_SET(2)		// 0xf18
#define GIC_SGI_PEND_SET3		GIC_SGI_PEND_SET(3)		// 0xf1C
#define GIC_SGI_PEND_CLR(_n)	(ARMA9_GIC_BASE + 0xf10 + 4 * (_n))
#define GIC_SGI_PEND_CLR0		GIC_SGI_PEND_CLR(0)		// 0xf20
#define GIC_SGI_PEND_CLR1		GIC_SGI_PEND_CLR(1)		// 0xf24
#define GIC_SGI_PEND_CLR2		GIC_SGI_PEND_CLR(2)		// 0xf28
#define GIC_SGI_PEND_CLR3		GIC_SGI_PEND_CLR(3)		// 0xf2C


#define GIC_CPU_IF_CTRL			(ARMA9_CPUIF_BASE + 0x000)	// 0x8000
#define GIC_INT_PRIO_MASK		(ARMA9_CPUIF_BASE + 0x004) // 0x8004
#define GIC_BINARY_POINT		(ARMA9_CPUIF_BASE + 0x008) // 0x8008
#define GIC_INT_ACK_REG			(ARMA9_CPUIF_BASE + 0x00c) // 0x800c
#define GIC_END_INT_REG			(ARMA9_CPUIF_BASE + 0x010) // 0x8010
#define GIC_RUNNING_PRIO		(ARMA9_CPUIF_BASE + 0x014) // 0x8014
#define GIC_HIGHEST_PENDINT		(ARMA9_CPUIF_BASE + 0x018) // 0x8018
#define GIC_DEACT_INT_REG		(ARMA9_CPUIF_BASE + 0x1000)// 0x1000
#define GIC_AIAR_REG			(ARMA9_CPUIF_BASE + 0x020) // 0x8020
#define GIC_AEOI_REG			(ARMA9_CPUIF_BASE + 0x024) // 0x8024
#define GIC_AHIGHEST_PENDINT	(ARMA9_CPUIF_BASE + 0x028) // 0x8028


/* gic source list */
/* software generated interrupt */
#define GIC_SRC_SGI(_n)		(_n)
#define GIC_SRC_SGI0		GIC_SRC_SGI(0 )  // (0 )
#define GIC_SRC_SGI1        GIC_SRC_SGI(1 )  // (1 )
#define GIC_SRC_SGI2        GIC_SRC_SGI(2 )  // (2 )
#define GIC_SRC_SGI3        GIC_SRC_SGI(3 )  // (3 )
#define GIC_SRC_SGI4        GIC_SRC_SGI(4 )  // (4 )
#define GIC_SRC_SGI5        GIC_SRC_SGI(5 )  // (5 )
#define GIC_SRC_SGI6        GIC_SRC_SGI(6 )  // (6 )
#define GIC_SRC_SGI7        GIC_SRC_SGI(7 )  // (7 )
#define GIC_SRC_SGI8        GIC_SRC_SGI(8 )  // (8 )
#define GIC_SRC_SGI9        GIC_SRC_SGI(9 )  // (9 )
#define GIC_SRC_SGI10       GIC_SRC_SGI(10)  // (10)
#define GIC_SRC_SGI11       GIC_SRC_SGI(11)  // (11)
#define GIC_SRC_SGI12       GIC_SRC_SGI(12)  // (12)
#define GIC_SRC_SGI13       GIC_SRC_SGI(13)  // (13)
#define GIC_SRC_SGI14       GIC_SRC_SGI(14)  // (14)
#define GIC_SRC_SGI15       GIC_SRC_SGI(15)  // (15)
/* private peripheral interrupt */
#define GIC_SRC_PPI(_n)		(16 + (_n))
#define GIC_SRC_PPI0		GIC_SRC_PPI(0 )  // (16)
#define GIC_SRC_PPI1        GIC_SRC_PPI(1 )  // (17)
#define GIC_SRC_PPI2        GIC_SRC_PPI(2 )  // (18)
#define GIC_SRC_PPI3        GIC_SRC_PPI(3 )  // (19)
#define GIC_SRC_PPI4        GIC_SRC_PPI(4 )  // (20)
#define GIC_SRC_PPI5        GIC_SRC_PPI(5 )  // (21)
#define GIC_SRC_PPI6        GIC_SRC_PPI(6 )  // (22)
#define GIC_SRC_PPI7        GIC_SRC_PPI(7 )  // (23)
#define GIC_SRC_PPI8        GIC_SRC_PPI(8 )  // (24)
#define GIC_SRC_PPI9        GIC_SRC_PPI(9 )  // (25)
#define GIC_SRC_PPI10       GIC_SRC_PPI(10)  // (26)
#define GIC_SRC_PPI11       GIC_SRC_PPI(11)  // (27)
#define GIC_SRC_PPI12       GIC_SRC_PPI(12)  // (28)
#define GIC_SRC_PPI13       GIC_SRC_PPI(13)  // (29)
#define GIC_SRC_PPI14       GIC_SRC_PPI(14)  // (30)
#define GIC_SRC_PPI15       GIC_SRC_PPI(15)  // (31)
/* external peripheral interrupt */
#define GIC_SRC_SPI(_n)		(32 + (_n))


#endif