aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/omap4-common.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2015-02-04 07:53:17 +0100
committerIngo Molnar <mingo@kernel.org>2015-02-04 07:53:17 +0100
commit2622e849a1d3d3ef531d1cc33308bb7fd00eee40 (patch)
treef2be9d9f08444cb93b3a8f87099fe4ff8ac3cd57 /arch/arm/mach-omap2/omap4-common.c
parent996636ddae5cab8883bd76b996cd4f2ea9a152be (diff)
parente36f014edff70fc02b3d3d79cead1d58f289332e (diff)
downloadkernel_replicant_linux-2622e849a1d3d3ef531d1cc33308bb7fd00eee40.tar.gz
kernel_replicant_linux-2622e849a1d3d3ef531d1cc33308bb7fd00eee40.tar.bz2
kernel_replicant_linux-2622e849a1d3d3ef531d1cc33308bb7fd00eee40.zip
Merge tag 'v3.19-rc7' into locking/core, to refresh the branch before applying new changes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/arm/mach-omap2/omap4-common.c')
-rw-r--r--arch/arm/mach-omap2/omap4-common.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c
index b7cb44abe49b..cc30e49a4cc2 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -256,6 +256,38 @@ static int __init omap4_sar_ram_init(void)
}
omap_early_initcall(omap4_sar_ram_init);
+static struct of_device_id gic_match[] = {
+ { .compatible = "arm,cortex-a9-gic", },
+ { .compatible = "arm,cortex-a15-gic", },
+ { },
+};
+
+static struct device_node *gic_node;
+
+unsigned int omap4_xlate_irq(unsigned int hwirq)
+{
+ struct of_phandle_args irq_data;
+ unsigned int irq;
+
+ if (!gic_node)
+ gic_node = of_find_matching_node(NULL, gic_match);
+
+ if (WARN_ON(!gic_node))
+ return hwirq;
+
+ irq_data.np = gic_node;
+ irq_data.args_count = 3;
+ irq_data.args[0] = 0;
+ irq_data.args[1] = hwirq - OMAP44XX_IRQ_GIC_START;
+ irq_data.args[2] = IRQ_TYPE_LEVEL_HIGH;
+
+ irq = irq_create_of_mapping(&irq_data);
+ if (WARN_ON(!irq))
+ irq = hwirq;
+
+ return irq;
+}
+
void __init omap_gic_of_init(void)
{
struct device_node *np;