diff options
Diffstat (limited to 'arch/arm/mach-tegra/irq.c')
-rw-r--r-- | arch/arm/mach-tegra/irq.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c index 4956c3cea731..4e1afcd54fae 100644 --- a/arch/arm/mach-tegra/irq.c +++ b/arch/arm/mach-tegra/irq.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
22 | #include <linux/irq.h> | 22 | #include <linux/irq.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <linux/of.h> | ||
24 | 25 | ||
25 | #include <asm/hardware/gic.h> | 26 | #include <asm/hardware/gic.h> |
26 | 27 | ||
@@ -28,10 +29,6 @@ | |||
28 | 29 | ||
29 | #include "board.h" | 30 | #include "board.h" |
30 | 31 | ||
31 | #define INT_SYS_NR (INT_GPIO_BASE - INT_PRI_BASE) | ||
32 | #define INT_SYS_SZ (INT_SEC_BASE - INT_PRI_BASE) | ||
33 | #define PPI_NR ((INT_SYS_NR+INT_SYS_SZ-1)/INT_SYS_SZ) | ||
34 | |||
35 | #define ICTLR_CPU_IEP_VFIQ 0x08 | 32 | #define ICTLR_CPU_IEP_VFIQ 0x08 |
36 | #define ICTLR_CPU_IEP_FIR 0x14 | 33 | #define ICTLR_CPU_IEP_FIR 0x14 |
37 | #define ICTLR_CPU_IEP_FIR_SET 0x18 | 34 | #define ICTLR_CPU_IEP_FIR_SET 0x18 |
@@ -129,6 +126,11 @@ void __init tegra_init_irq(void) | |||
129 | gic_arch_extn.irq_unmask = tegra_unmask; | 126 | gic_arch_extn.irq_unmask = tegra_unmask; |
130 | gic_arch_extn.irq_retrigger = tegra_retrigger; | 127 | gic_arch_extn.irq_retrigger = tegra_retrigger; |
131 | 128 | ||
132 | gic_init(0, 29, IO_ADDRESS(TEGRA_ARM_INT_DIST_BASE), | 129 | /* |
133 | IO_ADDRESS(TEGRA_ARM_PERIF_BASE + 0x100)); | 130 | * Check if there is a devicetree present, since the GIC will be |
131 | * initialized elsewhere under DT. | ||
132 | */ | ||
133 | if (!of_have_populated_dt()) | ||
134 | gic_init(0, 29, IO_ADDRESS(TEGRA_ARM_INT_DIST_BASE), | ||
135 | IO_ADDRESS(TEGRA_ARM_PERIF_BASE + 0x100)); | ||
134 | } | 136 | } |