aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-integrator
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-integrator')
-rw-r--r--arch/arm/mach-integrator/include/mach/irqs.h109
-rw-r--r--arch/arm/mach-integrator/integrator_ap.c5
-rw-r--r--arch/arm/mach-integrator/integrator_cp.c6
3 files changed, 57 insertions, 63 deletions
diff --git a/arch/arm/mach-integrator/include/mach/irqs.h b/arch/arm/mach-integrator/include/mach/irqs.h
index 7371018455d2..eff0adad9ae3 100644
--- a/arch/arm/mach-integrator/include/mach/irqs.h
+++ b/arch/arm/mach-integrator/include/mach/irqs.h
@@ -19,64 +19,63 @@
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 20 */
21 21
22/* 22/*
23 * Interrupt numbers 23 * Interrupt numbers, all of the above are just static reservations
24 * used so they can be encoded into device resources. They will finally
25 * be done away with when switching to device tree.
24 */ 26 */
25#define IRQ_PIC_START 1 27#define IRQ_PIC_START 64
26#define IRQ_SOFTINT 1 28#define IRQ_SOFTINT (IRQ_PIC_START+0)
27#define IRQ_UARTINT0 2 29#define IRQ_UARTINT0 (IRQ_PIC_START+1)
28#define IRQ_UARTINT1 3 30#define IRQ_UARTINT1 (IRQ_PIC_START+2)
29#define IRQ_KMIINT0 4 31#define IRQ_KMIINT0 (IRQ_PIC_START+3)
30#define IRQ_KMIINT1 5 32#define IRQ_KMIINT1 (IRQ_PIC_START+4)
31#define IRQ_TIMERINT0 6 33#define IRQ_TIMERINT0 (IRQ_PIC_START+5)
32#define IRQ_TIMERINT1 7 34#define IRQ_TIMERINT1 (IRQ_PIC_START+6)
33#define IRQ_TIMERINT2 8 35#define IRQ_TIMERINT2 (IRQ_PIC_START+7)
34#define IRQ_RTCINT 9 36#define IRQ_RTCINT (IRQ_PIC_START+8)
35#define IRQ_AP_EXPINT0 10 37#define IRQ_AP_EXPINT0 (IRQ_PIC_START+9)
36#define IRQ_AP_EXPINT1 11 38#define IRQ_AP_EXPINT1 (IRQ_PIC_START+10)
37#define IRQ_AP_EXPINT2 12 39#define IRQ_AP_EXPINT2 (IRQ_PIC_START+11)
38#define IRQ_AP_EXPINT3 13 40#define IRQ_AP_EXPINT3 (IRQ_PIC_START+12)
39#define IRQ_AP_PCIINT0 14 41#define IRQ_AP_PCIINT0 (IRQ_PIC_START+13)
40#define IRQ_AP_PCIINT1 15 42#define IRQ_AP_PCIINT1 (IRQ_PIC_START+14)
41#define IRQ_AP_PCIINT2 16 43#define IRQ_AP_PCIINT2 (IRQ_PIC_START+15)
42#define IRQ_AP_PCIINT3 17 44#define IRQ_AP_PCIINT3 (IRQ_PIC_START+16)
43#define IRQ_AP_V3INT 18 45#define IRQ_AP_V3INT (IRQ_PIC_START+17)
44#define IRQ_AP_CPINT0 19 46#define IRQ_AP_CPINT0 (IRQ_PIC_START+18)
45#define IRQ_AP_CPINT1 20 47#define IRQ_AP_CPINT1 (IRQ_PIC_START+19)
46#define IRQ_AP_LBUSTIMEOUT 21 48#define IRQ_AP_LBUSTIMEOUT (IRQ_PIC_START+20)
47#define IRQ_AP_APCINT 22 49#define IRQ_AP_APCINT (IRQ_PIC_START+21)
48#define IRQ_CP_CLCDCINT 23 50#define IRQ_CP_CLCDCINT (IRQ_PIC_START+22)
49#define IRQ_CP_MMCIINT0 24 51#define IRQ_CP_MMCIINT0 (IRQ_PIC_START+23)
50#define IRQ_CP_MMCIINT1 25 52#define IRQ_CP_MMCIINT1 (IRQ_PIC_START+24)
51#define IRQ_CP_AACIINT 26 53#define IRQ_CP_AACIINT (IRQ_PIC_START+25)
52#define IRQ_CP_CPPLDINT 27 54#define IRQ_CP_CPPLDINT (IRQ_PIC_START+26)
53#define IRQ_CP_ETHINT 28 55#define IRQ_CP_ETHINT (IRQ_PIC_START+27)
54#define IRQ_CP_TSPENINT 29 56#define IRQ_CP_TSPENINT (IRQ_PIC_START+28)
55#define IRQ_PIC_END 29 57#define IRQ_PIC_END (IRQ_PIC_START+28)
56 58
57#define IRQ_CIC_START 32 59#define IRQ_CIC_START (IRQ_PIC_END+1)
58#define IRQ_CM_SOFTINT 32 60#define IRQ_CM_SOFTINT (IRQ_CIC_START+0)
59#define IRQ_CM_COMMRX 33 61#define IRQ_CM_COMMRX (IRQ_CIC_START+1)
60#define IRQ_CM_COMMTX 34 62#define IRQ_CM_COMMTX (IRQ_CIC_START+2)
61#define IRQ_CIC_END 34 63#define IRQ_CIC_END (IRQ_CIC_START+2)
62 64
63/* 65/*
64 * IntegratorCP only 66 * IntegratorCP only
65 */ 67 */
66#define IRQ_SIC_START 35 68#define IRQ_SIC_START (IRQ_CIC_END+1)
67#define IRQ_SIC_CP_SOFTINT 35 69#define IRQ_SIC_CP_SOFTINT (IRQ_SIC_START+0)
68#define IRQ_SIC_CP_RI0 36 70#define IRQ_SIC_CP_RI0 (IRQ_SIC_START+1)
69#define IRQ_SIC_CP_RI1 37 71#define IRQ_SIC_CP_RI1 (IRQ_SIC_START+2)
70#define IRQ_SIC_CP_CARDIN 38 72#define IRQ_SIC_CP_CARDIN (IRQ_SIC_START+3)
71#define IRQ_SIC_CP_LMINT0 39 73#define IRQ_SIC_CP_LMINT0 (IRQ_SIC_START+4)
72#define IRQ_SIC_CP_LMINT1 40 74#define IRQ_SIC_CP_LMINT1 (IRQ_SIC_START+5)
73#define IRQ_SIC_CP_LMINT2 41 75#define IRQ_SIC_CP_LMINT2 (IRQ_SIC_START+6)
74#define IRQ_SIC_CP_LMINT3 42 76#define IRQ_SIC_CP_LMINT3 (IRQ_SIC_START+7)
75#define IRQ_SIC_CP_LMINT4 43 77#define IRQ_SIC_CP_LMINT4 (IRQ_SIC_START+8)
76#define IRQ_SIC_CP_LMINT5 44 78#define IRQ_SIC_CP_LMINT5 (IRQ_SIC_START+9)
77#define IRQ_SIC_CP_LMINT6 45 79#define IRQ_SIC_CP_LMINT6 (IRQ_SIC_START+10)
78#define IRQ_SIC_CP_LMINT7 46 80#define IRQ_SIC_CP_LMINT7 (IRQ_SIC_START+11)
79#define IRQ_SIC_END 46 81#define IRQ_SIC_END (IRQ_SIC_START+11)
80
81#define NR_IRQS_INTEGRATOR_AP 34
82#define NR_IRQS_INTEGRATOR_CP 47
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c
index a0a7cbbb7a70..11e2a4145807 100644
--- a/arch/arm/mach-integrator/integrator_ap.c
+++ b/arch/arm/mach-integrator/integrator_ap.c
@@ -31,6 +31,7 @@
31#include <linux/clockchips.h> 31#include <linux/clockchips.h>
32#include <linux/interrupt.h> 32#include <linux/interrupt.h>
33#include <linux/io.h> 33#include <linux/io.h>
34#include <linux/irqchip/versatile-fpga.h>
34#include <linux/mtd/physmap.h> 35#include <linux/mtd/physmap.h>
35#include <linux/clk.h> 36#include <linux/clk.h>
36#include <linux/platform_data/clk-integrator.h> 37#include <linux/platform_data/clk-integrator.h>
@@ -59,8 +60,6 @@
59#include <asm/mach/pci.h> 60#include <asm/mach/pci.h>
60#include <asm/mach/time.h> 61#include <asm/mach/time.h>
61 62
62#include <plat/fpga-irq.h>
63
64#include "common.h" 63#include "common.h"
65 64
66/* Base address to the AP system controller */ 65/* Base address to the AP system controller */
@@ -584,7 +583,6 @@ static const char * ap_dt_board_compat[] = {
584DT_MACHINE_START(INTEGRATOR_AP_DT, "ARM Integrator/AP (Device Tree)") 583DT_MACHINE_START(INTEGRATOR_AP_DT, "ARM Integrator/AP (Device Tree)")
585 .reserve = integrator_reserve, 584 .reserve = integrator_reserve,
586 .map_io = ap_map_io, 585 .map_io = ap_map_io,
587 .nr_irqs = NR_IRQS_INTEGRATOR_AP,
588 .init_early = ap_init_early, 586 .init_early = ap_init_early,
589 .init_irq = ap_init_irq_of, 587 .init_irq = ap_init_irq_of,
590 .handle_irq = fpga_handle_irq, 588 .handle_irq = fpga_handle_irq,
@@ -715,7 +713,6 @@ MACHINE_START(INTEGRATOR, "ARM-Integrator")
715 .atag_offset = 0x100, 713 .atag_offset = 0x100,
716 .reserve = integrator_reserve, 714 .reserve = integrator_reserve,
717 .map_io = ap_map_io_atag, 715 .map_io = ap_map_io_atag,
718 .nr_irqs = NR_IRQS_INTEGRATOR_AP,
719 .init_early = ap_init_early, 716 .init_early = ap_init_early,
720 .init_irq = ap_init_irq, 717 .init_irq = ap_init_irq,
721 .handle_irq = fpga_handle_irq, 718 .handle_irq = fpga_handle_irq,
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
index 29df06b35d0d..7322838c0447 100644
--- a/arch/arm/mach-integrator/integrator_cp.c
+++ b/arch/arm/mach-integrator/integrator_cp.c
@@ -20,6 +20,7 @@
20#include <linux/amba/clcd.h> 20#include <linux/amba/clcd.h>
21#include <linux/amba/mmci.h> 21#include <linux/amba/mmci.h>
22#include <linux/io.h> 22#include <linux/io.h>
23#include <linux/irqchip/versatile-fpga.h>
23#include <linux/gfp.h> 24#include <linux/gfp.h>
24#include <linux/mtd/physmap.h> 25#include <linux/mtd/physmap.h>
25#include <linux/platform_data/clk-integrator.h> 26#include <linux/platform_data/clk-integrator.h>
@@ -47,7 +48,6 @@
47#include <asm/hardware/timer-sp.h> 48#include <asm/hardware/timer-sp.h>
48 49
49#include <plat/clcd.h> 50#include <plat/clcd.h>
50#include <plat/fpga-irq.h>
51#include <plat/sched_clock.h> 51#include <plat/sched_clock.h>
52 52
53#include "common.h" 53#include "common.h"
@@ -387,7 +387,6 @@ static const char * intcp_dt_board_compat[] = {
387DT_MACHINE_START(INTEGRATOR_CP_DT, "ARM Integrator/CP (Device Tree)") 387DT_MACHINE_START(INTEGRATOR_CP_DT, "ARM Integrator/CP (Device Tree)")
388 .reserve = integrator_reserve, 388 .reserve = integrator_reserve,
389 .map_io = intcp_map_io, 389 .map_io = intcp_map_io,
390 .nr_irqs = NR_IRQS_INTEGRATOR_CP,
391 .init_early = intcp_init_early, 390 .init_early = intcp_init_early,
392 .init_irq = intcp_init_irq_of, 391 .init_irq = intcp_init_irq_of,
393 .handle_irq = fpga_handle_irq, 392 .handle_irq = fpga_handle_irq,
@@ -482,7 +481,7 @@ static void __init intcp_init_irq(void)
482 u32 pic_mask, cic_mask, sic_mask; 481 u32 pic_mask, cic_mask, sic_mask;
483 482
484 /* These masks are for the HW IRQ registers */ 483 /* These masks are for the HW IRQ registers */
485 pic_mask = ~((~0u) << (11 - IRQ_PIC_START)); 484 pic_mask = ~((~0u) << (11 - 0));
486 pic_mask |= (~((~0u) << (29 - 22))) << 22; 485 pic_mask |= (~((~0u) << (29 - 22))) << 22;
487 cic_mask = ~((~0u) << (1 + IRQ_CIC_END - IRQ_CIC_START)); 486 cic_mask = ~((~0u) << (1 + IRQ_CIC_END - IRQ_CIC_START));
488 sic_mask = ~((~0u) << (1 + IRQ_SIC_END - IRQ_SIC_START)); 487 sic_mask = ~((~0u) << (1 + IRQ_SIC_END - IRQ_SIC_START));
@@ -563,7 +562,6 @@ MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP")
563 .atag_offset = 0x100, 562 .atag_offset = 0x100,
564 .reserve = integrator_reserve, 563 .reserve = integrator_reserve,
565 .map_io = intcp_map_io_atag, 564 .map_io = intcp_map_io_atag,
566 .nr_irqs = NR_IRQS_INTEGRATOR_CP,
567 .init_early = intcp_init_early, 565 .init_early = intcp_init_early,
568 .init_irq = intcp_init_irq, 566 .init_irq = intcp_init_irq,
569 .handle_irq = fpga_handle_irq, 567 .handle_irq = fpga_handle_irq,