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
|
/****************************************************************************************
* arch/arm/include/a1x/a10_irq.h
*
* Copyright (C) 2013 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. 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.
* 3. Neither the name NuttX 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 OWNER 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.
*
****************************************************************************************/
/* This file should never be included directed but, rather, only indirectly through
* nuttx/irq.h
*/
#ifndef __ARCH_ARM_INCLUDE_A1X_A10_IRQ_H
#define __ARCH_ARM_INCLUDE_A1X_A10_IRQ_H
/****************************************************************************************
* Included Files
****************************************************************************************/
/****************************************************************************************
* Pre-Processor Definitions
****************************************************************************************/
/* External interrupts numbers */
#define A1X_IRQ_NMI 0 /* External Non-Mask Interrupt */
# define A1X_IRQ_POWER 0 /* Power module */
# define A1X_IRQ_BATTERY 0 /* Brownout detect */
# define A1X_IRQ_BROWNOUT 0 /* Brownout */
#define A1X_IRQ_UART0 1 /* UART 0 interrupt */
#define A1X_IRQ_UART1 2 /* UART 1 interrupt */
#define A1X_IRQ_UART2 3 /* UART 2 interrupt */
#define A1X_IRQ_UART3 4 /* UART 3 interrupt */
#define A1X_IRQ_IR0 5 /* IR 0 interrupt */
#define A1X_IRQ_IR1 6 /* IR 1 interrupt */
#define A1X_IRQ_TWI0 7 /* TWI 0 interrupt */
#define A1X_IRQ_TWI1 8 /* TWI 1 interrupt */
#define A1X_IRQ_TWI2 9 /* TWI 2 interrupt */
#define A1X_IRQ_SPI0 10 /* SPI 0 interrupt */
#define A1X_IRQ_SPI1 11 /* SPI 1 interrupt */
#define A1X_IRQ_SPI2 12 /* SPI 2 interrupt */
#define A1X_IRQ_NC 13 /* NC */
#define A1X_IRQ_AC97 14 /* AC97 interrupt */
#define A1X_IRQ_TS 15 /* TS interrupt */
#define A1X_IRQ_IIS 16 /* Digital Audio Controller interrupt */
#define A1X_IRQ_UART4 17 /* UART 4 interrupt */
#define A1X_IRQ_UART5 18 /* UART 5 interrupt */
#define A1X_IRQ_UART6 19 /* UART 6 interrupt */
#define A1X_IRQ_UART7 20 /* UART 7 interrupt */
#define A1X_IRQ_KEYPAD 21 /* Keypad interrupt */
#define A1X_IRQ_TIMER0 22 /* Timer port 0 */
#define A1X_IRQ_TIMER1 23 /* Timer port 1 */
#define A1X_IRQ_TIMER2 24 /* Timer 2 */
# define A1X_IRQ_ALARM 24 /* Alarm */
# define A1X_IRQ_WD 24 /* Watchdog */
#define A1X_IRQ_TIMER3 25 /* Timer 3 interrupt */
#define A1X_IRQ_CAN 26 /* CAN Bus controller interrupt */
#define A1X_IRQ_DMA 27 /* DMA channel interrupt */
#define A1X_IRQ_PIO 28 /* PIO interrupt */
#define A1X_IRQ_TOUCH 29 /* Touch Panel interrupt */
#define A1X_IRQ_AUDIO 30 /* Analog Audio Codec interrupt */
#define A1X_IRQ_LRADC 31 /* LRADC interrupt */
#define A1X_IRQ_SDMMC0 32 /* SD/MMC Host Controller 0 interrupt */
#define A1X_IRQ_SDMMC1 33 /* SD/MMC Host Controller 1 interrupt */
#define A1X_IRQ_SDMMC2 34 /* SD/MMC Host Controller 2 interrupt */
#define A1X_IRQ_SDMMC3 35 /* SD/MMC Host Controller 3 interrupt */
#define A1X_IRQ_RESERVED36 36
#define A1X_IRQ_NAND 37 /* NAND Flash Controller (NFC) interrupt */
#define A1X_IRQ_USB0 38 /* USB 0 wakeup, connect, disconnect interrupt */
#define A1X_IRQ_USB1 39 /* USB 1 wakeup, connect, disconnect interrupt */
#define A1X_IRQ_USB2 40 /* USB 2 wakeup, connect, disconnect interrupt */
#define A1X_IRQ_SCR 41 /* SCR interrupt */
#define A1X_IRQ_CSI0 42 /* CSI 0 interrupt */
#define A1X_IRQ_CSI1 43 /* CSI 1 interrupt */
#define A1X_IRQ_LCDC0 44 /* LCD Controller 0 interrupt */
#define A1X_IRQ_LCDC1 45 /* LCD Controller 1 interrupt */
#define A1X_IRQ_MP 46 /* MP interrupt */
#define A1X_IRQ_DEFE0 47 /* DE-FE0 interrupt */
# define A1X_IRQ_DEBE0 47 /* DE-BE0 interrupt */
#define A1X_IRQ_DEFE1 48 /* DE-FE1 interrupt */
# define A1X_IRQ_DEBE1 48 /* DE-BE1 interrupt */
#define A1X_IRQ_PMU 49 /* PMU interrupt */
#define A1X_IRQ_SPI3 50 /* SPI3 interrupt */
#define A1X_IRQ_TZASC 51 /* TZASC interrupt */
#define A1X_IRQ_PATA 52 /* PATA interrupt */
#define A1X_IRQ_VE 53 /* VE interrupt */
#define A1X_IRQ_SS 54 /* Security System interrupt */
#define A1X_IRQ_EMAC 55 /* EMAC interrupt */
#define A1X_IRQ_RESERVED56 56
#define A1X_IRQ_RESERVED57 57
#define A1X_IRQ_HDMI 58 /* HDMI interrupt */
#define A1X_IRQ_TVE 59 /* TV encoder 0/1 interrupt */
#define A1X_IRQ_ACE 60 /* ACE interrupt */
#define A1X_IRQ_TVD 61 /* TV decoder interrupt */
#define A1X_IRQ_PS20 62 /* PS2-0 interrupt */
#define A1X_IRQ_PS21 63 /* PS2-1 interrupt */
#define A1X_IRQ_USB3 64 /* USB 3 wakeup, connect, disconnect interrupt */
#define A1X_IRQ_USB4 65 /* USB 4 wakeup, connect, disconnect interrupt */
#define A1X_IRQ_PLE 66 /* PLE interrupts */
# define A1X_IRQ_PERFMU 66 /* Performance monitor interrupt */
#define A1X_IRQ_TIMER4 67 /* Timer 4 interrupt */
#define A1X_IRQ_TIMER5 68 /* Timer 5 interrupt */
#define A1X_IRQ_GPU_GP 69
#define A1X_IRQ_GPU_GPMMU 70
#define A1X_IRQ_GPU_PP0 71
#define A1X_IRQ_GPU_PPMMU0 72
#define A1X_IRQ_GPU_PMU 73
#define A1X_IRQ_GPU_RSV0 74
#define A1X_IRQ_GPU_RSV1 75
#define A1X_IRQ_GPU_RSV2 76
#define A1X_IRQ_GPU_RSV3 77
#define A1X_IRQ_GPU_RSV4 78
#define A1X_IRQ_GPU_RSV5 79
#define A1X_IRQ_GPU_RSV6 80
/* Total number of interrupts */
#define A1X_IRQ_NINT 81
/* Up to 32 external PIO interrupts */
#ifdef CONFIG_A1X_PIO_IRQ
# define A1X_PIO_EINT0 (A1X_IRQ_NINT+0)
# define A1X_PIO_EINT1 (A1X_IRQ_NINT+1)
# define A1X_PIO_EINT2 (A1X_IRQ_NINT+2)
# define A1X_PIO_EINT3 (A1X_IRQ_NINT+3)
# define A1X_PIO_EINT4 (A1X_IRQ_NINT+4)
# define A1X_PIO_EINT5 (A1X_IRQ_NINT+5)
# define A1X_PIO_EINT6 (A1X_IRQ_NINT+6)
# define A1X_PIO_EINT7 (A1X_IRQ_NINT+7)
# define A1X_PIO_EINT8 (A1X_IRQ_NINT+8)
# define A1X_PIO_EINT9 (A1X_IRQ_NINT+9)
# define A1X_PIO_EINT10 (A1X_IRQ_NINT+10)
# define A1X_PIO_EINT11 (A1X_IRQ_NINT+11)
# define A1X_PIO_EINT12 (A1X_IRQ_NINT+12)
# define A1X_PIO_EINT13 (A1X_IRQ_NINT+13)
# define A1X_PIO_EINT14 (A1X_IRQ_NINT+14)
# define A1X_PIO_EINT15 (A1X_IRQ_NINT+15)
# define A1X_PIO_EINT16 (A1X_IRQ_NINT+16)
# define A1X_PIO_EINT17 (A1X_IRQ_NINT+17)
# define A1X_PIO_EINT18 (A1X_IRQ_NINT+18)
# define A1X_PIO_EINT19 (A1X_IRQ_NINT+19)
# define A1X_PIO_EINT20 (A1X_IRQ_NINT+20)
# define A1X_PIO_EINT21 (A1X_IRQ_NINT+21)
# define A1X_PIO_EINT22 (A1X_IRQ_NINT+22)
# define A1X_PIO_EINT23 (A1X_IRQ_NINT+23)
# define A1X_PIO_EINT24 (A1X_IRQ_NINT+24)
# define A1X_PIO_EINT25 (A1X_IRQ_NINT+25)
# define A1X_PIO_EINT26 (A1X_IRQ_NINT+26)
# define A1X_PIO_EINT27 (A1X_IRQ_NINT+27)
# define A1X_PIO_EINT28 (A1X_IRQ_NINT+28)
# define A1X_PIO_EINT29 (A1X_IRQ_NINT+29)
# define A1X_PIO_EINT30 (A1X_IRQ_NINT+30)
# define A1X_PIO_EINT31 (A1X_IRQ_NINT+31)
# define A1X_PIO_NINT 32
#else
# define A1X_PIO_NINT 0
#endif
/* Total number of IRQ numbers */
#define NR_IRQS (A1X_IRQ_NINT + A1X_PIO_NINT)
/****************************************************************************************
* Public Types
****************************************************************************************/
/****************************************************************************************
* Inline functions
****************************************************************************************/
/****************************************************************************************
* Public Variables
****************************************************************************************/
/****************************************************************************************
* Public Function Prototypes
****************************************************************************************/
#ifndef __ASSEMBLY__
#ifdef __cplusplus
#define EXTERN extern "C"
extern "C" {
#else
#define EXTERN extern
#endif
#undef EXTERN
#ifdef __cplusplus
}
#endif
#endif
#endif /* __ARCH_ARM_INCLUDE_A1X_A10_IRQ_H */
|