aboutsummaryrefslogtreecommitdiff
path: root/include/libopencm3/lpc43xx/irq.h
blob: a83a8d77b3223695f81eece9b33b2423a2228517 (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
/*
 * This file is part of the libopencm3 project.
 *
 * Copyright (C) 2010 Piotr Esden-Tempski <piotr@esden.net>
 * Copyright (C) 2012 Michael Ossmann <mike@ossmann.com>
 * Copyright (C) 2012 chrysn <chrysn@fsfe.org>
 *
 * This library is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef LIBOPENCM3_LPC43XX_IRQ_H
#define LIBOPENCM3_LPC43XX_IRQ_H

#define IRQ_DAC                   0
#define IRQ_M0CORE                1
#define IRQ_DMA                   2
/* reserved:                      3 */
/* reserved:                      4 */
#define IRQ_ETHERNET              5
#define IRQ_SDIO                  6
#define IRQ_LCD                   7
#define IRQ_USB0                  8
#define IRQ_USB1                  9
#define IRQ_SCT                  10
#define IRQ_RITIMER              11
#define IRQ_TIMER0               12
#define IRQ_TIMER1               13
#define IRQ_TIMER2               14
#define IRQ_TIMER3               15
#define IRQ_MCPWM                16
#define IRQ_ADC0                 17
#define IRQ_I2C0                 18
#define IRQ_I2C1                 19
#define IRQ_SPI                  20
#define IRQ_ADC1                 21
#define IRQ_SSP0                 22
#define IRQ_SSP1                 23
#define IRQ_USART0               24
#define IRQ_UART1                25
#define IRQ_USART2               26
#define IRQ_USART3               27
#define IRQ_I2S0                 28
#define IRQ_I2S1                 29
#define IRQ_SPIFI                30
#define IRQ_SGPIO                31
#define IRQ_PIN_INT0             32
#define IRQ_PIN_INT1             33
#define IRQ_PIN_INT2             34
#define IRQ_PIN_INT3             35
#define IRQ_PIN_INT4             36
#define IRQ_PIN_INT5             37
#define IRQ_PIN_INT6             38
#define IRQ_PIN_INT7             39
#define IRQ_GINT0                40
#define IRQ_GINT1                41
#define IRQ_EVENTROUTER          42
#define IRQ_C_CAN1               43
/* reserved:                     44 */
/* reserved:                     45 */
#define IRQ_ATIMER               46
#define IRQ_RTC                  47
/* reserved:                     48 */
#define IRQ_WWDT                 49
/* reserved:                     50 */
#define IRQ_C_CAN0               51
#define IRQ_QEI                  52

#define IRQ_COUNT                53

#define WEAK __attribute__ ((weak))

void WEAK dac_irqhandler(void);
void WEAK m0core_irqhandler(void);
void WEAK dma_irqhandler(void);
void WEAK ethernet_irqhandler(void);
void WEAK sdio_irqhandler(void);
void WEAK lcd_irqhandler(void);
void WEAK usb0_irqhandler(void);
void WEAK usb1_irqhandler(void);
void WEAK sct_irqhandler(void);
void WEAK ritimer_irqhandler(void);
void WEAK timer0_irqhandler(void);
void WEAK timer1_irqhandler(void);
void WEAK timer2_irqhandler(void);
void WEAK timer3_irqhandler(void);
void WEAK mcpwm_irqhandler(void);
void WEAK adc0_irqhandler(void);
void WEAK i2c0_irqhandler(void);
void WEAK i2c1_irqhandler(void);
void WEAK spi_irqhandler(void);
void WEAK adc1_irqhandler(void);
void WEAK ssp0_irqhandler(void);
void WEAK ssp1_irqhandler(void);
void WEAK usart0_irqhandler(void);
void WEAK uart1_irqhandler(void);
void WEAK usart2_irqhandler(void);
void WEAK usart3_irqhandler(void);
void WEAK i2s0_irqhandler(void);
void WEAK i2s1_irqhandler(void);
void WEAK spifi_irqhandler(void);
void WEAK sgpio_irqhandler(void);
void WEAK pin_int0_irqhandler(void);
void WEAK pin_int1_irqhandler(void);
void WEAK pin_int2_irqhandler(void);
void WEAK pin_int3_irqhandler(void);
void WEAK pin_int4_irqhandler(void);
void WEAK pin_int5_irqhandler(void);
void WEAK pin_int6_irqhandler(void);
void WEAK pin_int7_irqhandler(void);
void WEAK gint0_irqhandler(void);
void WEAK gint1_irqhandler(void);
void WEAK eventrouter_irqhandler(void);
void WEAK c_can1_irqhandler(void);
void WEAK atimer_irqhandler(void);
void WEAK rtc_irqhandler(void);
void WEAK wwdt_irqhandler(void);
void WEAK c_can0_irqhandler(void);
void WEAK qei_irqhandler(void);

#pragma weak dac_irqhandler = null_handler
#pragma weak m0core_irqhandler = null_handler
#pragma weak dma_irqhandler = null_handler
#pragma weak ethernet_irqhandler = null_handler
#pragma weak sdio_irqhandler = null_handler
#pragma weak lcd_irqhandler = null_handler
#pragma weak usb0_irqhandler = null_handler
#pragma weak usb1_irqhandler = null_handler
#pragma weak sct_irqhandler = null_handler
#pragma weak ritimer_irqhandler = null_handler
#pragma weak timer0_irqhandler = null_handler
#pragma weak timer1_irqhandler = null_handler
#pragma weak timer2_irqhandler = null_handler
#pragma weak timer3_irqhandler = null_handler
#pragma weak mcpwm_irqhandler = null_handler
#pragma weak adc0_irqhandler = null_handler
#pragma weak i2c0_irqhandler = null_handler
#pragma weak i2c1_irqhandler = null_handler
#pragma weak spi_irqhandler = null_handler
#pragma weak adc1_irqhandler = null_handler
#pragma weak ssp0_irqhandler = null_handler
#pragma weak ssp1_irqhandler = null_handler
#pragma weak usart0_irqhandler = null_handler
#pragma weak uart1_irqhandler = null_handler
#pragma weak usart2_irqhandler = null_handler
#pragma weak usart3_irqhandler = null_handler
#pragma weak i2s0_irqhandler = null_handler
#pragma weak i2s1_irqhandler = null_handler
#pragma weak spifi_irqhandler = null_handler
#pragma weak sgpio_irqhandler = null_handler
#pragma weak pin_int0_irqhandler = null_handler
#pragma weak pin_int1_irqhandler = null_handler
#pragma weak pin_int2_irqhandler = null_handler
#pragma weak pin_int3_irqhandler = null_handler
#pragma weak pin_int4_irqhandler = null_handler
#pragma weak pin_int5_irqhandler = null_handler
#pragma weak pin_int6_irqhandler = null_handler
#pragma weak pin_int7_irqhandler = null_handler
#pragma weak gint0_irqhandler = null_handler
#pragma weak gint1_irqhandler = null_handler
#pragma weak eventrouter_irqhandler = null_handler
#pragma weak c_can1_irqhandler = null_handler
#pragma weak atimer_irqhandler = null_handler
#pragma weak rtc_irqhandler = null_handler
#pragma weak wwdt_irqhandler = null_handler
#pragma weak c_can0_irqhandler = null_handler
#pragma weak qei_irqhandler = null_handler

#define IRQ_HANDLERS \
	dac_irqhandler, \
	m0core_irqhandler, \
	dma_irqhandler, \
	0, /* reserved */ \
	0, /* reserved */ \
	ethernet_irqhandler, \
	sdio_irqhandler, \
	lcd_irqhandler, \
	usb0_irqhandler, \
	usb1_irqhandler, \
	sct_irqhandler, \
	ritimer_irqhandler, \
	timer0_irqhandler, \
	timer1_irqhandler, \
	timer2_irqhandler, \
	timer3_irqhandler, \
	mcpwm_irqhandler, \
	adc0_irqhandler, \
	i2c0_irqhandler, \
	i2c1_irqhandler, \
	spi_irqhandler, \
	adc1_irqhandler, \
	ssp0_irqhandler, \
	ssp1_irqhandler, \
	usart0_irqhandler, \
	uart1_irqhandler, \
	usart2_irqhandler, \
	usart3_irqhandler, \
	i2s0_irqhandler, \
	i2s1_irqhandler, \
	spifi_irqhandler, \
	sgpio_irqhandler, \
	pin_int0_irqhandler, \
	pin_int1_irqhandler, \
	pin_int2_irqhandler, \
	pin_int3_irqhandler, \
	pin_int4_irqhandler, \
	pin_int5_irqhandler, \
	pin_int6_irqhandler, \
	pin_int7_irqhandler, \
	gint0_irqhandler, \
	gint1_irqhandler, \
	eventrouter_irqhandler, \
	c_can1_irqhandler, \
	0, /* reserved */ \
	0, /* reserved */ \
	atimer_irqhandler, \
	rtc_irqhandler, \
	0, /* reserved */ \
	wwdt_irqhandler, \
	0, /* reserved */ \
	c_can0_irqhandler, \
	qei_irqhandler,

#endif