diff options
| author | Benoit Cousson <b-cousson@ti.com> | 2011-09-21 23:30:31 +0200 | 
|---|---|---|
| committer | Benoit Cousson <b-cousson@ti.com> | 2012-02-27 10:33:20 +0100 | 
| commit | fbf75da733e82bb17a01e1b907b0e40d9c028823 (patch) | |
| tree | b99adf5a2671db3b5821e63e439ff14b74b0b31c /arch/arm/mach-omap2/board-generic.c | |
| parent | d65c5423544d2d5a66dcd1c7a8630d3e32ff595b (diff) | |
| download | olio-linux-3.10-fbf75da733e82bb17a01e1b907b0e40d9c028823.tar.xz olio-linux-3.10-fbf75da733e82bb17a01e1b907b0e40d9c028823.zip  | |
ARM: OMAP2+: board-generic: Use of_irq_init API
Use the of_irq_init API introduced in 3.2 to handle
interrupt-controller with DT.
Update the irq_match table to map the proper XXX_of_init
functions for INTC and GIC drivers.
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'arch/arm/mach-omap2/board-generic.c')
| -rw-r--r-- | arch/arm/mach-omap2/board-generic.c | 30 | 
1 files changed, 16 insertions, 14 deletions
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 02d7e828a14..12f4c5ff23b 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c @@ -12,6 +12,7 @@   * published by the Free Software Foundation.   */  #include <linux/io.h> +#include <linux/of_irq.h>  #include <linux/of_platform.h>  #include <linux/irqdomain.h>  #include <linux/i2c/twl.h> @@ -24,6 +25,17 @@  #include "common.h"  #include "common-board-devices.h" +static struct of_device_id irq_match[] __initdata = { +	{ .compatible = "ti,omap2-intc", .data = omap_intc_of_init, }, +	{ .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, +	{ } +}; + +static void __init omap_init_irq(void) +{ +	of_irq_init(irq_match); +} +  /*   * XXX: Still needed to boot until the i2c & twl driver is adapted to   * device-tree @@ -58,18 +70,8 @@ static struct of_device_id omap_dt_match_table[] __initdata = {  	{ }  }; -static struct of_device_id intc_match[] __initdata = { -	{ .compatible = "ti,omap3-intc", }, -	{ .compatible = "arm,cortex-a9-gic", }, -	{ } -}; -  static void __init omap_generic_init(void)  { -	struct device_node *node = of_find_matching_node(NULL, intc_match); -	if (node) -		irq_domain_add_legacy(node, 32, 0, 0, &irq_domain_simple_ops, NULL); -  	omap_sdrc_init(NULL, NULL);  	of_platform_populate(NULL, omap_dt_match_table, NULL, NULL); @@ -101,7 +103,7 @@ DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")  	.reserve	= omap_reserve,  	.map_io		= omap242x_map_io,  	.init_early	= omap2420_init_early, -	.init_irq	= omap2_init_irq, +	.init_irq	= omap_init_irq,  	.handle_irq	= omap2_intc_handle_irq,  	.init_machine	= omap_generic_init,  	.timer		= &omap2_timer, @@ -120,7 +122,7 @@ DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")  	.reserve	= omap_reserve,  	.map_io		= omap243x_map_io,  	.init_early	= omap2430_init_early, -	.init_irq	= omap2_init_irq, +	.init_irq	= omap_init_irq,  	.handle_irq	= omap2_intc_handle_irq,  	.init_machine	= omap_generic_init,  	.timer		= &omap2_timer, @@ -139,7 +141,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")  	.reserve	= omap_reserve,  	.map_io		= omap3_map_io,  	.init_early	= omap3430_init_early, -	.init_irq	= omap3_init_irq, +	.init_irq	= omap_init_irq,  	.handle_irq	= omap3_intc_handle_irq,  	.init_machine	= omap3_init,  	.timer		= &omap3_timer, @@ -158,7 +160,7 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")  	.reserve	= omap_reserve,  	.map_io		= omap4_map_io,  	.init_early	= omap4430_init_early, -	.init_irq	= gic_init_irq, +	.init_irq	= omap_init_irq,  	.handle_irq	= gic_handle_irq,  	.init_machine	= omap4_init,  	.timer		= &omap4_timer,  |