aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2011-09-28 22:25:31 -0400
committerArnd Bergmann <arnd@arndb.de>2011-10-31 09:03:24 -0400
commit4294f8baaf174c9aa57886e7ed27caf4b02578f6 (patch)
treeefc535ff45a6d405a6befecd421ad1091a2d5ad6 /arch/arm/include
parent6d274309d0e64bdbdb6c50945ca2964596e8fa5a (diff)
ARM: gic: add irq_domain support
Convert the gic interrupt controller to use irq domains in preparation for device-tree binding and MULTI_IRQ. This allows for translation between GIC interrupt IDs and Linux irq numbers. The meaning of irq_offset has changed. It now is just the number of skipped GIC interrupt IDs for the controller. It will be 16 for primary GIC and 32 for secondary GICs. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Cc: Marc Zyngier <marc.zyngier@arm.com> Reviewed-by: Jamie Iles <jamie@jamieiles.com> Tested-by: Thomas Abraham <thomas.abraham@linaro.org> Acked-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'arch/arm/include')
-rw-r--r--arch/arm/include/asm/hardware/gic.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/include/asm/hardware/gic.h b/arch/arm/include/asm/hardware/gic.h
index 14867e12f205..43a05d90e43b 100644
--- a/arch/arm/include/asm/hardware/gic.h
+++ b/arch/arm/include/asm/hardware/gic.h
@@ -33,6 +33,9 @@
33#define GIC_DIST_SOFTINT 0xf00 33#define GIC_DIST_SOFTINT 0xf00
34 34
35#ifndef __ASSEMBLY__ 35#ifndef __ASSEMBLY__
36#include <linux/irqdomain.h>
37struct device_node;
38
36extern void __iomem *gic_cpu_base_addr; 39extern void __iomem *gic_cpu_base_addr;
37extern struct irq_chip gic_arch_extn; 40extern struct irq_chip gic_arch_extn;
38 41
@@ -42,7 +45,6 @@ void gic_cascade_irq(unsigned int gic_nr, unsigned int irq);
42void gic_raise_softirq(const struct cpumask *mask, unsigned int irq); 45void gic_raise_softirq(const struct cpumask *mask, unsigned int irq);
43 46
44struct gic_chip_data { 47struct gic_chip_data {
45 unsigned int irq_offset;
46 void __iomem *dist_base; 48 void __iomem *dist_base;
47 void __iomem *cpu_base; 49 void __iomem *cpu_base;
48#ifdef CONFIG_CPU_PM 50#ifdef CONFIG_CPU_PM
@@ -52,6 +54,9 @@ struct gic_chip_data {
52 u32 __percpu *saved_ppi_enable; 54 u32 __percpu *saved_ppi_enable;
53 u32 __percpu *saved_ppi_conf; 55 u32 __percpu *saved_ppi_conf;
54#endif 56#endif
57#ifdef CONFIG_IRQ_DOMAIN
58 struct irq_domain domain;
59#endif
55 unsigned int gic_irqs; 60 unsigned int gic_irqs;
56}; 61};
57#endif 62#endif