diff options
author | pdeschrijver@nvidia.com <pdeschrijver@nvidia.com> | 2011-11-29 20:29:19 -0500 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2011-12-08 00:20:12 -0500 |
commit | 0d4f74792e2946cb2ef40a1673851eda1041358c (patch) | |
tree | 3a09fab581dff11adf0df12ce84c77bea15a164b /arch/arm/mach-tegra/irq.c | |
parent | 1292c129597ce42a75d9e97cd312c3242e10a6f3 (diff) |
arm/tegra: convert tegra20 to GIC devicetree binding
Convert tegra20 IRQ intialization to the GIC devicetree binding. Modify the
interrupt definitions in the dts files according to
Documentation/devicetree/bindings/arm/gic.txt
v3 (swarren):
* Moved of_irq_init() call into board-dt.c to avoid ifdef'ing it.
- Even with a dummy replacement if !CONFIG_OF, the reference from
tegra_dt_irq_match[] to gic_of_init() would still have to be ifdef'd
- It's plausible that tegra_dt_irq_match[] may need to contain more
entries in the future, and defining what they are seems more suitable
for board-dt.c than irq.c
v2 (swarren):
* Removed some stale GIC init code from board-dt.c
* Undid some accidental 0x -> 0x0 search/replace.
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
[olof: added include of <asm/hardware/gic.h> for compile to pass]
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/mach-tegra/irq.c')
-rw-r--r-- | arch/arm/mach-tegra/irq.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c index 4956c3cea731..004b0fdf0d76 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 | ||
@@ -129,6 +130,11 @@ void __init tegra_init_irq(void) | |||
129 | gic_arch_extn.irq_unmask = tegra_unmask; | 130 | gic_arch_extn.irq_unmask = tegra_unmask; |
130 | gic_arch_extn.irq_retrigger = tegra_retrigger; | 131 | gic_arch_extn.irq_retrigger = tegra_retrigger; |
131 | 132 | ||
132 | gic_init(0, 29, IO_ADDRESS(TEGRA_ARM_INT_DIST_BASE), | 133 | /* |
133 | IO_ADDRESS(TEGRA_ARM_PERIF_BASE + 0x100)); | 134 | * Check if there is a devicetree present, since the GIC will be |
135 | * initialized elsewhere under DT. | ||
136 | */ | ||
137 | if (!of_have_populated_dt()) | ||
138 | gic_init(0, 29, IO_ADDRESS(TEGRA_ARM_INT_DIST_BASE), | ||
139 | IO_ADDRESS(TEGRA_ARM_PERIF_BASE + 0x100)); | ||
134 | } | 140 | } |