diff options
author | Ludovic Desroches <ludovic.desroches@atmel.com> | 2012-06-11 09:38:03 -0400 |
---|---|---|
committer | Nicolas Ferre <nicolas.ferre@atmel.com> | 2012-07-02 08:26:58 -0400 |
commit | 3e135466745a62b1814edef74c7b4a25e6bda707 (patch) | |
tree | 77949a25a79b63bba42eb9485e2655d68007ae79 /arch/arm | |
parent | 3a6b37134c71be1b085be7fe5234f364dc68e2de (diff) |
ARM: at91: at91 based machines specify their own irq handler at run time
SOC_AT91SAM9 selects MULTI_IRQ_HANDLER in order to let machines specify their
own IRQ handler at run time.
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Diffstat (limited to 'arch/arm')
40 files changed, 98 insertions, 27 deletions
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index 19505c0a3f01..e401deaeea19 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig | |||
@@ -29,6 +29,7 @@ comment "Atmel AT91 Processor" | |||
29 | config SOC_AT91SAM9 | 29 | config SOC_AT91SAM9 |
30 | bool | 30 | bool |
31 | select CPU_ARM926T | 31 | select CPU_ARM926T |
32 | select MULTI_IRQ_HANDLER | ||
32 | select AT91_SAM9_TIME | 33 | select AT91_SAM9_TIME |
33 | select AT91_SAM9_SMC | 34 | select AT91_SAM9_SMC |
34 | 35 | ||
diff --git a/arch/arm/mach-at91/board-1arm.c b/arch/arm/mach-at91/board-1arm.c index 271f994314a4..22d8856094f1 100644 --- a/arch/arm/mach-at91/board-1arm.c +++ b/arch/arm/mach-at91/board-1arm.c | |||
@@ -36,6 +36,7 @@ | |||
36 | 36 | ||
37 | #include <mach/board.h> | 37 | #include <mach/board.h> |
38 | #include <mach/cpu.h> | 38 | #include <mach/cpu.h> |
39 | #include <mach/at91_aic.h> | ||
39 | 40 | ||
40 | #include "generic.h" | 41 | #include "generic.h" |
41 | 42 | ||
@@ -91,6 +92,7 @@ MACHINE_START(ONEARM, "Ajeco 1ARM single board computer") | |||
91 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 92 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
92 | .timer = &at91rm9200_timer, | 93 | .timer = &at91rm9200_timer, |
93 | .map_io = at91_map_io, | 94 | .map_io = at91_map_io, |
95 | .handle_irq = at91_aic_handle_irq, | ||
94 | .init_early = onearm_init_early, | 96 | .init_early = onearm_init_early, |
95 | .init_irq = at91_init_irq_default, | 97 | .init_irq = at91_init_irq_default, |
96 | .init_machine = onearm_board_init, | 98 | .init_machine = onearm_board_init, |
diff --git a/arch/arm/mach-at91/board-afeb-9260v1.c b/arch/arm/mach-at91/board-afeb-9260v1.c index b7d8aa7b81e6..de7be1931817 100644 --- a/arch/arm/mach-at91/board-afeb-9260v1.c +++ b/arch/arm/mach-at91/board-afeb-9260v1.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <asm/mach/irq.h> | 44 | #include <asm/mach/irq.h> |
45 | 45 | ||
46 | #include <mach/board.h> | 46 | #include <mach/board.h> |
47 | #include <mach/at91_aic.h> | ||
47 | 48 | ||
48 | #include "generic.h" | 49 | #include "generic.h" |
49 | 50 | ||
@@ -212,6 +213,7 @@ MACHINE_START(AFEB9260, "Custom afeb9260 board") | |||
212 | /* Maintainer: Sergey Lapin <slapin@ossfans.org> */ | 213 | /* Maintainer: Sergey Lapin <slapin@ossfans.org> */ |
213 | .timer = &at91sam926x_timer, | 214 | .timer = &at91sam926x_timer, |
214 | .map_io = at91_map_io, | 215 | .map_io = at91_map_io, |
216 | .handle_irq = at91_aic_handle_irq, | ||
215 | .init_early = afeb9260_init_early, | 217 | .init_early = afeb9260_init_early, |
216 | .init_irq = at91_init_irq_default, | 218 | .init_irq = at91_init_irq_default, |
217 | .init_machine = afeb9260_board_init, | 219 | .init_machine = afeb9260_board_init, |
diff --git a/arch/arm/mach-at91/board-cam60.c b/arch/arm/mach-at91/board-cam60.c index 29d3ef0a50fb..477e708497bc 100644 --- a/arch/arm/mach-at91/board-cam60.c +++ b/arch/arm/mach-at91/board-cam60.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <asm/mach/irq.h> | 39 | #include <asm/mach/irq.h> |
40 | 40 | ||
41 | #include <mach/board.h> | 41 | #include <mach/board.h> |
42 | #include <mach/at91_aic.h> | ||
42 | #include <mach/at91sam9_smc.h> | 43 | #include <mach/at91sam9_smc.h> |
43 | 44 | ||
44 | #include "sam9_smc.h" | 45 | #include "sam9_smc.h" |
@@ -188,6 +189,7 @@ MACHINE_START(CAM60, "KwikByte CAM60") | |||
188 | /* Maintainer: KwikByte */ | 189 | /* Maintainer: KwikByte */ |
189 | .timer = &at91sam926x_timer, | 190 | .timer = &at91sam926x_timer, |
190 | .map_io = at91_map_io, | 191 | .map_io = at91_map_io, |
192 | .handle_irq = at91_aic_handle_irq, | ||
191 | .init_early = cam60_init_early, | 193 | .init_early = cam60_init_early, |
192 | .init_irq = at91_init_irq_default, | 194 | .init_irq = at91_init_irq_default, |
193 | .init_machine = cam60_board_init, | 195 | .init_machine = cam60_board_init, |
diff --git a/arch/arm/mach-at91/board-carmeva.c b/arch/arm/mach-at91/board-carmeva.c index 44328a6d4609..a5b002f32a61 100644 --- a/arch/arm/mach-at91/board-carmeva.c +++ b/arch/arm/mach-at91/board-carmeva.c | |||
@@ -36,6 +36,7 @@ | |||
36 | 36 | ||
37 | #include <mach/hardware.h> | 37 | #include <mach/hardware.h> |
38 | #include <mach/board.h> | 38 | #include <mach/board.h> |
39 | #include <mach/at91_aic.h> | ||
39 | 40 | ||
40 | #include "generic.h" | 41 | #include "generic.h" |
41 | 42 | ||
@@ -158,6 +159,7 @@ MACHINE_START(CARMEVA, "Carmeva") | |||
158 | /* Maintainer: Conitec Datasystems */ | 159 | /* Maintainer: Conitec Datasystems */ |
159 | .timer = &at91rm9200_timer, | 160 | .timer = &at91rm9200_timer, |
160 | .map_io = at91_map_io, | 161 | .map_io = at91_map_io, |
162 | .handle_irq = at91_aic_handle_irq, | ||
161 | .init_early = carmeva_init_early, | 163 | .init_early = carmeva_init_early, |
162 | .init_irq = at91_init_irq_default, | 164 | .init_irq = at91_init_irq_default, |
163 | .init_machine = carmeva_board_init, | 165 | .init_machine = carmeva_board_init, |
diff --git a/arch/arm/mach-at91/board-cpu9krea.c b/arch/arm/mach-at91/board-cpu9krea.c index 69951ec7dbf3..ecbc13b594de 100644 --- a/arch/arm/mach-at91/board-cpu9krea.c +++ b/arch/arm/mach-at91/board-cpu9krea.c | |||
@@ -41,6 +41,7 @@ | |||
41 | 41 | ||
42 | #include <mach/hardware.h> | 42 | #include <mach/hardware.h> |
43 | #include <mach/board.h> | 43 | #include <mach/board.h> |
44 | #include <mach/at91_aic.h> | ||
44 | #include <mach/at91sam9_smc.h> | 45 | #include <mach/at91sam9_smc.h> |
45 | #include <mach/at91sam9260_matrix.h> | 46 | #include <mach/at91sam9260_matrix.h> |
46 | #include <mach/at91_matrix.h> | 47 | #include <mach/at91_matrix.h> |
@@ -376,6 +377,7 @@ MACHINE_START(CPUAT9G20, "Eukrea CPU9G20") | |||
376 | /* Maintainer: Eric Benard - EUKREA Electromatique */ | 377 | /* Maintainer: Eric Benard - EUKREA Electromatique */ |
377 | .timer = &at91sam926x_timer, | 378 | .timer = &at91sam926x_timer, |
378 | .map_io = at91_map_io, | 379 | .map_io = at91_map_io, |
380 | .handle_irq = at91_aic_handle_irq, | ||
379 | .init_early = cpu9krea_init_early, | 381 | .init_early = cpu9krea_init_early, |
380 | .init_irq = at91_init_irq_default, | 382 | .init_irq = at91_init_irq_default, |
381 | .init_machine = cpu9krea_board_init, | 383 | .init_machine = cpu9krea_board_init, |
diff --git a/arch/arm/mach-at91/board-cpuat91.c b/arch/arm/mach-at91/board-cpuat91.c index 895cf2dba612..2e6d043c82f2 100644 --- a/arch/arm/mach-at91/board-cpuat91.c +++ b/arch/arm/mach-at91/board-cpuat91.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <asm/mach/irq.h> | 37 | #include <asm/mach/irq.h> |
38 | 38 | ||
39 | #include <mach/board.h> | 39 | #include <mach/board.h> |
40 | #include <mach/at91_aic.h> | ||
40 | #include <mach/at91rm9200_mc.h> | 41 | #include <mach/at91rm9200_mc.h> |
41 | #include <mach/at91_ramc.h> | 42 | #include <mach/at91_ramc.h> |
42 | #include <mach/cpu.h> | 43 | #include <mach/cpu.h> |
@@ -178,6 +179,7 @@ MACHINE_START(CPUAT91, "Eukrea") | |||
178 | /* Maintainer: Eric Benard - EUKREA Electromatique */ | 179 | /* Maintainer: Eric Benard - EUKREA Electromatique */ |
179 | .timer = &at91rm9200_timer, | 180 | .timer = &at91rm9200_timer, |
180 | .map_io = at91_map_io, | 181 | .map_io = at91_map_io, |
182 | .handle_irq = at91_aic_handle_irq, | ||
181 | .init_early = cpuat91_init_early, | 183 | .init_early = cpuat91_init_early, |
182 | .init_irq = at91_init_irq_default, | 184 | .init_irq = at91_init_irq_default, |
183 | .init_machine = cpuat91_board_init, | 185 | .init_machine = cpuat91_board_init, |
diff --git a/arch/arm/mach-at91/board-csb337.c b/arch/arm/mach-at91/board-csb337.c index cd813361cd26..462bc319cbc5 100644 --- a/arch/arm/mach-at91/board-csb337.c +++ b/arch/arm/mach-at91/board-csb337.c | |||
@@ -39,6 +39,7 @@ | |||
39 | 39 | ||
40 | #include <mach/hardware.h> | 40 | #include <mach/hardware.h> |
41 | #include <mach/board.h> | 41 | #include <mach/board.h> |
42 | #include <mach/at91_aic.h> | ||
42 | 43 | ||
43 | #include "generic.h" | 44 | #include "generic.h" |
44 | 45 | ||
@@ -252,6 +253,7 @@ MACHINE_START(CSB337, "Cogent CSB337") | |||
252 | /* Maintainer: Bill Gatliff */ | 253 | /* Maintainer: Bill Gatliff */ |
253 | .timer = &at91rm9200_timer, | 254 | .timer = &at91rm9200_timer, |
254 | .map_io = at91_map_io, | 255 | .map_io = at91_map_io, |
256 | .handle_irq = at91_aic_handle_irq, | ||
255 | .init_early = csb337_init_early, | 257 | .init_early = csb337_init_early, |
256 | .init_irq = at91_init_irq_default, | 258 | .init_irq = at91_init_irq_default, |
257 | .init_machine = csb337_board_init, | 259 | .init_machine = csb337_board_init, |
diff --git a/arch/arm/mach-at91/board-csb637.c b/arch/arm/mach-at91/board-csb637.c index 7c8b05a57d7f..872871ab1160 100644 --- a/arch/arm/mach-at91/board-csb637.c +++ b/arch/arm/mach-at91/board-csb637.c | |||
@@ -36,6 +36,7 @@ | |||
36 | 36 | ||
37 | #include <mach/hardware.h> | 37 | #include <mach/hardware.h> |
38 | #include <mach/board.h> | 38 | #include <mach/board.h> |
39 | #include <mach/at91_aic.h> | ||
39 | 40 | ||
40 | #include "generic.h" | 41 | #include "generic.h" |
41 | 42 | ||
@@ -133,6 +134,7 @@ MACHINE_START(CSB637, "Cogent CSB637") | |||
133 | /* Maintainer: Bill Gatliff */ | 134 | /* Maintainer: Bill Gatliff */ |
134 | .timer = &at91rm9200_timer, | 135 | .timer = &at91rm9200_timer, |
135 | .map_io = at91_map_io, | 136 | .map_io = at91_map_io, |
137 | .handle_irq = at91_aic_handle_irq, | ||
136 | .init_early = csb637_init_early, | 138 | .init_early = csb637_init_early, |
137 | .init_irq = at91_init_irq_default, | 139 | .init_irq = at91_init_irq_default, |
138 | .init_machine = csb637_board_init, | 140 | .init_machine = csb637_board_init, |
diff --git a/arch/arm/mach-at91/board-dt.c b/arch/arm/mach-at91/board-dt.c index a1fce05aa7a5..e8f45c4e0ea8 100644 --- a/arch/arm/mach-at91/board-dt.c +++ b/arch/arm/mach-at91/board-dt.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/of_platform.h> | 16 | #include <linux/of_platform.h> |
17 | 17 | ||
18 | #include <mach/board.h> | 18 | #include <mach/board.h> |
19 | #include <mach/at91_aic.h> | ||
19 | 20 | ||
20 | #include <asm/setup.h> | 21 | #include <asm/setup.h> |
21 | #include <asm/irq.h> | 22 | #include <asm/irq.h> |
@@ -53,6 +54,7 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM (Device Tree)") | |||
53 | /* Maintainer: Atmel */ | 54 | /* Maintainer: Atmel */ |
54 | .timer = &at91sam926x_timer, | 55 | .timer = &at91sam926x_timer, |
55 | .map_io = at91_map_io, | 56 | .map_io = at91_map_io, |
57 | .handle_irq = at91_aic_handle_irq, | ||
56 | .init_early = at91_dt_initialize, | 58 | .init_early = at91_dt_initialize, |
57 | .init_irq = at91_dt_init_irq, | 59 | .init_irq = at91_dt_init_irq, |
58 | .init_machine = at91_dt_device_init, | 60 | .init_machine = at91_dt_device_init, |
diff --git a/arch/arm/mach-at91/board-eb01.c b/arch/arm/mach-at91/board-eb01.c index d2023f27c652..01f66e99ece7 100644 --- a/arch/arm/mach-at91/board-eb01.c +++ b/arch/arm/mach-at91/board-eb01.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <asm/mach/arch.h> | 28 | #include <asm/mach/arch.h> |
29 | #include <asm/mach/map.h> | 29 | #include <asm/mach/map.h> |
30 | #include <mach/board.h> | 30 | #include <mach/board.h> |
31 | #include <mach/at91_aic.h> | ||
31 | #include "generic.h" | 32 | #include "generic.h" |
32 | 33 | ||
33 | static void __init at91eb01_init_irq(void) | 34 | static void __init at91eb01_init_irq(void) |
@@ -43,6 +44,7 @@ static void __init at91eb01_init_early(void) | |||
43 | MACHINE_START(AT91EB01, "Atmel AT91 EB01") | 44 | MACHINE_START(AT91EB01, "Atmel AT91 EB01") |
44 | /* Maintainer: Greg Ungerer <gerg@snapgear.com> */ | 45 | /* Maintainer: Greg Ungerer <gerg@snapgear.com> */ |
45 | .timer = &at91x40_timer, | 46 | .timer = &at91x40_timer, |
47 | .handle_irq = at91_aic_handle_irq, | ||
46 | .init_early = at91eb01_init_early, | 48 | .init_early = at91eb01_init_early, |
47 | .init_irq = at91eb01_init_irq, | 49 | .init_irq = at91eb01_init_irq, |
48 | MACHINE_END | 50 | MACHINE_END |
diff --git a/arch/arm/mach-at91/board-eb9200.c b/arch/arm/mach-at91/board-eb9200.c index bd1017297989..d1e1f3fc0a47 100644 --- a/arch/arm/mach-at91/board-eb9200.c +++ b/arch/arm/mach-at91/board-eb9200.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <asm/mach/irq.h> | 36 | #include <asm/mach/irq.h> |
37 | 37 | ||
38 | #include <mach/board.h> | 38 | #include <mach/board.h> |
39 | #include <mach/at91_aic.h> | ||
39 | 40 | ||
40 | #include "generic.h" | 41 | #include "generic.h" |
41 | 42 | ||
@@ -118,6 +119,7 @@ static void __init eb9200_board_init(void) | |||
118 | MACHINE_START(ATEB9200, "Embest ATEB9200") | 119 | MACHINE_START(ATEB9200, "Embest ATEB9200") |
119 | .timer = &at91rm9200_timer, | 120 | .timer = &at91rm9200_timer, |
120 | .map_io = at91_map_io, | 121 | .map_io = at91_map_io, |
122 | .handle_irq = at91_aic_handle_irq, | ||
121 | .init_early = eb9200_init_early, | 123 | .init_early = eb9200_init_early, |
122 | .init_irq = at91_init_irq_default, | 124 | .init_irq = at91_init_irq_default, |
123 | .init_machine = eb9200_board_init, | 125 | .init_machine = eb9200_board_init, |
diff --git a/arch/arm/mach-at91/board-ecbat91.c b/arch/arm/mach-at91/board-ecbat91.c index 89cc3726a9ce..9c24cb25707c 100644 --- a/arch/arm/mach-at91/board-ecbat91.c +++ b/arch/arm/mach-at91/board-ecbat91.c | |||
@@ -39,6 +39,7 @@ | |||
39 | 39 | ||
40 | #include <mach/board.h> | 40 | #include <mach/board.h> |
41 | #include <mach/cpu.h> | 41 | #include <mach/cpu.h> |
42 | #include <mach/at91_aic.h> | ||
42 | 43 | ||
43 | #include "generic.h" | 44 | #include "generic.h" |
44 | 45 | ||
@@ -170,6 +171,7 @@ MACHINE_START(ECBAT91, "emQbit's ECB_AT91") | |||
170 | /* Maintainer: emQbit.com */ | 171 | /* Maintainer: emQbit.com */ |
171 | .timer = &at91rm9200_timer, | 172 | .timer = &at91rm9200_timer, |
172 | .map_io = at91_map_io, | 173 | .map_io = at91_map_io, |
174 | .handle_irq = at91_aic_handle_irq, | ||
173 | .init_early = ecb_at91init_early, | 175 | .init_early = ecb_at91init_early, |
174 | .init_irq = at91_init_irq_default, | 176 | .init_irq = at91_init_irq_default, |
175 | .init_machine = ecb_at91board_init, | 177 | .init_machine = ecb_at91board_init, |
diff --git a/arch/arm/mach-at91/board-eco920.c b/arch/arm/mach-at91/board-eco920.c index 558546cf63f4..82bdfde3405f 100644 --- a/arch/arm/mach-at91/board-eco920.c +++ b/arch/arm/mach-at91/board-eco920.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
26 | 26 | ||
27 | #include <mach/board.h> | 27 | #include <mach/board.h> |
28 | #include <mach/at91_aic.h> | ||
28 | #include <mach/at91rm9200_mc.h> | 29 | #include <mach/at91rm9200_mc.h> |
29 | #include <mach/at91_ramc.h> | 30 | #include <mach/at91_ramc.h> |
30 | #include <mach/cpu.h> | 31 | #include <mach/cpu.h> |
@@ -132,6 +133,7 @@ MACHINE_START(ECO920, "eco920") | |||
132 | /* Maintainer: Sascha Hauer */ | 133 | /* Maintainer: Sascha Hauer */ |
133 | .timer = &at91rm9200_timer, | 134 | .timer = &at91rm9200_timer, |
134 | .map_io = at91_map_io, | 135 | .map_io = at91_map_io, |
136 | .handle_irq = at91_aic_handle_irq, | ||
135 | .init_early = eco920_init_early, | 137 | .init_early = eco920_init_early, |
136 | .init_irq = at91_init_irq_default, | 138 | .init_irq = at91_init_irq_default, |
137 | .init_machine = eco920_board_init, | 139 | .init_machine = eco920_board_init, |
diff --git a/arch/arm/mach-at91/board-flexibity.c b/arch/arm/mach-at91/board-flexibity.c index 47658f78105d..6cc83a87d77c 100644 --- a/arch/arm/mach-at91/board-flexibity.c +++ b/arch/arm/mach-at91/board-flexibity.c | |||
@@ -34,6 +34,7 @@ | |||
34 | 34 | ||
35 | #include <mach/hardware.h> | 35 | #include <mach/hardware.h> |
36 | #include <mach/board.h> | 36 | #include <mach/board.h> |
37 | #include <mach/at91_aic.h> | ||
37 | 38 | ||
38 | #include "generic.h" | 39 | #include "generic.h" |
39 | 40 | ||
@@ -160,6 +161,7 @@ MACHINE_START(FLEXIBITY, "Flexibity Connect") | |||
160 | /* Maintainer: Maxim Osipov */ | 161 | /* Maintainer: Maxim Osipov */ |
161 | .timer = &at91sam926x_timer, | 162 | .timer = &at91sam926x_timer, |
162 | .map_io = at91_map_io, | 163 | .map_io = at91_map_io, |
164 | .handle_irq = at91_aic_handle_irq, | ||
163 | .init_early = flexibity_init_early, | 165 | .init_early = flexibity_init_early, |
164 | .init_irq = at91_init_irq_default, | 166 | .init_irq = at91_init_irq_default, |
165 | .init_machine = flexibity_board_init, | 167 | .init_machine = flexibity_board_init, |
diff --git a/arch/arm/mach-at91/board-foxg20.c b/arch/arm/mach-at91/board-foxg20.c index 33411e6ecb1f..69ab1247ef81 100644 --- a/arch/arm/mach-at91/board-foxg20.c +++ b/arch/arm/mach-at91/board-foxg20.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include <asm/mach/irq.h> | 42 | #include <asm/mach/irq.h> |
43 | 43 | ||
44 | #include <mach/board.h> | 44 | #include <mach/board.h> |
45 | #include <mach/at91_aic.h> | ||
45 | #include <mach/at91sam9_smc.h> | 46 | #include <mach/at91sam9_smc.h> |
46 | 47 | ||
47 | #include "sam9_smc.h" | 48 | #include "sam9_smc.h" |
@@ -262,6 +263,7 @@ MACHINE_START(ACMENETUSFOXG20, "Acme Systems srl FOX Board G20") | |||
262 | /* Maintainer: Sergio Tanzilli */ | 263 | /* Maintainer: Sergio Tanzilli */ |
263 | .timer = &at91sam926x_timer, | 264 | .timer = &at91sam926x_timer, |
264 | .map_io = at91_map_io, | 265 | .map_io = at91_map_io, |
266 | .handle_irq = at91_aic_handle_irq, | ||
265 | .init_early = foxg20_init_early, | 267 | .init_early = foxg20_init_early, |
266 | .init_irq = at91_init_irq_default, | 268 | .init_irq = at91_init_irq_default, |
267 | .init_machine = foxg20_board_init, | 269 | .init_machine = foxg20_board_init, |
diff --git a/arch/arm/mach-at91/board-gsia18s.c b/arch/arm/mach-at91/board-gsia18s.c index 3e0dfa643a86..a9d5e78118c5 100644 --- a/arch/arm/mach-at91/board-gsia18s.c +++ b/arch/arm/mach-at91/board-gsia18s.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
32 | 32 | ||
33 | #include <mach/board.h> | 33 | #include <mach/board.h> |
34 | #include <mach/at91_aic.h> | ||
34 | #include <mach/at91sam9_smc.h> | 35 | #include <mach/at91sam9_smc.h> |
35 | #include <mach/gsia18s.h> | 36 | #include <mach/gsia18s.h> |
36 | #include <mach/stamp9g20.h> | 37 | #include <mach/stamp9g20.h> |
@@ -575,6 +576,7 @@ static void __init gsia18s_board_init(void) | |||
575 | MACHINE_START(GSIA18S, "GS_IA18_S") | 576 | MACHINE_START(GSIA18S, "GS_IA18_S") |
576 | .timer = &at91sam926x_timer, | 577 | .timer = &at91sam926x_timer, |
577 | .map_io = at91_map_io, | 578 | .map_io = at91_map_io, |
579 | .handle_irq = at91_aic_handle_irq, | ||
578 | .init_early = gsia18s_init_early, | 580 | .init_early = gsia18s_init_early, |
579 | .init_irq = at91_init_irq_default, | 581 | .init_irq = at91_init_irq_default, |
580 | .init_machine = gsia18s_board_init, | 582 | .init_machine = gsia18s_board_init, |
diff --git a/arch/arm/mach-at91/board-kafa.c b/arch/arm/mach-at91/board-kafa.c index f260657f32bc..64c1dbf88a07 100644 --- a/arch/arm/mach-at91/board-kafa.c +++ b/arch/arm/mach-at91/board-kafa.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <asm/mach/irq.h> | 35 | #include <asm/mach/irq.h> |
36 | 36 | ||
37 | #include <mach/board.h> | 37 | #include <mach/board.h> |
38 | #include <mach/at91_aic.h> | ||
38 | #include <mach/cpu.h> | 39 | #include <mach/cpu.h> |
39 | 40 | ||
40 | #include "generic.h" | 41 | #include "generic.h" |
@@ -93,6 +94,7 @@ MACHINE_START(KAFA, "Sperry-Sun KAFA") | |||
93 | /* Maintainer: Sergei Sharonov */ | 94 | /* Maintainer: Sergei Sharonov */ |
94 | .timer = &at91rm9200_timer, | 95 | .timer = &at91rm9200_timer, |
95 | .map_io = at91_map_io, | 96 | .map_io = at91_map_io, |
97 | .handle_irq = at91_aic_handle_irq, | ||
96 | .init_early = kafa_init_early, | 98 | .init_early = kafa_init_early, |
97 | .init_irq = at91_init_irq_default, | 99 | .init_irq = at91_init_irq_default, |
98 | .init_machine = kafa_board_init, | 100 | .init_machine = kafa_board_init, |
diff --git a/arch/arm/mach-at91/board-kb9202.c b/arch/arm/mach-at91/board-kb9202.c index ba39db5482b9..5d96cb85175f 100644 --- a/arch/arm/mach-at91/board-kb9202.c +++ b/arch/arm/mach-at91/board-kb9202.c | |||
@@ -37,6 +37,7 @@ | |||
37 | 37 | ||
38 | #include <mach/board.h> | 38 | #include <mach/board.h> |
39 | #include <mach/cpu.h> | 39 | #include <mach/cpu.h> |
40 | #include <mach/at91_aic.h> | ||
40 | #include <mach/at91rm9200_mc.h> | 41 | #include <mach/at91rm9200_mc.h> |
41 | #include <mach/at91_ramc.h> | 42 | #include <mach/at91_ramc.h> |
42 | 43 | ||
@@ -133,6 +134,7 @@ MACHINE_START(KB9200, "KB920x") | |||
133 | /* Maintainer: KwikByte, Inc. */ | 134 | /* Maintainer: KwikByte, Inc. */ |
134 | .timer = &at91rm9200_timer, | 135 | .timer = &at91rm9200_timer, |
135 | .map_io = at91_map_io, | 136 | .map_io = at91_map_io, |
137 | .handle_irq = at91_aic_handle_irq, | ||
136 | .init_early = kb9202_init_early, | 138 | .init_early = kb9202_init_early, |
137 | .init_irq = at91_init_irq_default, | 139 | .init_irq = at91_init_irq_default, |
138 | .init_machine = kb9202_board_init, | 140 | .init_machine = kb9202_board_init, |
diff --git a/arch/arm/mach-at91/board-neocore926.c b/arch/arm/mach-at91/board-neocore926.c index d2f4cc161766..18103c5d993c 100644 --- a/arch/arm/mach-at91/board-neocore926.c +++ b/arch/arm/mach-at91/board-neocore926.c | |||
@@ -45,6 +45,7 @@ | |||
45 | 45 | ||
46 | #include <mach/hardware.h> | 46 | #include <mach/hardware.h> |
47 | #include <mach/board.h> | 47 | #include <mach/board.h> |
48 | #include <mach/at91_aic.h> | ||
48 | #include <mach/at91sam9_smc.h> | 49 | #include <mach/at91sam9_smc.h> |
49 | 50 | ||
50 | #include "sam9_smc.h" | 51 | #include "sam9_smc.h" |
@@ -378,6 +379,7 @@ MACHINE_START(NEOCORE926, "ADENEO NEOCORE 926") | |||
378 | /* Maintainer: ADENEO */ | 379 | /* Maintainer: ADENEO */ |
379 | .timer = &at91sam926x_timer, | 380 | .timer = &at91sam926x_timer, |
380 | .map_io = at91_map_io, | 381 | .map_io = at91_map_io, |
382 | .handle_irq = at91_aic_handle_irq, | ||
381 | .init_early = neocore926_init_early, | 383 | .init_early = neocore926_init_early, |
382 | .init_irq = at91_init_irq_default, | 384 | .init_irq = at91_init_irq_default, |
383 | .init_machine = neocore926_board_init, | 385 | .init_machine = neocore926_board_init, |
diff --git a/arch/arm/mach-at91/board-pcontrol-g20.c b/arch/arm/mach-at91/board-pcontrol-g20.c index 7fe638342421..9ca3e32c54cb 100644 --- a/arch/arm/mach-at91/board-pcontrol-g20.c +++ b/arch/arm/mach-at91/board-pcontrol-g20.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
31 | 31 | ||
32 | #include <mach/board.h> | 32 | #include <mach/board.h> |
33 | #include <mach/at91_aic.h> | ||
33 | #include <mach/at91sam9_smc.h> | 34 | #include <mach/at91sam9_smc.h> |
34 | #include <mach/stamp9g20.h> | 35 | #include <mach/stamp9g20.h> |
35 | 36 | ||
@@ -218,6 +219,7 @@ MACHINE_START(PCONTROL_G20, "PControl G20") | |||
218 | /* Maintainer: pgsellmann@portner-elektronik.at */ | 219 | /* Maintainer: pgsellmann@portner-elektronik.at */ |
219 | .timer = &at91sam926x_timer, | 220 | .timer = &at91sam926x_timer, |
220 | .map_io = at91_map_io, | 221 | .map_io = at91_map_io, |
222 | .handle_irq = at91_aic_handle_irq, | ||
221 | .init_early = pcontrol_g20_init_early, | 223 | .init_early = pcontrol_g20_init_early, |
222 | .init_irq = at91_init_irq_default, | 224 | .init_irq = at91_init_irq_default, |
223 | .init_machine = pcontrol_g20_board_init, | 225 | .init_machine = pcontrol_g20_board_init, |
diff --git a/arch/arm/mach-at91/board-picotux200.c b/arch/arm/mach-at91/board-picotux200.c index b45c0a5d5ca7..127065504508 100644 --- a/arch/arm/mach-at91/board-picotux200.c +++ b/arch/arm/mach-at91/board-picotux200.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <asm/mach/irq.h> | 38 | #include <asm/mach/irq.h> |
39 | 39 | ||
40 | #include <mach/board.h> | 40 | #include <mach/board.h> |
41 | #include <mach/at91_aic.h> | ||
41 | #include <mach/at91rm9200_mc.h> | 42 | #include <mach/at91rm9200_mc.h> |
42 | #include <mach/at91_ramc.h> | 43 | #include <mach/at91_ramc.h> |
43 | 44 | ||
@@ -120,6 +121,7 @@ MACHINE_START(PICOTUX2XX, "picotux 200") | |||
120 | /* Maintainer: Kleinhenz Elektronik GmbH */ | 121 | /* Maintainer: Kleinhenz Elektronik GmbH */ |
121 | .timer = &at91rm9200_timer, | 122 | .timer = &at91rm9200_timer, |
122 | .map_io = at91_map_io, | 123 | .map_io = at91_map_io, |
124 | .handle_irq = at91_aic_handle_irq, | ||
123 | .init_early = picotux200_init_early, | 125 | .init_early = picotux200_init_early, |
124 | .init_irq = at91_init_irq_default, | 126 | .init_irq = at91_init_irq_default, |
125 | .init_machine = picotux200_board_init, | 127 | .init_machine = picotux200_board_init, |
diff --git a/arch/arm/mach-at91/board-qil-a9260.c b/arch/arm/mach-at91/board-qil-a9260.c index 0c61bf0d272c..bf351e285422 100644 --- a/arch/arm/mach-at91/board-qil-a9260.c +++ b/arch/arm/mach-at91/board-qil-a9260.c | |||
@@ -41,6 +41,7 @@ | |||
41 | 41 | ||
42 | #include <mach/hardware.h> | 42 | #include <mach/hardware.h> |
43 | #include <mach/board.h> | 43 | #include <mach/board.h> |
44 | #include <mach/at91_aic.h> | ||
44 | #include <mach/at91sam9_smc.h> | 45 | #include <mach/at91sam9_smc.h> |
45 | #include <mach/at91_shdwc.h> | 46 | #include <mach/at91_shdwc.h> |
46 | 47 | ||
@@ -258,6 +259,7 @@ MACHINE_START(QIL_A9260, "CALAO QIL_A9260") | |||
258 | /* Maintainer: calao-systems */ | 259 | /* Maintainer: calao-systems */ |
259 | .timer = &at91sam926x_timer, | 260 | .timer = &at91sam926x_timer, |
260 | .map_io = at91_map_io, | 261 | .map_io = at91_map_io, |
262 | .handle_irq = at91_aic_handle_irq, | ||
261 | .init_early = ek_init_early, | 263 | .init_early = ek_init_early, |
262 | .init_irq = at91_init_irq_default, | 264 | .init_irq = at91_init_irq_default, |
263 | .init_machine = ek_board_init, | 265 | .init_machine = ek_board_init, |
diff --git a/arch/arm/mach-at91/board-rm9200dk.c b/arch/arm/mach-at91/board-rm9200dk.c index afd7a4713766..cc2bf9796073 100644 --- a/arch/arm/mach-at91/board-rm9200dk.c +++ b/arch/arm/mach-at91/board-rm9200dk.c | |||
@@ -40,6 +40,7 @@ | |||
40 | 40 | ||
41 | #include <mach/hardware.h> | 41 | #include <mach/hardware.h> |
42 | #include <mach/board.h> | 42 | #include <mach/board.h> |
43 | #include <mach/at91_aic.h> | ||
43 | #include <mach/at91rm9200_mc.h> | 44 | #include <mach/at91rm9200_mc.h> |
44 | #include <mach/at91_ramc.h> | 45 | #include <mach/at91_ramc.h> |
45 | 46 | ||
@@ -223,6 +224,7 @@ MACHINE_START(AT91RM9200DK, "Atmel AT91RM9200-DK") | |||
223 | /* Maintainer: SAN People/Atmel */ | 224 | /* Maintainer: SAN People/Atmel */ |
224 | .timer = &at91rm9200_timer, | 225 | .timer = &at91rm9200_timer, |
225 | .map_io = at91_map_io, | 226 | .map_io = at91_map_io, |
227 | .handle_irq = at91_aic_handle_irq, | ||
226 | .init_early = dk_init_early, | 228 | .init_early = dk_init_early, |
227 | .init_irq = at91_init_irq_default, | 229 | .init_irq = at91_init_irq_default, |
228 | .init_machine = dk_board_init, | 230 | .init_machine = dk_board_init, |
diff --git a/arch/arm/mach-at91/board-rm9200ek.c b/arch/arm/mach-at91/board-rm9200ek.c index 2b15b8adec4c..62e19e64c9d3 100644 --- a/arch/arm/mach-at91/board-rm9200ek.c +++ b/arch/arm/mach-at91/board-rm9200ek.c | |||
@@ -40,6 +40,7 @@ | |||
40 | 40 | ||
41 | #include <mach/hardware.h> | 41 | #include <mach/hardware.h> |
42 | #include <mach/board.h> | 42 | #include <mach/board.h> |
43 | #include <mach/at91_aic.h> | ||
43 | #include <mach/at91rm9200_mc.h> | 44 | #include <mach/at91rm9200_mc.h> |
44 | #include <mach/at91_ramc.h> | 45 | #include <mach/at91_ramc.h> |
45 | 46 | ||
@@ -190,6 +191,7 @@ MACHINE_START(AT91RM9200EK, "Atmel AT91RM9200-EK") | |||
190 | /* Maintainer: SAN People/Atmel */ | 191 | /* Maintainer: SAN People/Atmel */ |
191 | .timer = &at91rm9200_timer, | 192 | .timer = &at91rm9200_timer, |
192 | .map_io = at91_map_io, | 193 | .map_io = at91_map_io, |
194 | .handle_irq = at91_aic_handle_irq, | ||
193 | .init_early = ek_init_early, | 195 | .init_early = ek_init_early, |
194 | .init_irq = at91_init_irq_default, | 196 | .init_irq = at91_init_irq_default, |
195 | .init_machine = ek_board_init, | 197 | .init_machine = ek_board_init, |
diff --git a/arch/arm/mach-at91/board-rsi-ews.c b/arch/arm/mach-at91/board-rsi-ews.c index 24ab9be7510f..c3b43aefdb75 100644 --- a/arch/arm/mach-at91/board-rsi-ews.c +++ b/arch/arm/mach-at91/board-rsi-ews.c | |||
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
28 | #include <mach/board.h> | 28 | #include <mach/board.h> |
29 | #include <mach/at91_aic.h> | ||
29 | 30 | ||
30 | #include <linux/gpio.h> | 31 | #include <linux/gpio.h> |
31 | 32 | ||
@@ -225,6 +226,7 @@ MACHINE_START(RSI_EWS, "RSI EWS") | |||
225 | /* Maintainer: Josef Holzmayr <holzmayr@rsi-elektrotechnik.de> */ | 226 | /* Maintainer: Josef Holzmayr <holzmayr@rsi-elektrotechnik.de> */ |
226 | .timer = &at91rm9200_timer, | 227 | .timer = &at91rm9200_timer, |
227 | .map_io = at91_map_io, | 228 | .map_io = at91_map_io, |
229 | .handle_irq = at91_aic_handle_irq, | ||
228 | .init_early = rsi_ews_init_early, | 230 | .init_early = rsi_ews_init_early, |
229 | .init_irq = at91_init_irq_default, | 231 | .init_irq = at91_init_irq_default, |
230 | .init_machine = rsi_ews_board_init, | 232 | .init_machine = rsi_ews_board_init, |
diff --git a/arch/arm/mach-at91/board-sam9-l9260.c b/arch/arm/mach-at91/board-sam9-l9260.c index cdd21f2595d2..7bf6da70d7d5 100644 --- a/arch/arm/mach-at91/board-sam9-l9260.c +++ b/arch/arm/mach-at91/board-sam9-l9260.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <asm/mach/irq.h> | 38 | #include <asm/mach/irq.h> |
39 | 39 | ||
40 | #include <mach/board.h> | 40 | #include <mach/board.h> |
41 | #include <mach/at91_aic.h> | ||
41 | #include <mach/at91sam9_smc.h> | 42 | #include <mach/at91sam9_smc.h> |
42 | 43 | ||
43 | #include "sam9_smc.h" | 44 | #include "sam9_smc.h" |
@@ -202,6 +203,7 @@ MACHINE_START(SAM9_L9260, "Olimex SAM9-L9260") | |||
202 | /* Maintainer: Olimex */ | 203 | /* Maintainer: Olimex */ |
203 | .timer = &at91sam926x_timer, | 204 | .timer = &at91sam926x_timer, |
204 | .map_io = at91_map_io, | 205 | .map_io = at91_map_io, |
206 | .handle_irq = at91_aic_handle_irq, | ||
205 | .init_early = ek_init_early, | 207 | .init_early = ek_init_early, |
206 | .init_irq = at91_init_irq_default, | 208 | .init_irq = at91_init_irq_default, |
207 | .init_machine = ek_board_init, | 209 | .init_machine = ek_board_init, |
diff --git a/arch/arm/mach-at91/board-sam9260ek.c b/arch/arm/mach-at91/board-sam9260ek.c index 7b3c3913551a..889c1bf71eb5 100644 --- a/arch/arm/mach-at91/board-sam9260ek.c +++ b/arch/arm/mach-at91/board-sam9260ek.c | |||
@@ -42,6 +42,7 @@ | |||
42 | 42 | ||
43 | #include <mach/hardware.h> | 43 | #include <mach/hardware.h> |
44 | #include <mach/board.h> | 44 | #include <mach/board.h> |
45 | #include <mach/at91_aic.h> | ||
45 | #include <mach/at91sam9_smc.h> | 46 | #include <mach/at91sam9_smc.h> |
46 | #include <mach/at91_shdwc.h> | 47 | #include <mach/at91_shdwc.h> |
47 | #include <mach/system_rev.h> | 48 | #include <mach/system_rev.h> |
@@ -344,6 +345,7 @@ MACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK") | |||
344 | /* Maintainer: Atmel */ | 345 | /* Maintainer: Atmel */ |
345 | .timer = &at91sam926x_timer, | 346 | .timer = &at91sam926x_timer, |
346 | .map_io = at91_map_io, | 347 | .map_io = at91_map_io, |
348 | .handle_irq = at91_aic_handle_irq, | ||
347 | .init_early = ek_init_early, | 349 | .init_early = ek_init_early, |
348 | .init_irq = at91_init_irq_default, | 350 | .init_irq = at91_init_irq_default, |
349 | .init_machine = ek_board_init, | 351 | .init_machine = ek_board_init, |
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c index 2736453821b0..2269be5fa384 100644 --- a/arch/arm/mach-at91/board-sam9261ek.c +++ b/arch/arm/mach-at91/board-sam9261ek.c | |||
@@ -46,6 +46,7 @@ | |||
46 | 46 | ||
47 | #include <mach/hardware.h> | 47 | #include <mach/hardware.h> |
48 | #include <mach/board.h> | 48 | #include <mach/board.h> |
49 | #include <mach/at91_aic.h> | ||
49 | #include <mach/at91sam9_smc.h> | 50 | #include <mach/at91sam9_smc.h> |
50 | #include <mach/at91_shdwc.h> | 51 | #include <mach/at91_shdwc.h> |
51 | #include <mach/system_rev.h> | 52 | #include <mach/system_rev.h> |
@@ -615,6 +616,7 @@ MACHINE_START(AT91SAM9G10EK, "Atmel AT91SAM9G10-EK") | |||
615 | /* Maintainer: Atmel */ | 616 | /* Maintainer: Atmel */ |
616 | .timer = &at91sam926x_timer, | 617 | .timer = &at91sam926x_timer, |
617 | .map_io = at91_map_io, | 618 | .map_io = at91_map_io, |
619 | .handle_irq = at91_aic_handle_irq, | ||
618 | .init_early = ek_init_early, | 620 | .init_early = ek_init_early, |
619 | .init_irq = at91_init_irq_default, | 621 | .init_irq = at91_init_irq_default, |
620 | .init_machine = ek_board_init, | 622 | .init_machine = ek_board_init, |
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c index 983cb98d2465..82adf581afc2 100644 --- a/arch/arm/mach-at91/board-sam9263ek.c +++ b/arch/arm/mach-at91/board-sam9263ek.c | |||
@@ -45,6 +45,7 @@ | |||
45 | 45 | ||
46 | #include <mach/hardware.h> | 46 | #include <mach/hardware.h> |
47 | #include <mach/board.h> | 47 | #include <mach/board.h> |
48 | #include <mach/at91_aic.h> | ||
48 | #include <mach/at91sam9_smc.h> | 49 | #include <mach/at91sam9_smc.h> |
49 | #include <mach/at91_shdwc.h> | 50 | #include <mach/at91_shdwc.h> |
50 | #include <mach/system_rev.h> | 51 | #include <mach/system_rev.h> |
@@ -443,6 +444,7 @@ MACHINE_START(AT91SAM9263EK, "Atmel AT91SAM9263-EK") | |||
443 | /* Maintainer: Atmel */ | 444 | /* Maintainer: Atmel */ |
444 | .timer = &at91sam926x_timer, | 445 | .timer = &at91sam926x_timer, |
445 | .map_io = at91_map_io, | 446 | .map_io = at91_map_io, |
447 | .handle_irq = at91_aic_handle_irq, | ||
446 | .init_early = ek_init_early, | 448 | .init_early = ek_init_early, |
447 | .init_irq = at91_init_irq_default, | 449 | .init_irq = at91_init_irq_default, |
448 | .init_machine = ek_board_init, | 450 | .init_machine = ek_board_init, |
diff --git a/arch/arm/mach-at91/board-sam9g20ek.c b/arch/arm/mach-at91/board-sam9g20ek.c index 6860d3451100..4ea4ee00364b 100644 --- a/arch/arm/mach-at91/board-sam9g20ek.c +++ b/arch/arm/mach-at91/board-sam9g20ek.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <asm/mach/irq.h> | 44 | #include <asm/mach/irq.h> |
45 | 45 | ||
46 | #include <mach/board.h> | 46 | #include <mach/board.h> |
47 | #include <mach/at91_aic.h> | ||
47 | #include <mach/at91sam9_smc.h> | 48 | #include <mach/at91sam9_smc.h> |
48 | #include <mach/system_rev.h> | 49 | #include <mach/system_rev.h> |
49 | 50 | ||
@@ -413,6 +414,7 @@ MACHINE_START(AT91SAM9G20EK, "Atmel AT91SAM9G20-EK") | |||
413 | /* Maintainer: Atmel */ | 414 | /* Maintainer: Atmel */ |
414 | .timer = &at91sam926x_timer, | 415 | .timer = &at91sam926x_timer, |
415 | .map_io = at91_map_io, | 416 | .map_io = at91_map_io, |
417 | .handle_irq = at91_aic_handle_irq, | ||
416 | .init_early = ek_init_early, | 418 | .init_early = ek_init_early, |
417 | .init_irq = at91_init_irq_default, | 419 | .init_irq = at91_init_irq_default, |
418 | .init_machine = ek_board_init, | 420 | .init_machine = ek_board_init, |
@@ -422,6 +424,7 @@ MACHINE_START(AT91SAM9G20EK_2MMC, "Atmel AT91SAM9G20-EK 2 MMC Slot Mod") | |||
422 | /* Maintainer: Atmel */ | 424 | /* Maintainer: Atmel */ |
423 | .timer = &at91sam926x_timer, | 425 | .timer = &at91sam926x_timer, |
424 | .map_io = at91_map_io, | 426 | .map_io = at91_map_io, |
427 | .handle_irq = at91_aic_handle_irq, | ||
425 | .init_early = ek_init_early, | 428 | .init_early = ek_init_early, |
426 | .init_irq = at91_init_irq_default, | 429 | .init_irq = at91_init_irq_default, |
427 | .init_machine = ek_board_init, | 430 | .init_machine = ek_board_init, |
diff --git a/arch/arm/mach-at91/board-sam9m10g45ek.c b/arch/arm/mach-at91/board-sam9m10g45ek.c index 63163dc7df46..3d48ec154685 100644 --- a/arch/arm/mach-at91/board-sam9m10g45ek.c +++ b/arch/arm/mach-at91/board-sam9m10g45ek.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include <asm/mach/irq.h> | 43 | #include <asm/mach/irq.h> |
44 | 44 | ||
45 | #include <mach/board.h> | 45 | #include <mach/board.h> |
46 | #include <mach/at91_aic.h> | ||
46 | #include <mach/at91sam9_smc.h> | 47 | #include <mach/at91sam9_smc.h> |
47 | #include <mach/at91_shdwc.h> | 48 | #include <mach/at91_shdwc.h> |
48 | #include <mach/system_rev.h> | 49 | #include <mach/system_rev.h> |
@@ -503,6 +504,7 @@ MACHINE_START(AT91SAM9M10G45EK, "Atmel AT91SAM9M10G45-EK") | |||
503 | /* Maintainer: Atmel */ | 504 | /* Maintainer: Atmel */ |
504 | .timer = &at91sam926x_timer, | 505 | .timer = &at91sam926x_timer, |
505 | .map_io = at91_map_io, | 506 | .map_io = at91_map_io, |
507 | .handle_irq = at91_aic_handle_irq, | ||
506 | .init_early = ek_init_early, | 508 | .init_early = ek_init_early, |
507 | .init_irq = at91_init_irq_default, | 509 | .init_irq = at91_init_irq_default, |
508 | .init_machine = ek_board_init, | 510 | .init_machine = ek_board_init, |
diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c index be3239f13daa..e7dc3ead7045 100644 --- a/arch/arm/mach-at91/board-sam9rlek.c +++ b/arch/arm/mach-at91/board-sam9rlek.c | |||
@@ -31,6 +31,7 @@ | |||
31 | 31 | ||
32 | #include <mach/hardware.h> | 32 | #include <mach/hardware.h> |
33 | #include <mach/board.h> | 33 | #include <mach/board.h> |
34 | #include <mach/at91_aic.h> | ||
34 | #include <mach/at91sam9_smc.h> | 35 | #include <mach/at91sam9_smc.h> |
35 | #include <mach/at91_shdwc.h> | 36 | #include <mach/at91_shdwc.h> |
36 | 37 | ||
@@ -319,6 +320,7 @@ MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK") | |||
319 | /* Maintainer: Atmel */ | 320 | /* Maintainer: Atmel */ |
320 | .timer = &at91sam926x_timer, | 321 | .timer = &at91sam926x_timer, |
321 | .map_io = at91_map_io, | 322 | .map_io = at91_map_io, |
323 | .handle_irq = at91_aic_handle_irq, | ||
322 | .init_early = ek_init_early, | 324 | .init_early = ek_init_early, |
323 | .init_irq = at91_init_irq_default, | 325 | .init_irq = at91_init_irq_default, |
324 | .init_machine = ek_board_init, | 326 | .init_machine = ek_board_init, |
diff --git a/arch/arm/mach-at91/board-snapper9260.c b/arch/arm/mach-at91/board-snapper9260.c index 9d446f1bb45f..a4e031a039fd 100644 --- a/arch/arm/mach-at91/board-snapper9260.c +++ b/arch/arm/mach-at91/board-snapper9260.c | |||
@@ -33,6 +33,7 @@ | |||
33 | 33 | ||
34 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
35 | #include <mach/board.h> | 35 | #include <mach/board.h> |
36 | #include <mach/at91_aic.h> | ||
36 | #include <mach/at91sam9_smc.h> | 37 | #include <mach/at91sam9_smc.h> |
37 | 38 | ||
38 | #include "sam9_smc.h" | 39 | #include "sam9_smc.h" |
@@ -178,6 +179,7 @@ static void __init snapper9260_board_init(void) | |||
178 | MACHINE_START(SNAPPER_9260, "Bluewater Systems Snapper 9260/9G20 module") | 179 | MACHINE_START(SNAPPER_9260, "Bluewater Systems Snapper 9260/9G20 module") |
179 | .timer = &at91sam926x_timer, | 180 | .timer = &at91sam926x_timer, |
180 | .map_io = at91_map_io, | 181 | .map_io = at91_map_io, |
182 | .handle_irq = at91_aic_handle_irq, | ||
181 | .init_early = snapper9260_init_early, | 183 | .init_early = snapper9260_init_early, |
182 | .init_irq = at91_init_irq_default, | 184 | .init_irq = at91_init_irq_default, |
183 | .init_machine = snapper9260_board_init, | 185 | .init_machine = snapper9260_board_init, |
diff --git a/arch/arm/mach-at91/board-stamp9g20.c b/arch/arm/mach-at91/board-stamp9g20.c index ee86f9d7ee72..29eae1626bf7 100644 --- a/arch/arm/mach-at91/board-stamp9g20.c +++ b/arch/arm/mach-at91/board-stamp9g20.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
27 | 27 | ||
28 | #include <mach/board.h> | 28 | #include <mach/board.h> |
29 | #include <mach/at91_aic.h> | ||
29 | #include <mach/at91sam9_smc.h> | 30 | #include <mach/at91sam9_smc.h> |
30 | 31 | ||
31 | #include "sam9_smc.h" | 32 | #include "sam9_smc.h" |
@@ -287,6 +288,7 @@ MACHINE_START(PORTUXG20, "taskit PortuxG20") | |||
287 | /* Maintainer: taskit GmbH */ | 288 | /* Maintainer: taskit GmbH */ |
288 | .timer = &at91sam926x_timer, | 289 | .timer = &at91sam926x_timer, |
289 | .map_io = at91_map_io, | 290 | .map_io = at91_map_io, |
291 | .handle_irq = at91_aic_handle_irq, | ||
290 | .init_early = stamp9g20_init_early, | 292 | .init_early = stamp9g20_init_early, |
291 | .init_irq = at91_init_irq_default, | 293 | .init_irq = at91_init_irq_default, |
292 | .init_machine = portuxg20_board_init, | 294 | .init_machine = portuxg20_board_init, |
@@ -296,6 +298,7 @@ MACHINE_START(STAMP9G20, "taskit Stamp9G20") | |||
296 | /* Maintainer: taskit GmbH */ | 298 | /* Maintainer: taskit GmbH */ |
297 | .timer = &at91sam926x_timer, | 299 | .timer = &at91sam926x_timer, |
298 | .map_io = at91_map_io, | 300 | .map_io = at91_map_io, |
301 | .handle_irq = at91_aic_handle_irq, | ||
299 | .init_early = stamp9g20_init_early, | 302 | .init_early = stamp9g20_init_early, |
300 | .init_irq = at91_init_irq_default, | 303 | .init_irq = at91_init_irq_default, |
301 | .init_machine = stamp9g20evb_board_init, | 304 | .init_machine = stamp9g20evb_board_init, |
diff --git a/arch/arm/mach-at91/board-usb-a926x.c b/arch/arm/mach-at91/board-usb-a926x.c index 95393fcaf199..c1476b9fe7b9 100644 --- a/arch/arm/mach-at91/board-usb-a926x.c +++ b/arch/arm/mach-at91/board-usb-a926x.c | |||
@@ -42,6 +42,7 @@ | |||
42 | 42 | ||
43 | #include <mach/hardware.h> | 43 | #include <mach/hardware.h> |
44 | #include <mach/board.h> | 44 | #include <mach/board.h> |
45 | #include <mach/at91_aic.h> | ||
45 | #include <mach/at91sam9_smc.h> | 46 | #include <mach/at91sam9_smc.h> |
46 | #include <mach/at91_shdwc.h> | 47 | #include <mach/at91_shdwc.h> |
47 | 48 | ||
@@ -358,6 +359,7 @@ MACHINE_START(USB_A9263, "CALAO USB_A9263") | |||
358 | /* Maintainer: calao-systems */ | 359 | /* Maintainer: calao-systems */ |
359 | .timer = &at91sam926x_timer, | 360 | .timer = &at91sam926x_timer, |
360 | .map_io = at91_map_io, | 361 | .map_io = at91_map_io, |
362 | .handle_irq = at91_aic_handle_irq, | ||
361 | .init_early = ek_init_early, | 363 | .init_early = ek_init_early, |
362 | .init_irq = at91_init_irq_default, | 364 | .init_irq = at91_init_irq_default, |
363 | .init_machine = ek_board_init, | 365 | .init_machine = ek_board_init, |
@@ -367,6 +369,7 @@ MACHINE_START(USB_A9260, "CALAO USB_A9260") | |||
367 | /* Maintainer: calao-systems */ | 369 | /* Maintainer: calao-systems */ |
368 | .timer = &at91sam926x_timer, | 370 | .timer = &at91sam926x_timer, |
369 | .map_io = at91_map_io, | 371 | .map_io = at91_map_io, |
372 | .handle_irq = at91_aic_handle_irq, | ||
370 | .init_early = ek_init_early, | 373 | .init_early = ek_init_early, |
371 | .init_irq = at91_init_irq_default, | 374 | .init_irq = at91_init_irq_default, |
372 | .init_machine = ek_board_init, | 375 | .init_machine = ek_board_init, |
@@ -376,6 +379,7 @@ MACHINE_START(USB_A9G20, "CALAO USB_A92G0") | |||
376 | /* Maintainer: Jean-Christophe PLAGNIOL-VILLARD */ | 379 | /* Maintainer: Jean-Christophe PLAGNIOL-VILLARD */ |
377 | .timer = &at91sam926x_timer, | 380 | .timer = &at91sam926x_timer, |
378 | .map_io = at91_map_io, | 381 | .map_io = at91_map_io, |
382 | .handle_irq = at91_aic_handle_irq, | ||
379 | .init_early = ek_init_early, | 383 | .init_early = ek_init_early, |
380 | .init_irq = at91_init_irq_default, | 384 | .init_irq = at91_init_irq_default, |
381 | .init_machine = ek_board_init, | 385 | .init_machine = ek_board_init, |
diff --git a/arch/arm/mach-at91/board-yl-9200.c b/arch/arm/mach-at91/board-yl-9200.c index d56665ea4b55..516d340549d8 100644 --- a/arch/arm/mach-at91/board-yl-9200.c +++ b/arch/arm/mach-at91/board-yl-9200.c | |||
@@ -44,6 +44,7 @@ | |||
44 | 44 | ||
45 | #include <mach/hardware.h> | 45 | #include <mach/hardware.h> |
46 | #include <mach/board.h> | 46 | #include <mach/board.h> |
47 | #include <mach/at91_aic.h> | ||
47 | #include <mach/at91rm9200_mc.h> | 48 | #include <mach/at91rm9200_mc.h> |
48 | #include <mach/at91_ramc.h> | 49 | #include <mach/at91_ramc.h> |
49 | #include <mach/cpu.h> | 50 | #include <mach/cpu.h> |
@@ -590,6 +591,7 @@ MACHINE_START(YL9200, "uCdragon YL-9200") | |||
590 | /* Maintainer: S.Birtles */ | 591 | /* Maintainer: S.Birtles */ |
591 | .timer = &at91rm9200_timer, | 592 | .timer = &at91rm9200_timer, |
592 | .map_io = at91_map_io, | 593 | .map_io = at91_map_io, |
594 | .handle_irq = at91_aic_handle_irq, | ||
593 | .init_early = yl9200_init_early, | 595 | .init_early = yl9200_init_early, |
594 | .init_irq = at91_init_irq_default, | 596 | .init_irq = at91_init_irq_default, |
595 | .init_machine = yl9200_board_init, | 597 | .init_machine = yl9200_board_init, |
diff --git a/arch/arm/mach-at91/include/mach/at91_aic.h b/arch/arm/mach-at91/include/mach/at91_aic.h index 3af7272a4060..78673784bc64 100644 --- a/arch/arm/mach-at91/include/mach/at91_aic.h +++ b/arch/arm/mach-at91/include/mach/at91_aic.h | |||
@@ -65,4 +65,6 @@ extern void __iomem *at91_aic_base; | |||
65 | #define AT91_AIC_FFDR 0x144 /* Fast Forcing Disable Register [SAM9 only] */ | 65 | #define AT91_AIC_FFDR 0x144 /* Fast Forcing Disable Register [SAM9 only] */ |
66 | #define AT91_AIC_FFSR 0x148 /* Fast Forcing Status Register [SAM9 only] */ | 66 | #define AT91_AIC_FFSR 0x148 /* Fast Forcing Status Register [SAM9 only] */ |
67 | 67 | ||
68 | void at91_aic_handle_irq(struct pt_regs *regs); | ||
69 | |||
68 | #endif | 70 | #endif |
diff --git a/arch/arm/mach-at91/include/mach/entry-macro.S b/arch/arm/mach-at91/include/mach/entry-macro.S deleted file mode 100644 index 903bf205a333..000000000000 --- a/arch/arm/mach-at91/include/mach/entry-macro.S +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | /* | ||
2 | * arch/arm/mach-at91/include/mach/entry-macro.S | ||
3 | * | ||
4 | * Copyright (C) 2003-2005 SAN People | ||
5 | * | ||
6 | * Low-level IRQ helper macros for AT91RM9200 platforms | ||
7 | * | ||
8 | * This file is licensed under the terms of the GNU General Public | ||
9 | * License version 2. This program is licensed "as is" without any | ||
10 | * warranty of any kind, whether express or implied. | ||
11 | */ | ||
12 | |||
13 | #include <mach/hardware.h> | ||
14 | #include <mach/at91_aic.h> | ||
15 | |||
16 | .macro get_irqnr_preamble, base, tmp | ||
17 | ldr \base, =at91_aic_base @ base virtual address of AIC peripheral | ||
18 | ldr \base, [\base] | ||
19 | .endm | ||
20 | |||
21 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | ||
22 | ldr \irqnr, [\base, #AT91_AIC_IVR] @ read IRQ vector register: de-asserts nIRQ to processor (and clears interrupt) | ||
23 | ldr \irqstat, [\base, #AT91_AIC_ISR] @ read interrupt source number | ||
24 | teq \irqstat, #0 @ ISR is 0 when no current interrupt, or spurious interrupt | ||
25 | streq \tmp, [\base, #AT91_AIC_EOICR] @ not going to be handled further, then ACK it now. | ||
26 | .endm | ||
27 | |||
diff --git a/arch/arm/mach-at91/irq.c b/arch/arm/mach-at91/irq.c index db8e14112eda..390d4df21ef6 100644 --- a/arch/arm/mach-at91/irq.c +++ b/arch/arm/mach-at91/irq.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <asm/irq.h> | 36 | #include <asm/irq.h> |
37 | #include <asm/setup.h> | 37 | #include <asm/setup.h> |
38 | 38 | ||
39 | #include <asm/exception.h> | ||
39 | #include <asm/mach/arch.h> | 40 | #include <asm/mach/arch.h> |
40 | #include <asm/mach/irq.h> | 41 | #include <asm/mach/irq.h> |
41 | #include <asm/mach/map.h> | 42 | #include <asm/mach/map.h> |
@@ -45,6 +46,24 @@ static struct irq_domain *at91_aic_domain; | |||
45 | static struct device_node *at91_aic_np; | 46 | static struct device_node *at91_aic_np; |
46 | static unsigned int *at91_aic_irq_priorities; | 47 | static unsigned int *at91_aic_irq_priorities; |
47 | 48 | ||
49 | asmlinkage void __exception_irq_entry at91_aic_handle_irq(struct pt_regs *regs) | ||
50 | { | ||
51 | u32 irqnr; | ||
52 | u32 irqstat; | ||
53 | |||
54 | irqnr = at91_aic_read(AT91_AIC_IVR); | ||
55 | irqstat = at91_aic_read(AT91_AIC_ISR); | ||
56 | |||
57 | /* | ||
58 | * ISR value is 0 when there is no current interrupt or when there is | ||
59 | * a spurious interrupt | ||
60 | */ | ||
61 | if (!irqstat) | ||
62 | at91_aic_write(AT91_AIC_EOICR, 0); | ||
63 | else | ||
64 | handle_IRQ(irqnr, regs); | ||
65 | } | ||
66 | |||
48 | static void at91_aic_mask_irq(struct irq_data *d) | 67 | static void at91_aic_mask_irq(struct irq_data *d) |
49 | { | 68 | { |
50 | /* Disable interrupt on AIC */ | 69 | /* Disable interrupt on AIC */ |