aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2011-04-23 03:28:34 -0400
committerArnd Bergmann <arnd@arndb.de>2011-07-28 11:07:28 -0400
commit92100c12ca1bc5f347ff41c1413f9db07c4d276c (patch)
treecbf4379cce962c550d32ab5dfd6d10dac7fb70db
parent21d08b9d5536ac418bbce4f419fe2b528b7ddf31 (diff)
at91: factorize at91 interrupts init to soc
they are the same except the default priority Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Cc: Nicolas Ferre <nicolas.ferre@atmel.com> Cc: Patrice Vilchez <patrice.vilchez@atmel.com>
-rw-r--r--arch/arm/mach-at91/at91cap9.c13
-rw-r--r--arch/arm/mach-at91/at91rm9200.c13
-rw-r--r--arch/arm/mach-at91/at91sam9260.c13
-rw-r--r--arch/arm/mach-at91/at91sam9261.c13
-rw-r--r--arch/arm/mach-at91/at91sam9263.c13
-rw-r--r--arch/arm/mach-at91/at91sam9g45.c13
-rw-r--r--arch/arm/mach-at91/at91sam9rl.c13
-rw-r--r--arch/arm/mach-at91/board-1arm.c7
-rw-r--r--arch/arm/mach-at91/board-afeb-9260v1.c8
-rw-r--r--arch/arm/mach-at91/board-cam60.c8
-rw-r--r--arch/arm/mach-at91/board-cap9adk.c8
-rw-r--r--arch/arm/mach-at91/board-carmeva.c7
-rw-r--r--arch/arm/mach-at91/board-cpu9krea.c7
-rw-r--r--arch/arm/mach-at91/board-cpuat91.c7
-rw-r--r--arch/arm/mach-at91/board-csb337.c7
-rw-r--r--arch/arm/mach-at91/board-csb637.c7
-rw-r--r--arch/arm/mach-at91/board-eb9200.c7
-rw-r--r--arch/arm/mach-at91/board-ecbat91.c7
-rw-r--r--arch/arm/mach-at91/board-eco920.c7
-rw-r--r--arch/arm/mach-at91/board-flexibity.c7
-rw-r--r--arch/arm/mach-at91/board-foxg20.c8
-rw-r--r--arch/arm/mach-at91/board-gsia18s.c7
-rw-r--r--arch/arm/mach-at91/board-kafa.c7
-rw-r--r--arch/arm/mach-at91/board-kb9202.c7
-rw-r--r--arch/arm/mach-at91/board-neocore926.c8
-rw-r--r--arch/arm/mach-at91/board-pcontrol-g20.c9
-rw-r--r--arch/arm/mach-at91/board-picotux200.c7
-rw-r--r--arch/arm/mach-at91/board-qil-a9260.c8
-rw-r--r--arch/arm/mach-at91/board-rm9200dk.c7
-rw-r--r--arch/arm/mach-at91/board-rm9200ek.c7
-rw-r--r--arch/arm/mach-at91/board-sam9-l9260.c8
-rw-r--r--arch/arm/mach-at91/board-sam9260ek.c8
-rw-r--r--arch/arm/mach-at91/board-sam9261ek.c8
-rw-r--r--arch/arm/mach-at91/board-sam9263ek.c8
-rw-r--r--arch/arm/mach-at91/board-sam9g20ek.c10
-rw-r--r--arch/arm/mach-at91/board-sam9m10g45ek.c8
-rw-r--r--arch/arm/mach-at91/board-sam9rlek.c8
-rw-r--r--arch/arm/mach-at91/board-snapper9260.c7
-rw-r--r--arch/arm/mach-at91/board-stamp9g20.c10
-rw-r--r--arch/arm/mach-at91/board-usb-a9260.c8
-rw-r--r--arch/arm/mach-at91/board-usb-a9263.c8
-rw-r--r--arch/arm/mach-at91/board-yl-9200.c8
-rw-r--r--arch/arm/mach-at91/generic.h9
-rw-r--r--arch/arm/mach-at91/setup.c14
-rw-r--r--arch/arm/mach-at91/soc.h1
45 files changed, 61 insertions, 322 deletions
diff --git a/arch/arm/mach-at91/at91cap9.c b/arch/arm/mach-at91/at91cap9.c
index 7ec9eeb64286..9a0137043780 100644
--- a/arch/arm/mach-at91/at91cap9.c
+++ b/arch/arm/mach-at91/at91cap9.c
@@ -403,19 +403,8 @@ static unsigned int at91cap9_default_irq_priority[NR_AIC_IRQS] __initdata = {
403 0, /* Advanced Interrupt Controller (IRQ1) */ 403 0, /* Advanced Interrupt Controller (IRQ1) */
404}; 404};
405 405
406void __init at91cap9_init_interrupts(unsigned int priority[NR_AIC_IRQS])
407{
408 if (!priority)
409 priority = at91cap9_default_irq_priority;
410
411 /* Initialize the AIC interrupt controller */
412 at91_aic_init(priority);
413
414 /* Enable GPIO interrupts */
415 at91_gpio_irq_setup();
416}
417
418struct at91_soc __initdata at91cap9_soc = { 406struct at91_soc __initdata at91cap9_soc = {
419 .map_io = at91cap9_map_io, 407 .map_io = at91cap9_map_io,
408 .default_irq_priority = at91cap9_default_irq_priority,
420 .init = at91cap9_initialize, 409 .init = at91cap9_initialize,
421}; 410};
diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c
index 489f4d90f274..d7801bed9afe 100644
--- a/arch/arm/mach-at91/at91rm9200.c
+++ b/arch/arm/mach-at91/at91rm9200.c
@@ -379,19 +379,8 @@ static unsigned int at91rm9200_default_irq_priority[NR_AIC_IRQS] __initdata = {
379 0 /* Advanced Interrupt Controller (IRQ6) */ 379 0 /* Advanced Interrupt Controller (IRQ6) */
380}; 380};
381 381
382void __init at91rm9200_init_interrupts(unsigned int priority[NR_AIC_IRQS])
383{
384 if (!priority)
385 priority = at91rm9200_default_irq_priority;
386
387 /* Initialize the AIC interrupt controller */
388 at91_aic_init(priority);
389
390 /* Enable GPIO interrupts */
391 at91_gpio_irq_setup();
392}
393
394struct at91_soc __initdata at91rm9200_soc = { 382struct at91_soc __initdata at91rm9200_soc = {
395 .map_io = at91rm9200_map_io, 383 .map_io = at91rm9200_map_io,
384 .default_irq_priority = at91rm9200_default_irq_priority,
396 .init = at91rm9200_initialize, 385 .init = at91rm9200_initialize,
397}; 386};
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
index 366c5d69393b..164873fa965f 100644
--- a/arch/arm/mach-at91/at91sam9260.c
+++ b/arch/arm/mach-at91/at91sam9260.c
@@ -410,19 +410,8 @@ static unsigned int at91sam9260_default_irq_priority[NR_AIC_IRQS] __initdata = {
410 0, /* Advanced Interrupt Controller */ 410 0, /* Advanced Interrupt Controller */
411}; 411};
412 412
413void __init at91sam9260_init_interrupts(unsigned int priority[NR_AIC_IRQS])
414{
415 if (!priority)
416 priority = at91sam9260_default_irq_priority;
417
418 /* Initialize the AIC interrupt controller */
419 at91_aic_init(priority);
420
421 /* Enable GPIO interrupts */
422 at91_gpio_irq_setup();
423}
424
425struct at91_soc __initdata at91sam9260_soc = { 413struct at91_soc __initdata at91sam9260_soc = {
426 .map_io = at91sam9260_map_io, 414 .map_io = at91sam9260_map_io,
415 .default_irq_priority = at91sam9260_default_irq_priority,
427 .init = at91sam9260_initialize, 416 .init = at91sam9260_initialize,
428}; 417};
diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c
index a0081c081c32..7a4a673eedeb 100644
--- a/arch/arm/mach-at91/at91sam9261.c
+++ b/arch/arm/mach-at91/at91sam9261.c
@@ -361,19 +361,8 @@ static unsigned int at91sam9261_default_irq_priority[NR_AIC_IRQS] __initdata = {
361 0, /* Advanced Interrupt Controller */ 361 0, /* Advanced Interrupt Controller */
362}; 362};
363 363
364void __init at91sam9261_init_interrupts(unsigned int priority[NR_AIC_IRQS])
365{
366 if (!priority)
367 priority = at91sam9261_default_irq_priority;
368
369 /* Initialize the AIC interrupt controller */
370 at91_aic_init(priority);
371
372 /* Enable GPIO interrupts */
373 at91_gpio_irq_setup();
374}
375
376struct at91_soc __initdata at91sam9261_soc = { 364struct at91_soc __initdata at91sam9261_soc = {
377 .map_io = at91sam9261_map_io, 365 .map_io = at91sam9261_map_io,
366 .default_irq_priority = at91sam9261_default_irq_priority,
378 .init = at91sam9261_initialize, 367 .init = at91sam9261_initialize,
379}; 368};
diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
index 49f83dffd2aa..3140a13abc4a 100644
--- a/arch/arm/mach-at91/at91sam9263.c
+++ b/arch/arm/mach-at91/at91sam9263.c
@@ -372,19 +372,8 @@ static unsigned int at91sam9263_default_irq_priority[NR_AIC_IRQS] __initdata = {
372 0, /* Advanced Interrupt Controller (IRQ1) */ 372 0, /* Advanced Interrupt Controller (IRQ1) */
373}; 373};
374 374
375void __init at91sam9263_init_interrupts(unsigned int priority[NR_AIC_IRQS])
376{
377 if (!priority)
378 priority = at91sam9263_default_irq_priority;
379
380 /* Initialize the AIC interrupt controller */
381 at91_aic_init(priority);
382
383 /* Enable GPIO interrupts */
384 at91_gpio_irq_setup();
385}
386
387struct at91_soc __initdata at91sam9263_soc = { 375struct at91_soc __initdata at91sam9263_soc = {
388 .map_io = at91sam9263_map_io, 376 .map_io = at91sam9263_map_io,
377 .default_irq_priority = at91sam9263_default_irq_priority,
389 .init = at91sam9263_initialize, 378 .init = at91sam9263_initialize,
390}; 379};
diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c
index 877c320fce2b..f5e72da65ce7 100644
--- a/arch/arm/mach-at91/at91sam9g45.c
+++ b/arch/arm/mach-at91/at91sam9g45.c
@@ -388,19 +388,8 @@ static unsigned int at91sam9g45_default_irq_priority[NR_AIC_IRQS] __initdata = {
388 0, /* Advanced Interrupt Controller (IRQ0) */ 388 0, /* Advanced Interrupt Controller (IRQ0) */
389}; 389};
390 390
391void __init at91sam9g45_init_interrupts(unsigned int priority[NR_AIC_IRQS])
392{
393 if (!priority)
394 priority = at91sam9g45_default_irq_priority;
395
396 /* Initialize the AIC interrupt controller */
397 at91_aic_init(priority);
398
399 /* Enable GPIO interrupts */
400 at91_gpio_irq_setup();
401}
402
403struct at91_soc __initdata at91sam9g45_soc = { 391struct at91_soc __initdata at91sam9g45_soc = {
404 .map_io = at91sam9g45_map_io, 392 .map_io = at91sam9g45_map_io,
393 .default_irq_priority = at91sam9g45_default_irq_priority,
405 .init = at91sam9g45_initialize, 394 .init = at91sam9g45_initialize,
406}; 395};
diff --git a/arch/arm/mach-at91/at91sam9rl.c b/arch/arm/mach-at91/at91sam9rl.c
index 8ff7720b3e4a..9c87bacd10f9 100644
--- a/arch/arm/mach-at91/at91sam9rl.c
+++ b/arch/arm/mach-at91/at91sam9rl.c
@@ -359,19 +359,8 @@ static unsigned int at91sam9rl_default_irq_priority[NR_AIC_IRQS] __initdata = {
359 0, /* Advanced Interrupt Controller */ 359 0, /* Advanced Interrupt Controller */
360}; 360};
361 361
362void __init at91sam9rl_init_interrupts(unsigned int priority[NR_AIC_IRQS])
363{
364 if (!priority)
365 priority = at91sam9rl_default_irq_priority;
366
367 /* Initialize the AIC interrupt controller */
368 at91_aic_init(priority);
369
370 /* Enable GPIO interrupts */
371 at91_gpio_irq_setup();
372}
373
374struct at91_soc __initdata at91sam9rl_soc = { 362struct at91_soc __initdata at91sam9rl_soc = {
375 .map_io = at91sam9rl_map_io, 363 .map_io = at91sam9rl_map_io,
364 .default_irq_priority = at91sam9rl_default_irq_priority,
376 .init = at91sam9rl_initialize, 365 .init = at91sam9rl_initialize,
377}; 366};
diff --git a/arch/arm/mach-at91/board-1arm.c b/arch/arm/mach-at91/board-1arm.c
index e588a9e15e79..5aa58851eb39 100644
--- a/arch/arm/mach-at91/board-1arm.c
+++ b/arch/arm/mach-at91/board-1arm.c
@@ -63,11 +63,6 @@ static void __init onearm_init_early(void)
63 at91_set_serial_console(0); 63 at91_set_serial_console(0);
64} 64}
65 65
66static void __init onearm_init_irq(void)
67{
68 at91rm9200_init_interrupts(NULL);
69}
70
71static struct at91_eth_data __initdata onearm_eth_data = { 66static struct at91_eth_data __initdata onearm_eth_data = {
72 .phy_irq_pin = AT91_PIN_PC4, 67 .phy_irq_pin = AT91_PIN_PC4,
73 .is_rmii = 1, 68 .is_rmii = 1,
@@ -99,6 +94,6 @@ MACHINE_START(ONEARM, "Ajeco 1ARM single board computer")
99 .timer = &at91rm9200_timer, 94 .timer = &at91rm9200_timer,
100 .map_io = at91_map_io, 95 .map_io = at91_map_io,
101 .init_early = onearm_init_early, 96 .init_early = onearm_init_early,
102 .init_irq = onearm_init_irq, 97 .init_irq = at91_init_irq_default,
103 .init_machine = onearm_board_init, 98 .init_machine = onearm_board_init,
104MACHINE_END 99MACHINE_END
diff --git a/arch/arm/mach-at91/board-afeb-9260v1.c b/arch/arm/mach-at91/board-afeb-9260v1.c
index 7cd1cb2f0103..b0c796d42e49 100644
--- a/arch/arm/mach-at91/board-afeb-9260v1.c
+++ b/arch/arm/mach-at91/board-afeb-9260v1.c
@@ -70,12 +70,6 @@ static void __init afeb9260_init_early(void)
70 at91_set_serial_console(0); 70 at91_set_serial_console(0);
71} 71}
72 72
73static void __init afeb9260_init_irq(void)
74{
75 at91sam9260_init_interrupts(NULL);
76}
77
78
79/* 73/*
80 * USB Host port 74 * USB Host port
81 */ 75 */
@@ -221,7 +215,7 @@ MACHINE_START(AFEB9260, "Custom afeb9260 board")
221 .timer = &at91sam926x_timer, 215 .timer = &at91sam926x_timer,
222 .map_io = at91_map_io, 216 .map_io = at91_map_io,
223 .init_early = afeb9260_init_early, 217 .init_early = afeb9260_init_early,
224 .init_irq = afeb9260_init_irq, 218 .init_irq = at91_init_irq_default,
225 .init_machine = afeb9260_board_init, 219 .init_machine = afeb9260_board_init,
226MACHINE_END 220MACHINE_END
227 221
diff --git a/arch/arm/mach-at91/board-cam60.c b/arch/arm/mach-at91/board-cam60.c
index bdc52e641e6d..d1abd5898e85 100644
--- a/arch/arm/mach-at91/board-cam60.c
+++ b/arch/arm/mach-at91/board-cam60.c
@@ -57,12 +57,6 @@ static void __init cam60_init_early(void)
57 at91_set_serial_console(0); 57 at91_set_serial_console(0);
58} 58}
59 59
60static void __init cam60_init_irq(void)
61{
62 at91sam9260_init_interrupts(NULL);
63}
64
65
66/* 60/*
67 * USB Host 61 * USB Host
68 */ 62 */
@@ -201,6 +195,6 @@ MACHINE_START(CAM60, "KwikByte CAM60")
201 .timer = &at91sam926x_timer, 195 .timer = &at91sam926x_timer,
202 .map_io = at91_map_io, 196 .map_io = at91_map_io,
203 .init_early = cam60_init_early, 197 .init_early = cam60_init_early,
204 .init_irq = cam60_init_irq, 198 .init_irq = at91_init_irq_default,
205 .init_machine = cam60_board_init, 199 .init_machine = cam60_board_init,
206MACHINE_END 200MACHINE_END
diff --git a/arch/arm/mach-at91/board-cap9adk.c b/arch/arm/mach-at91/board-cap9adk.c
index d04a6a0f3dd8..679b0b743e92 100644
--- a/arch/arm/mach-at91/board-cap9adk.c
+++ b/arch/arm/mach-at91/board-cap9adk.c
@@ -65,12 +65,6 @@ static void __init cap9adk_init_early(void)
65 at91_set_serial_console(0); 65 at91_set_serial_console(0);
66} 66}
67 67
68static void __init cap9adk_init_irq(void)
69{
70 at91cap9_init_interrupts(NULL);
71}
72
73
74/* 68/*
75 * USB Host port 69 * USB Host port
76 */ 70 */
@@ -399,6 +393,6 @@ MACHINE_START(AT91CAP9ADK, "Atmel AT91CAP9A-DK")
399 .timer = &at91sam926x_timer, 393 .timer = &at91sam926x_timer,
400 .map_io = at91_map_io, 394 .map_io = at91_map_io,
401 .init_early = cap9adk_init_early, 395 .init_early = cap9adk_init_early,
402 .init_irq = cap9adk_init_irq, 396 .init_irq = at91_init_irq_default,
403 .init_machine = cap9adk_board_init, 397 .init_machine = cap9adk_board_init,
404MACHINE_END 398MACHINE_END
diff --git a/arch/arm/mach-at91/board-carmeva.c b/arch/arm/mach-at91/board-carmeva.c
index 0a92b7a7c217..c578c5d90728 100644
--- a/arch/arm/mach-at91/board-carmeva.c
+++ b/arch/arm/mach-at91/board-carmeva.c
@@ -57,11 +57,6 @@ static void __init carmeva_init_early(void)
57 at91_set_serial_console(0); 57 at91_set_serial_console(0);
58} 58}
59 59
60static void __init carmeva_init_irq(void)
61{
62 at91rm9200_init_interrupts(NULL);
63}
64
65static struct at91_eth_data __initdata carmeva_eth_data = { 60static struct at91_eth_data __initdata carmeva_eth_data = {
66 .phy_irq_pin = AT91_PIN_PC4, 61 .phy_irq_pin = AT91_PIN_PC4,
67 .is_rmii = 1, 62 .is_rmii = 1,
@@ -165,6 +160,6 @@ MACHINE_START(CARMEVA, "Carmeva")
165 .timer = &at91rm9200_timer, 160 .timer = &at91rm9200_timer,
166 .map_io = at91_map_io, 161 .map_io = at91_map_io,
167 .init_early = carmeva_init_early, 162 .init_early = carmeva_init_early,
168 .init_irq = carmeva_init_irq, 163 .init_irq = at91_init_irq_default,
169 .init_machine = carmeva_board_init, 164 .init_machine = carmeva_board_init,
170MACHINE_END 165MACHINE_END
diff --git a/arch/arm/mach-at91/board-cpu9krea.c b/arch/arm/mach-at91/board-cpu9krea.c
index 01128f9a0597..f4da8a16d5dc 100644
--- a/arch/arm/mach-at91/board-cpu9krea.c
+++ b/arch/arm/mach-at91/board-cpu9krea.c
@@ -81,11 +81,6 @@ static void __init cpu9krea_init_early(void)
81 at91_set_serial_console(0); 81 at91_set_serial_console(0);
82} 82}
83 83
84static void __init cpu9krea_init_irq(void)
85{
86 at91sam9260_init_interrupts(NULL);
87}
88
89/* 84/*
90 * USB Host port 85 * USB Host port
91 */ 86 */
@@ -378,6 +373,6 @@ MACHINE_START(CPUAT9G20, "Eukrea CPU9G20")
378 .timer = &at91sam926x_timer, 373 .timer = &at91sam926x_timer,
379 .map_io = at91_map_io, 374 .map_io = at91_map_io,
380 .init_early = cpu9krea_init_early, 375 .init_early = cpu9krea_init_early,
381 .init_irq = cpu9krea_init_irq, 376 .init_irq = at91_init_irq_default,
382 .init_machine = cpu9krea_board_init, 377 .init_machine = cpu9krea_board_init,
383MACHINE_END 378MACHINE_END
diff --git a/arch/arm/mach-at91/board-cpuat91.c b/arch/arm/mach-at91/board-cpuat91.c
index 0692606b9fee..2d919f5a4f57 100644
--- a/arch/arm/mach-at91/board-cpuat91.c
+++ b/arch/arm/mach-at91/board-cpuat91.c
@@ -82,11 +82,6 @@ static void __init cpuat91_init_early(void)
82 at91_set_serial_console(0); 82 at91_set_serial_console(0);
83} 83}
84 84
85static void __init cpuat91_init_irq(void)
86{
87 at91rm9200_init_interrupts(NULL);
88}
89
90static struct at91_eth_data __initdata cpuat91_eth_data = { 85static struct at91_eth_data __initdata cpuat91_eth_data = {
91 .is_rmii = 1, 86 .is_rmii = 1,
92}; 87};
@@ -182,6 +177,6 @@ MACHINE_START(CPUAT91, "Eukrea")
182 .timer = &at91rm9200_timer, 177 .timer = &at91rm9200_timer,
183 .map_io = at91_map_io, 178 .map_io = at91_map_io,
184 .init_early = cpuat91_init_early, 179 .init_early = cpuat91_init_early,
185 .init_irq = cpuat91_init_irq, 180 .init_irq = at91_init_irq_default,
186 .init_machine = cpuat91_board_init, 181 .init_machine = cpuat91_board_init,
187MACHINE_END 182MACHINE_END
diff --git a/arch/arm/mach-at91/board-csb337.c b/arch/arm/mach-at91/board-csb337.c
index 923cccb7948d..17654d5e94e6 100644
--- a/arch/arm/mach-at91/board-csb337.c
+++ b/arch/arm/mach-at91/board-csb337.c
@@ -58,11 +58,6 @@ static void __init csb337_init_early(void)
58 at91_set_serial_console(0); 58 at91_set_serial_console(0);
59} 59}
60 60
61static void __init csb337_init_irq(void)
62{
63 at91rm9200_init_interrupts(NULL);
64}
65
66static struct at91_eth_data __initdata csb337_eth_data = { 61static struct at91_eth_data __initdata csb337_eth_data = {
67 .phy_irq_pin = AT91_PIN_PC2, 62 .phy_irq_pin = AT91_PIN_PC2,
68 .is_rmii = 0, 63 .is_rmii = 0,
@@ -260,6 +255,6 @@ MACHINE_START(CSB337, "Cogent CSB337")
260 .timer = &at91rm9200_timer, 255 .timer = &at91rm9200_timer,
261 .map_io = at91_map_io, 256 .map_io = at91_map_io,
262 .init_early = csb337_init_early, 257 .init_early = csb337_init_early,
263 .init_irq = csb337_init_irq, 258 .init_irq = at91_init_irq_default,
264 .init_machine = csb337_board_init, 259 .init_machine = csb337_board_init,
265MACHINE_END 260MACHINE_END
diff --git a/arch/arm/mach-at91/board-csb637.c b/arch/arm/mach-at91/board-csb637.c
index 51131cad1abb..72b55674616c 100644
--- a/arch/arm/mach-at91/board-csb637.c
+++ b/arch/arm/mach-at91/board-csb637.c
@@ -52,11 +52,6 @@ static void __init csb637_init_early(void)
52 at91_set_serial_console(0); 52 at91_set_serial_console(0);
53} 53}
54 54
55static void __init csb637_init_irq(void)
56{
57 at91rm9200_init_interrupts(NULL);
58}
59
60static struct at91_eth_data __initdata csb637_eth_data = { 55static struct at91_eth_data __initdata csb637_eth_data = {
61 .phy_irq_pin = AT91_PIN_PC0, 56 .phy_irq_pin = AT91_PIN_PC0,
62 .is_rmii = 0, 57 .is_rmii = 0,
@@ -141,6 +136,6 @@ MACHINE_START(CSB637, "Cogent CSB637")
141 .timer = &at91rm9200_timer, 136 .timer = &at91rm9200_timer,
142 .map_io = at91_map_io, 137 .map_io = at91_map_io,
143 .init_early = csb637_init_early, 138 .init_early = csb637_init_early,
144 .init_irq = csb637_init_irq, 139 .init_irq = at91_init_irq_default,
145 .init_machine = csb637_board_init, 140 .init_machine = csb637_board_init,
146MACHINE_END 141MACHINE_END
diff --git a/arch/arm/mach-at91/board-eb9200.c b/arch/arm/mach-at91/board-eb9200.c
index 705071cbd232..01170a2766a8 100644
--- a/arch/arm/mach-at91/board-eb9200.c
+++ b/arch/arm/mach-at91/board-eb9200.c
@@ -60,11 +60,6 @@ static void __init eb9200_init_early(void)
60 at91_set_serial_console(0); 60 at91_set_serial_console(0);
61} 61}
62 62
63static void __init eb9200_init_irq(void)
64{
65 at91rm9200_init_interrupts(NULL);
66}
67
68static struct at91_eth_data __initdata eb9200_eth_data = { 63static struct at91_eth_data __initdata eb9200_eth_data = {
69 .phy_irq_pin = AT91_PIN_PC4, 64 .phy_irq_pin = AT91_PIN_PC4,
70 .is_rmii = 1, 65 .is_rmii = 1,
@@ -123,6 +118,6 @@ MACHINE_START(ATEB9200, "Embest ATEB9200")
123 .timer = &at91rm9200_timer, 118 .timer = &at91rm9200_timer,
124 .map_io = at91_map_io, 119 .map_io = at91_map_io,
125 .init_early = eb9200_init_early, 120 .init_early = eb9200_init_early,
126 .init_irq = eb9200_init_irq, 121 .init_irq = at91_init_irq_default,
127 .init_machine = eb9200_board_init, 122 .init_machine = eb9200_board_init,
128MACHINE_END 123MACHINE_END
diff --git a/arch/arm/mach-at91/board-ecbat91.c b/arch/arm/mach-at91/board-ecbat91.c
index a9f106a2bd2c..7c0313c51f26 100644
--- a/arch/arm/mach-at91/board-ecbat91.c
+++ b/arch/arm/mach-at91/board-ecbat91.c
@@ -64,11 +64,6 @@ static void __init ecb_at91init_early(void)
64 at91_set_serial_console(0); 64 at91_set_serial_console(0);
65} 65}
66 66
67static void __init ecb_at91init_irq(void)
68{
69 at91rm9200_init_interrupts(NULL);
70}
71
72static struct at91_eth_data __initdata ecb_at91eth_data = { 67static struct at91_eth_data __initdata ecb_at91eth_data = {
73 .phy_irq_pin = AT91_PIN_PC4, 68 .phy_irq_pin = AT91_PIN_PC4,
74 .is_rmii = 0, 69 .is_rmii = 0,
@@ -175,6 +170,6 @@ MACHINE_START(ECBAT91, "emQbit's ECB_AT91")
175 .timer = &at91rm9200_timer, 170 .timer = &at91rm9200_timer,
176 .map_io = at91_map_io, 171 .map_io = at91_map_io,
177 .init_early = ecb_at91init_early, 172 .init_early = ecb_at91init_early,
178 .init_irq = ecb_at91init_irq, 173 .init_irq = at91_init_irq_default,
179 .init_machine = ecb_at91board_init, 174 .init_machine = ecb_at91board_init,
180MACHINE_END 175MACHINE_END
diff --git a/arch/arm/mach-at91/board-eco920.c b/arch/arm/mach-at91/board-eco920.c
index 8639fbde9669..8252c722607b 100644
--- a/arch/arm/mach-at91/board-eco920.c
+++ b/arch/arm/mach-at91/board-eco920.c
@@ -47,11 +47,6 @@ static void __init eco920_init_early(void)
47 at91_set_serial_console(0); 47 at91_set_serial_console(0);
48} 48}
49 49
50static void __init eco920_init_irq(void)
51{
52 at91rm9200_init_interrupts(NULL);
53}
54
55static struct at91_eth_data __initdata eco920_eth_data = { 50static struct at91_eth_data __initdata eco920_eth_data = {
56 .phy_irq_pin = AT91_PIN_PC2, 51 .phy_irq_pin = AT91_PIN_PC2,
57 .is_rmii = 1, 52 .is_rmii = 1,
@@ -137,6 +132,6 @@ MACHINE_START(ECO920, "eco920")
137 .timer = &at91rm9200_timer, 132 .timer = &at91rm9200_timer,
138 .map_io = at91_map_io, 133 .map_io = at91_map_io,
139 .init_early = eco920_init_early, 134 .init_early = eco920_init_early,
140 .init_irq = eco920_init_irq, 135 .init_irq = at91_init_irq_default,
141 .init_machine = eco920_board_init, 136 .init_machine = eco920_board_init,
142MACHINE_END 137MACHINE_END
diff --git a/arch/arm/mach-at91/board-flexibity.c b/arch/arm/mach-at91/board-flexibity.c
index f45583ed5a66..4c3f65d9c59b 100644
--- a/arch/arm/mach-at91/board-flexibity.c
+++ b/arch/arm/mach-at91/board-flexibity.c
@@ -49,11 +49,6 @@ static void __init flexibity_init_early(void)
49 at91_set_serial_console(0); 49 at91_set_serial_console(0);
50} 50}
51 51
52static void __init flexibity_init_irq(void)
53{
54 at91sam9260_init_interrupts(NULL);
55}
56
57/* USB Host port */ 52/* USB Host port */
58static struct at91_usbh_data __initdata flexibity_usbh_data = { 53static struct at91_usbh_data __initdata flexibity_usbh_data = {
59 .ports = 2, 54 .ports = 2,
@@ -157,6 +152,6 @@ MACHINE_START(FLEXIBITY, "Flexibity Connect")
157 .timer = &at91sam926x_timer, 152 .timer = &at91sam926x_timer,
158 .map_io = at91_map_io, 153 .map_io = at91_map_io,
159 .init_early = flexibity_init_early, 154 .init_early = flexibity_init_early,
160 .init_irq = flexibity_init_irq, 155 .init_irq = at91_init_irq_default,
161 .init_machine = flexibity_board_init, 156 .init_machine = flexibity_board_init,
162MACHINE_END 157MACHINE_END
diff --git a/arch/arm/mach-at91/board-foxg20.c b/arch/arm/mach-at91/board-foxg20.c
index b78442b21361..f27d1a780cfa 100644
--- a/arch/arm/mach-at91/board-foxg20.c
+++ b/arch/arm/mach-at91/board-foxg20.c
@@ -101,12 +101,6 @@ static void __init foxg20_init_early(void)
101 101
102} 102}
103 103
104static void __init foxg20_init_irq(void)
105{
106 at91sam9260_init_interrupts(NULL);
107}
108
109
110/* 104/*
111 * USB Host port 105 * USB Host port
112 */ 106 */
@@ -269,6 +263,6 @@ MACHINE_START(ACMENETUSFOXG20, "Acme Systems srl FOX Board G20")
269 .timer = &at91sam926x_timer, 263 .timer = &at91sam926x_timer,
270 .map_io = at91_map_io, 264 .map_io = at91_map_io,
271 .init_early = foxg20_init_early, 265 .init_early = foxg20_init_early,
272 .init_irq = foxg20_init_irq, 266 .init_irq = at91_init_irq_default,
273 .init_machine = foxg20_board_init, 267 .init_machine = foxg20_board_init,
274MACHINE_END 268MACHINE_END
diff --git a/arch/arm/mach-at91/board-gsia18s.c b/arch/arm/mach-at91/board-gsia18s.c
index 6588143461fd..2e95949737e6 100644
--- a/arch/arm/mach-at91/board-gsia18s.c
+++ b/arch/arm/mach-at91/board-gsia18s.c
@@ -75,11 +75,6 @@ static void __init gsia18s_init_early(void)
75 at91_register_uart(AT91SAM9260_ID_US4, 5, 0); 75 at91_register_uart(AT91SAM9260_ID_US4, 5, 0);
76} 76}
77 77
78static void __init init_irq(void)
79{
80 at91sam9260_init_interrupts(NULL);
81}
82
83/* 78/*
84 * Two USB Host ports 79 * Two USB Host ports
85 */ 80 */
@@ -579,6 +574,6 @@ MACHINE_START(GSIA18S, "GS_IA18_S")
579 .timer = &at91sam926x_timer, 574 .timer = &at91sam926x_timer,
580 .map_io = at91_map_io, 575 .map_io = at91_map_io,
581 .init_early = gsia18s_init_early, 576 .init_early = gsia18s_init_early,
582 .init_irq = init_irq, 577 .init_irq = at91_init_irq_default,
583 .init_machine = gsia18s_board_init, 578 .init_machine = gsia18s_board_init,
584MACHINE_END 579MACHINE_END
diff --git a/arch/arm/mach-at91/board-kafa.c b/arch/arm/mach-at91/board-kafa.c
index d26b960cf9c4..4a170890b3b1 100644
--- a/arch/arm/mach-at91/board-kafa.c
+++ b/arch/arm/mach-at91/board-kafa.c
@@ -61,11 +61,6 @@ static void __init kafa_init_early(void)
61 at91_set_serial_console(0); 61 at91_set_serial_console(0);
62} 62}
63 63
64static void __init kafa_init_irq(void)
65{
66 at91rm9200_init_interrupts(NULL);
67}
68
69static struct at91_eth_data __initdata kafa_eth_data = { 64static struct at91_eth_data __initdata kafa_eth_data = {
70 .phy_irq_pin = AT91_PIN_PC4, 65 .phy_irq_pin = AT91_PIN_PC4,
71 .is_rmii = 0, 66 .is_rmii = 0,
@@ -101,6 +96,6 @@ MACHINE_START(KAFA, "Sperry-Sun KAFA")
101 .timer = &at91rm9200_timer, 96 .timer = &at91rm9200_timer,
102 .map_io = at91_map_io, 97 .map_io = at91_map_io,
103 .init_early = kafa_init_early, 98 .init_early = kafa_init_early,
104 .init_irq = kafa_init_irq, 99 .init_irq = at91_init_irq_default,
105 .init_machine = kafa_board_init, 100 .init_machine = kafa_board_init,
106MACHINE_END 101MACHINE_END
diff --git a/arch/arm/mach-at91/board-kb9202.c b/arch/arm/mach-at91/board-kb9202.c
index a4d815302428..9dc8d496ead1 100644
--- a/arch/arm/mach-at91/board-kb9202.c
+++ b/arch/arm/mach-at91/board-kb9202.c
@@ -69,11 +69,6 @@ static void __init kb9202_init_early(void)
69 at91_set_serial_console(0); 69 at91_set_serial_console(0);
70} 70}
71 71
72static void __init kb9202_init_irq(void)
73{
74 at91rm9200_init_interrupts(NULL);
75}
76
77static struct at91_eth_data __initdata kb9202_eth_data = { 72static struct at91_eth_data __initdata kb9202_eth_data = {
78 .phy_irq_pin = AT91_PIN_PB29, 73 .phy_irq_pin = AT91_PIN_PB29,
79 .is_rmii = 0, 74 .is_rmii = 0,
@@ -142,6 +137,6 @@ MACHINE_START(KB9200, "KB920x")
142 .timer = &at91rm9200_timer, 137 .timer = &at91rm9200_timer,
143 .map_io = at91_map_io, 138 .map_io = at91_map_io,
144 .init_early = kb9202_init_early, 139 .init_early = kb9202_init_early,
145 .init_irq = kb9202_init_irq, 140 .init_irq = at91_init_irq_default,
146 .init_machine = kb9202_board_init, 141 .init_machine = kb9202_board_init,
147MACHINE_END 142MACHINE_END
diff --git a/arch/arm/mach-at91/board-neocore926.c b/arch/arm/mach-at91/board-neocore926.c
index 26a4c631baf4..9bc6ab32e0ac 100644
--- a/arch/arm/mach-at91/board-neocore926.c
+++ b/arch/arm/mach-at91/board-neocore926.c
@@ -66,12 +66,6 @@ static void __init neocore926_init_early(void)
66 at91_set_serial_console(0); 66 at91_set_serial_console(0);
67} 67}
68 68
69static void __init neocore926_init_irq(void)
70{
71 at91sam9263_init_interrupts(NULL);
72}
73
74
75/* 69/*
76 * USB Host port 70 * USB Host port
77 */ 71 */
@@ -390,6 +384,6 @@ MACHINE_START(NEOCORE926, "ADENEO NEOCORE 926")
390 .timer = &at91sam926x_timer, 384 .timer = &at91sam926x_timer,
391 .map_io = at91_map_io, 385 .map_io = at91_map_io,
392 .init_early = neocore926_init_early, 386 .init_early = neocore926_init_early,
393 .init_irq = neocore926_init_irq, 387 .init_irq = at91_init_irq_default,
394 .init_machine = neocore926_board_init, 388 .init_machine = neocore926_board_init,
395MACHINE_END 389MACHINE_END
diff --git a/arch/arm/mach-at91/board-pcontrol-g20.c b/arch/arm/mach-at91/board-pcontrol-g20.c
index 7651e7f93655..49e3f699b48e 100644
--- a/arch/arm/mach-at91/board-pcontrol-g20.c
+++ b/arch/arm/mach-at91/board-pcontrol-g20.c
@@ -53,13 +53,6 @@ static void __init pcontrol_g20_init_early(void)
53 at91_register_uart(AT91SAM9260_ID_US4, 3, 0); 53 at91_register_uart(AT91SAM9260_ID_US4, 3, 0);
54} 54}
55 55
56
57static void __init init_irq(void)
58{
59 at91sam9260_init_interrupts(NULL);
60}
61
62
63static struct sam9_smc_config __initdata pcontrol_smc_config[2] = { { 56static struct sam9_smc_config __initdata pcontrol_smc_config[2] = { {
64 .ncs_read_setup = 16, 57 .ncs_read_setup = 16,
65 .nrd_setup = 18, 58 .nrd_setup = 18,
@@ -225,6 +218,6 @@ MACHINE_START(PCONTROL_G20, "PControl G20")
225 .timer = &at91sam926x_timer, 218 .timer = &at91sam926x_timer,
226 .map_io = at91_map_io, 219 .map_io = at91_map_io,
227 .init_early = pcontrol_g20_init_early, 220 .init_early = pcontrol_g20_init_early,
228 .init_irq = init_irq, 221 .init_irq = at91_init_irq_default,
229 .init_machine = pcontrol_g20_board_init, 222 .init_machine = pcontrol_g20_board_init,
230MACHINE_END 223MACHINE_END
diff --git a/arch/arm/mach-at91/board-picotux200.c b/arch/arm/mach-at91/board-picotux200.c
index c7294f88abee..b7b8390e8a00 100644
--- a/arch/arm/mach-at91/board-picotux200.c
+++ b/arch/arm/mach-at91/board-picotux200.c
@@ -60,11 +60,6 @@ static void __init picotux200_init_early(void)
60 at91_set_serial_console(0); 60 at91_set_serial_console(0);
61} 61}
62 62
63static void __init picotux200_init_irq(void)
64{
65 at91rm9200_init_interrupts(NULL);
66}
67
68static struct at91_eth_data __initdata picotux200_eth_data = { 63static struct at91_eth_data __initdata picotux200_eth_data = {
69 .phy_irq_pin = AT91_PIN_PC4, 64 .phy_irq_pin = AT91_PIN_PC4,
70 .is_rmii = 1, 65 .is_rmii = 1,
@@ -126,6 +121,6 @@ MACHINE_START(PICOTUX2XX, "picotux 200")
126 .timer = &at91rm9200_timer, 121 .timer = &at91rm9200_timer,
127 .map_io = at91_map_io, 122 .map_io = at91_map_io,
128 .init_early = picotux200_init_early, 123 .init_early = picotux200_init_early,
129 .init_irq = picotux200_init_irq, 124 .init_irq = at91_init_irq_default,
130 .init_machine = picotux200_board_init, 125 .init_machine = picotux200_board_init,
131MACHINE_END 126MACHINE_END
diff --git a/arch/arm/mach-at91/board-qil-a9260.c b/arch/arm/mach-at91/board-qil-a9260.c
index 68e31a905c3c..81f911033681 100644
--- a/arch/arm/mach-at91/board-qil-a9260.c
+++ b/arch/arm/mach-at91/board-qil-a9260.c
@@ -72,12 +72,6 @@ static void __init ek_init_early(void)
72 72
73} 73}
74 74
75static void __init ek_init_irq(void)
76{
77 at91sam9260_init_interrupts(NULL);
78}
79
80
81/* 75/*
82 * USB Host port 76 * USB Host port
83 */ 77 */
@@ -271,6 +265,6 @@ MACHINE_START(QIL_A9260, "CALAO QIL_A9260")
271 .timer = &at91sam926x_timer, 265 .timer = &at91sam926x_timer,
272 .map_io = at91_map_io, 266 .map_io = at91_map_io,
273 .init_early = ek_init_early, 267 .init_early = ek_init_early,
274 .init_irq = ek_init_irq, 268 .init_irq = at91_init_irq_default,
275 .init_machine = ek_board_init, 269 .init_machine = ek_board_init,
276MACHINE_END 270MACHINE_END
diff --git a/arch/arm/mach-at91/board-rm9200dk.c b/arch/arm/mach-at91/board-rm9200dk.c
index 97c6f211b11f..6f08faadb474 100644
--- a/arch/arm/mach-at91/board-rm9200dk.c
+++ b/arch/arm/mach-at91/board-rm9200dk.c
@@ -65,11 +65,6 @@ static void __init dk_init_early(void)
65 at91_set_serial_console(0); 65 at91_set_serial_console(0);
66} 66}
67 67
68static void __init dk_init_irq(void)
69{
70 at91rm9200_init_interrupts(NULL);
71}
72
73static struct at91_eth_data __initdata dk_eth_data = { 68static struct at91_eth_data __initdata dk_eth_data = {
74 .phy_irq_pin = AT91_PIN_PC4, 69 .phy_irq_pin = AT91_PIN_PC4,
75 .is_rmii = 1, 70 .is_rmii = 1,
@@ -230,6 +225,6 @@ MACHINE_START(AT91RM9200DK, "Atmel AT91RM9200-DK")
230 .timer = &at91rm9200_timer, 225 .timer = &at91rm9200_timer,
231 .map_io = at91_map_io, 226 .map_io = at91_map_io,
232 .init_early = dk_init_early, 227 .init_early = dk_init_early,
233 .init_irq = dk_init_irq, 228 .init_irq = at91_init_irq_default,
234 .init_machine = dk_board_init, 229 .init_machine = dk_board_init,
235MACHINE_END 230MACHINE_END
diff --git a/arch/arm/mach-at91/board-rm9200ek.c b/arch/arm/mach-at91/board-rm9200ek.c
index 72aa8bfbfc50..85bcccd7b9e4 100644
--- a/arch/arm/mach-at91/board-rm9200ek.c
+++ b/arch/arm/mach-at91/board-rm9200ek.c
@@ -65,11 +65,6 @@ static void __init ek_init_early(void)
65 at91_set_serial_console(0); 65 at91_set_serial_console(0);
66} 66}
67 67
68static void __init ek_init_irq(void)
69{
70 at91rm9200_init_interrupts(NULL);
71}
72
73static struct at91_eth_data __initdata ek_eth_data = { 68static struct at91_eth_data __initdata ek_eth_data = {
74 .phy_irq_pin = AT91_PIN_PC4, 69 .phy_irq_pin = AT91_PIN_PC4,
75 .is_rmii = 1, 70 .is_rmii = 1,
@@ -196,6 +191,6 @@ MACHINE_START(AT91RM9200EK, "Atmel AT91RM9200-EK")
196 .timer = &at91rm9200_timer, 191 .timer = &at91rm9200_timer,
197 .map_io = at91_map_io, 192 .map_io = at91_map_io,
198 .init_early = ek_init_early, 193 .init_early = ek_init_early,
199 .init_irq = ek_init_irq, 194 .init_irq = at91_init_irq_default,
200 .init_machine = ek_board_init, 195 .init_machine = ek_board_init,
201MACHINE_END 196MACHINE_END
diff --git a/arch/arm/mach-at91/board-sam9-l9260.c b/arch/arm/mach-at91/board-sam9-l9260.c
index 93c36bd95fd8..4d3a02f1289e 100644
--- a/arch/arm/mach-at91/board-sam9-l9260.c
+++ b/arch/arm/mach-at91/board-sam9-l9260.c
@@ -67,12 +67,6 @@ static void __init ek_init_early(void)
67 at91_set_serial_console(0); 67 at91_set_serial_console(0);
68} 68}
69 69
70static void __init ek_init_irq(void)
71{
72 at91sam9260_init_interrupts(NULL);
73}
74
75
76/* 70/*
77 * USB Host port 71 * USB Host port
78 */ 72 */
@@ -215,6 +209,6 @@ MACHINE_START(SAM9_L9260, "Olimex SAM9-L9260")
215 .timer = &at91sam926x_timer, 209 .timer = &at91sam926x_timer,
216 .map_io = at91_map_io, 210 .map_io = at91_map_io,
217 .init_early = ek_init_early, 211 .init_early = ek_init_early,
218 .init_irq = ek_init_irq, 212 .init_irq = at91_init_irq_default,
219 .init_machine = ek_board_init, 213 .init_machine = ek_board_init,
220MACHINE_END 214MACHINE_END
diff --git a/arch/arm/mach-at91/board-sam9260ek.c b/arch/arm/mach-at91/board-sam9260ek.c
index 044a40cdb222..8a50c3e67186 100644
--- a/arch/arm/mach-at91/board-sam9260ek.c
+++ b/arch/arm/mach-at91/board-sam9260ek.c
@@ -70,12 +70,6 @@ static void __init ek_init_early(void)
70 at91_set_serial_console(0); 70 at91_set_serial_console(0);
71} 71}
72 72
73static void __init ek_init_irq(void)
74{
75 at91sam9260_init_interrupts(NULL);
76}
77
78
79/* 73/*
80 * USB Host port 74 * USB Host port
81 */ 75 */
@@ -356,6 +350,6 @@ MACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK")
356 .timer = &at91sam926x_timer, 350 .timer = &at91sam926x_timer,
357 .map_io = at91_map_io, 351 .map_io = at91_map_io,
358 .init_early = ek_init_early, 352 .init_early = ek_init_early,
359 .init_irq = ek_init_irq, 353 .init_irq = at91_init_irq_default,
360 .init_machine = ek_board_init, 354 .init_machine = ek_board_init,
361MACHINE_END 355MACHINE_END
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c
index d8e0aa08009a..5096a0ec50c1 100644
--- a/arch/arm/mach-at91/board-sam9261ek.c
+++ b/arch/arm/mach-at91/board-sam9261ek.c
@@ -69,12 +69,6 @@ static void __init ek_init_early(void)
69 at91_set_serial_console(0); 69 at91_set_serial_console(0);
70} 70}
71 71
72static void __init ek_init_irq(void)
73{
74 at91sam9261_init_interrupts(NULL);
75}
76
77
78/* 72/*
79 * DM9000 ethernet device 73 * DM9000 ethernet device
80 */ 74 */
@@ -623,6 +617,6 @@ MACHINE_START(AT91SAM9G10EK, "Atmel AT91SAM9G10-EK")
623 .timer = &at91sam926x_timer, 617 .timer = &at91sam926x_timer,
624 .map_io = at91_map_io, 618 .map_io = at91_map_io,
625 .init_early = ek_init_early, 619 .init_early = ek_init_early,
626 .init_irq = ek_init_irq, 620 .init_irq = at91_init_irq_default,
627 .init_machine = ek_board_init, 621 .init_machine = ek_board_init,
628MACHINE_END 622MACHINE_END
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c
index d72a30cba364..ea8f185d3b9d 100644
--- a/arch/arm/mach-at91/board-sam9263ek.c
+++ b/arch/arm/mach-at91/board-sam9263ek.c
@@ -68,12 +68,6 @@ static void __init ek_init_early(void)
68 at91_set_serial_console(0); 68 at91_set_serial_console(0);
69} 69}
70 70
71static void __init ek_init_irq(void)
72{
73 at91sam9263_init_interrupts(NULL);
74}
75
76
77/* 71/*
78 * USB Host port 72 * USB Host port
79 */ 73 */
@@ -454,6 +448,6 @@ MACHINE_START(AT91SAM9263EK, "Atmel AT91SAM9263-EK")
454 .timer = &at91sam926x_timer, 448 .timer = &at91sam926x_timer,
455 .map_io = at91_map_io, 449 .map_io = at91_map_io,
456 .init_early = ek_init_early, 450 .init_early = ek_init_early,
457 .init_irq = ek_init_irq, 451 .init_irq = at91_init_irq_default,
458 .init_machine = ek_board_init, 452 .init_machine = ek_board_init,
459MACHINE_END 453MACHINE_END
diff --git a/arch/arm/mach-at91/board-sam9g20ek.c b/arch/arm/mach-at91/board-sam9g20ek.c
index 98e026ad8b78..817f59d7251b 100644
--- a/arch/arm/mach-at91/board-sam9g20ek.c
+++ b/arch/arm/mach-at91/board-sam9g20ek.c
@@ -81,12 +81,6 @@ static void __init ek_init_early(void)
81 at91_set_serial_console(0); 81 at91_set_serial_console(0);
82} 82}
83 83
84static void __init ek_init_irq(void)
85{
86 at91sam9260_init_interrupts(NULL);
87}
88
89
90/* 84/*
91 * USB Host port 85 * USB Host port
92 */ 86 */
@@ -406,7 +400,7 @@ MACHINE_START(AT91SAM9G20EK, "Atmel AT91SAM9G20-EK")
406 .timer = &at91sam926x_timer, 400 .timer = &at91sam926x_timer,
407 .map_io = at91_map_io, 401 .map_io = at91_map_io,
408 .init_early = ek_init_early, 402 .init_early = ek_init_early,
409 .init_irq = ek_init_irq, 403 .init_irq = at91_init_irq_default,
410 .init_machine = ek_board_init, 404 .init_machine = ek_board_init,
411MACHINE_END 405MACHINE_END
412 406
@@ -415,6 +409,6 @@ MACHINE_START(AT91SAM9G20EK_2MMC, "Atmel AT91SAM9G20-EK 2 MMC Slot Mod")
415 .timer = &at91sam926x_timer, 409 .timer = &at91sam926x_timer,
416 .map_io = at91_map_io, 410 .map_io = at91_map_io,
417 .init_early = ek_init_early, 411 .init_early = ek_init_early,
418 .init_irq = ek_init_irq, 412 .init_irq = at91_init_irq_default,
419 .init_machine = ek_board_init, 413 .init_machine = ek_board_init,
420MACHINE_END 414MACHINE_END
diff --git a/arch/arm/mach-at91/board-sam9m10g45ek.c b/arch/arm/mach-at91/board-sam9m10g45ek.c
index 2df5d4140b15..ad234ccbf57e 100644
--- a/arch/arm/mach-at91/board-sam9m10g45ek.c
+++ b/arch/arm/mach-at91/board-sam9m10g45ek.c
@@ -63,12 +63,6 @@ static void __init ek_init_early(void)
63 at91_set_serial_console(0); 63 at91_set_serial_console(0);
64} 64}
65 65
66static void __init ek_init_irq(void)
67{
68 at91sam9g45_init_interrupts(NULL);
69}
70
71
72/* 66/*
73 * USB HS Host port (common to OHCI & EHCI) 67 * USB HS Host port (common to OHCI & EHCI)
74 */ 68 */
@@ -424,6 +418,6 @@ MACHINE_START(AT91SAM9M10G45EK, "Atmel AT91SAM9M10G45-EK")
424 .timer = &at91sam926x_timer, 418 .timer = &at91sam926x_timer,
425 .map_io = at91_map_io, 419 .map_io = at91_map_io,
426 .init_early = ek_init_early, 420 .init_early = ek_init_early,
427 .init_irq = ek_init_irq, 421 .init_irq = at91_init_irq_default,
428 .init_machine = ek_board_init, 422 .init_machine = ek_board_init,
429MACHINE_END 423MACHINE_END
diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c
index defbca479c0e..4f14b54b93a8 100644
--- a/arch/arm/mach-at91/board-sam9rlek.c
+++ b/arch/arm/mach-at91/board-sam9rlek.c
@@ -53,12 +53,6 @@ static void __init ek_init_early(void)
53 at91_set_serial_console(0); 53 at91_set_serial_console(0);
54} 54}
55 55
56static void __init ek_init_irq(void)
57{
58 at91sam9rl_init_interrupts(NULL);
59}
60
61
62/* 56/*
63 * USB HS Device port 57 * USB HS Device port
64 */ 58 */
@@ -332,6 +326,6 @@ MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK")
332 .timer = &at91sam926x_timer, 326 .timer = &at91sam926x_timer,
333 .map_io = at91_map_io, 327 .map_io = at91_map_io,
334 .init_early = ek_init_early, 328 .init_early = ek_init_early,
335 .init_irq = ek_init_irq, 329 .init_irq = at91_init_irq_default,
336 .init_machine = ek_board_init, 330 .init_machine = ek_board_init,
337MACHINE_END 331MACHINE_END
diff --git a/arch/arm/mach-at91/board-snapper9260.c b/arch/arm/mach-at91/board-snapper9260.c
index c600b1491e44..25cd3ffce1ee 100644
--- a/arch/arm/mach-at91/board-snapper9260.c
+++ b/arch/arm/mach-at91/board-snapper9260.c
@@ -55,11 +55,6 @@ static void __init snapper9260_init_early(void)
55 at91_register_uart(AT91SAM9260_ID_US2, 3, 0); 55 at91_register_uart(AT91SAM9260_ID_US2, 3, 0);
56} 56}
57 57
58static void __init snapper9260_init_irq(void)
59{
60 at91sam9260_init_interrupts(NULL);
61}
62
63static struct at91_usbh_data __initdata snapper9260_usbh_data = { 58static struct at91_usbh_data __initdata snapper9260_usbh_data = {
64 .ports = 2, 59 .ports = 2,
65}; 60};
@@ -181,7 +176,7 @@ MACHINE_START(SNAPPER_9260, "Bluewater Systems Snapper 9260/9G20 module")
181 .timer = &at91sam926x_timer, 176 .timer = &at91sam926x_timer,
182 .map_io = at91_map_io, 177 .map_io = at91_map_io,
183 .init_early = snapper9260_init_early, 178 .init_early = snapper9260_init_early,
184 .init_irq = snapper9260_init_irq, 179 .init_irq = at91_init_irq_default,
185 .init_machine = snapper9260_board_init, 180 .init_machine = snapper9260_board_init,
186MACHINE_END 181MACHINE_END
187 182
diff --git a/arch/arm/mach-at91/board-stamp9g20.c b/arch/arm/mach-at91/board-stamp9g20.c
index e65efdaf9c4b..936e5fd7f406 100644
--- a/arch/arm/mach-at91/board-stamp9g20.c
+++ b/arch/arm/mach-at91/board-stamp9g20.c
@@ -76,12 +76,6 @@ static void __init portuxg20_init_early(void)
76 at91_register_uart(AT91SAM9260_ID_US5, 6, 0); 76 at91_register_uart(AT91SAM9260_ID_US5, 6, 0);
77} 77}
78 78
79static void __init init_irq(void)
80{
81 at91sam9260_init_interrupts(NULL);
82}
83
84
85/* 79/*
86 * NAND flash 80 * NAND flash
87 */ 81 */
@@ -301,7 +295,7 @@ MACHINE_START(PORTUXG20, "taskit PortuxG20")
301 .timer = &at91sam926x_timer, 295 .timer = &at91sam926x_timer,
302 .map_io = at91_map_io, 296 .map_io = at91_map_io,
303 .init_early = portuxg20_init_early, 297 .init_early = portuxg20_init_early,
304 .init_irq = init_irq, 298 .init_irq = at91_init_irq_default,
305 .init_machine = portuxg20_board_init, 299 .init_machine = portuxg20_board_init,
306MACHINE_END 300MACHINE_END
307 301
@@ -310,6 +304,6 @@ MACHINE_START(STAMP9G20, "taskit Stamp9G20")
310 .timer = &at91sam926x_timer, 304 .timer = &at91sam926x_timer,
311 .map_io = at91_map_io, 305 .map_io = at91_map_io,
312 .init_early = stamp9g20evb_init_early, 306 .init_early = stamp9g20evb_init_early,
313 .init_irq = init_irq, 307 .init_irq = at91_init_irq_default,
314 .init_machine = stamp9g20evb_board_init, 308 .init_machine = stamp9g20evb_board_init,
315MACHINE_END 309MACHINE_END
diff --git a/arch/arm/mach-at91/board-usb-a9260.c b/arch/arm/mach-at91/board-usb-a9260.c
index afc3b04d877b..8c4c1a02c4be 100644
--- a/arch/arm/mach-at91/board-usb-a9260.c
+++ b/arch/arm/mach-at91/board-usb-a9260.c
@@ -60,12 +60,6 @@ static void __init ek_init_early(void)
60 at91_set_serial_console(0); 60 at91_set_serial_console(0);
61} 61}
62 62
63static void __init ek_init_irq(void)
64{
65 at91sam9260_init_interrupts(NULL);
66}
67
68
69/* 63/*
70 * USB Host port 64 * USB Host port
71 */ 65 */
@@ -231,6 +225,6 @@ MACHINE_START(USB_A9260, "CALAO USB_A9260")
231 .timer = &at91sam926x_timer, 225 .timer = &at91sam926x_timer,
232 .map_io = at91_map_io, 226 .map_io = at91_map_io,
233 .init_early = ek_init_early, 227 .init_early = ek_init_early,
234 .init_irq = ek_init_irq, 228 .init_irq = at91_init_irq_default,
235 .init_machine = ek_board_init, 229 .init_machine = ek_board_init,
236MACHINE_END 230MACHINE_END
diff --git a/arch/arm/mach-at91/board-usb-a9263.c b/arch/arm/mach-at91/board-usb-a9263.c
index 25357e007a58..25e793782a4e 100644
--- a/arch/arm/mach-at91/board-usb-a9263.c
+++ b/arch/arm/mach-at91/board-usb-a9263.c
@@ -59,12 +59,6 @@ static void __init ek_init_early(void)
59 at91_set_serial_console(0); 59 at91_set_serial_console(0);
60} 60}
61 61
62static void __init ek_init_irq(void)
63{
64 at91sam9263_init_interrupts(NULL);
65}
66
67
68/* 62/*
69 * USB Host port 63 * USB Host port
70 */ 64 */
@@ -247,6 +241,6 @@ MACHINE_START(USB_A9263, "CALAO USB_A9263")
247 .timer = &at91sam926x_timer, 241 .timer = &at91sam926x_timer,
248 .map_io = at91_map_io, 242 .map_io = at91_map_io,
249 .init_early = ek_init_early, 243 .init_early = ek_init_early,
250 .init_irq = ek_init_irq, 244 .init_irq = at91_init_irq_default,
251 .init_machine = ek_board_init, 245 .init_machine = ek_board_init,
252MACHINE_END 246MACHINE_END
diff --git a/arch/arm/mach-at91/board-yl-9200.c b/arch/arm/mach-at91/board-yl-9200.c
index e8a8ab9d4ede..95edcbd2aec6 100644
--- a/arch/arm/mach-at91/board-yl-9200.c
+++ b/arch/arm/mach-at91/board-yl-9200.c
@@ -79,12 +79,6 @@ static void __init yl9200_init_early(void)
79 at91_set_serial_console(0); 79 at91_set_serial_console(0);
80} 80}
81 81
82static void __init yl9200_init_irq(void)
83{
84 at91rm9200_init_interrupts(NULL);
85}
86
87
88/* 82/*
89 * LEDs 83 * LEDs
90 */ 84 */
@@ -601,6 +595,6 @@ MACHINE_START(YL9200, "uCdragon YL-9200")
601 .timer = &at91rm9200_timer, 595 .timer = &at91rm9200_timer,
602 .map_io = at91_map_io, 596 .map_io = at91_map_io,
603 .init_early = yl9200_init_early, 597 .init_early = yl9200_init_early,
604 .init_irq = yl9200_init_irq, 598 .init_irq = at91_init_irq_default,
605 .init_machine = yl9200_board_init, 599 .init_machine = yl9200_board_init,
606MACHINE_END 600MACHINE_END
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index 3e9af0df13f0..ce113900258e 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -19,14 +19,9 @@ extern void __init at91_initialize(unsigned long main_clock);
19extern void __init at91x40_initialize(unsigned long main_clock); 19extern void __init at91x40_initialize(unsigned long main_clock);
20 20
21 /* Interrupts */ 21 /* Interrupts */
22extern void __init at91rm9200_init_interrupts(unsigned int priority[]); 22extern void __init at91_init_irq_default(void);
23extern void __init at91sam9260_init_interrupts(unsigned int priority[]); 23extern void __init at91_init_interrupts(unsigned int priority[]);
24extern void __init at91sam9261_init_interrupts(unsigned int priority[]);
25extern void __init at91sam9263_init_interrupts(unsigned int priority[]);
26extern void __init at91sam9rl_init_interrupts(unsigned int priority[]);
27extern void __init at91sam9g45_init_interrupts(unsigned int priority[]);
28extern void __init at91x40_init_interrupts(unsigned int priority[]); 24extern void __init at91x40_init_interrupts(unsigned int priority[]);
29extern void __init at91cap9_init_interrupts(unsigned int priority[]);
30extern void __init at91_aic_init(unsigned int priority[]); 25extern void __init at91_aic_init(unsigned int priority[]);
31 26
32 /* Timer */ 27 /* Timer */
diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c
index 096eb9805212..8962d9a1a8f6 100644
--- a/arch/arm/mach-at91/setup.c
+++ b/arch/arm/mach-at91/setup.c
@@ -18,6 +18,20 @@
18 18
19struct at91_soc __initdata at91_boot_soc; 19struct at91_soc __initdata at91_boot_soc;
20 20
21void __init at91_init_irq_default(void)
22{
23 at91_init_interrupts(at91_boot_soc.default_irq_priority);
24}
25
26void __init at91_init_interrupts(unsigned int *priority)
27{
28 /* Initialize the AIC interrupt controller */
29 at91_aic_init(priority);
30
31 /* Enable GPIO interrupts */
32 at91_gpio_irq_setup();
33}
34
21static struct map_desc at91_io_desc __initdata = { 35static struct map_desc at91_io_desc __initdata = {
22 .virtual = AT91_VA_BASE_SYS, 36 .virtual = AT91_VA_BASE_SYS,
23 .pfn = __phys_to_pfn(AT91_BASE_SYS), 37 .pfn = __phys_to_pfn(AT91_BASE_SYS),
diff --git a/arch/arm/mach-at91/soc.h b/arch/arm/mach-at91/soc.h
index 6d7a18f5a48f..99afa7c90d65 100644
--- a/arch/arm/mach-at91/soc.h
+++ b/arch/arm/mach-at91/soc.h
@@ -5,6 +5,7 @@
5 */ 5 */
6 6
7struct at91_soc { 7struct at91_soc {
8 unsigned int *default_irq_priority;
8 void (*map_io)(void); 9 void (*map_io)(void);
9 void (*init)(unsigned long main_clock); 10 void (*init)(unsigned long main_clock);
10}; 11};