diff options
author | James Hogan <james.hogan@imgtec.com> | 2012-10-09 05:54:47 -0400 |
---|---|---|
committer | James Hogan <james.hogan@imgtec.com> | 2013-03-02 15:09:48 -0500 |
commit | 5698c50d9da4ab2f57d98c64ea97675dcaf2a608 (patch) | |
tree | 5b82a24daa8bbb85703489340cbfdcb00a2f20a4 /arch/metag | |
parent | 63047ea36070d11f902ab7d09a5a18aea037c0f7 (diff) |
metag: Internal and external irqchips
Meta core internal interrupts (from HWSTATMETA and friends) are vectored
onto the TR1 core trigger for the current thread. This is demultiplexed
in irq-metag.c to individual Linux IRQs for each internal interrupt.
External SoC interrupts (from HWSTATEXT and friends) are vectored onto
the TR2 core trigger for the current thread. This is demultiplexed in
irq-metag-ext.c to individual Linux IRQs for each external SoC interrupt.
The external irqchip has devicetree bindings for configuring the number
of irq banks and the type of masking available.
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Rob Landley <rob@landley.net>
Cc: Dom Cobley <popcornmix@gmail.com>
Cc: Simon Arlott <simon@fire.lp0.eu>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: devicetree-discuss@lists.ozlabs.org
Cc: linux-doc@vger.kernel.org
Diffstat (limited to 'arch/metag')
-rw-r--r-- | arch/metag/kernel/irq.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/metag/kernel/irq.c b/arch/metag/kernel/irq.c index 7c043491e1e3..87707efeb0a3 100644 --- a/arch/metag/kernel/irq.c +++ b/arch/metag/kernel/irq.c | |||
@@ -6,6 +6,8 @@ | |||
6 | #include <linux/kernel.h> | 6 | #include <linux/kernel.h> |
7 | #include <linux/interrupt.h> | 7 | #include <linux/interrupt.h> |
8 | #include <linux/init.h> | 8 | #include <linux/init.h> |
9 | #include <linux/irqchip/metag-ext.h> | ||
10 | #include <linux/irqchip/metag.h> | ||
9 | #include <linux/irqdomain.h> | 11 | #include <linux/irqdomain.h> |
10 | #include <linux/ratelimit.h> | 12 | #include <linux/ratelimit.h> |
11 | 13 | ||
@@ -258,6 +260,9 @@ void __init init_IRQ(void) | |||
258 | 260 | ||
259 | irq_ctx_init(smp_processor_id()); | 261 | irq_ctx_init(smp_processor_id()); |
260 | 262 | ||
263 | init_internal_IRQ(); | ||
264 | init_external_IRQ(); | ||
265 | |||
261 | if (machine_desc->init_irq) | 266 | if (machine_desc->init_irq) |
262 | machine_desc->init_irq(); | 267 | machine_desc->init_irq(); |
263 | } | 268 | } |