[PATCH v2] ARM: Tegra: dt: Set up an OF IRQ translation range

Grant Likely grant.likely at secretlab.ca
Sat Apr 30 16:36:41 EST 2011


On Fri, Apr 29, 2011 at 10:10:08PM -0600, Stephen Warren wrote:
> Without this, none of the devicetree devices in tegra-harmony.dts can
> map interrupts, and the system fails to boot.
> 
> Signed-off-by: Stephen Warren <swarren at nvidia.com>

Merged into arm/dt: full tegra devicetree support patch, thanks.

g.

> ---
> v2: Add a Tegra-specific compatible value, search by that value, minor
>     formatting fixes.
> 
>  arch/arm/boot/dts/tegra-harmony.dts |    3 +++
>  arch/arm/mach-tegra/board-dt.c      |   14 ++++++++++++++
>  2 files changed, 17 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts
> index 82fa0c2..a22c1bb 100644
> --- a/arch/arm/boot/dts/tegra-harmony.dts
> +++ b/arch/arm/boot/dts/tegra-harmony.dts
> @@ -25,8 +25,11 @@
>  		ranges;
>  
>  		intc: intc {
> +			compatible = "nvidia,tegra250-gic", "arm,gic";
>  			interrupt-controller;
>  			#interrupt-cells = <1>;
> +			reg = < 0x50041000 0x1000
> +			        0x50040100 0x100 >;
>  		};
>  	};
>  
> diff --git a/arch/arm/mach-tegra/board-dt.c b/arch/arm/mach-tegra/board-dt.c
> index 0efedb8..fb0d75d 100644
> --- a/arch/arm/mach-tegra/board-dt.c
> +++ b/arch/arm/mach-tegra/board-dt.c
> @@ -22,7 +22,9 @@
>  #include <linux/clk.h>
>  #include <linux/dma-mapping.h>
>  #include <linux/of.h>
> +#include <linux/of_address.h>
>  #include <linux/of_fdt.h>
> +#include <linux/of_irq.h>
>  #include <linux/of_platform.h>
>  #include <linux/pda_power.h>
>  #include <linux/io.h>
> @@ -137,8 +139,20 @@ static struct of_device_id tegra_dt_match_table[] __initdata = {
>  	{}
>  };
>  
> +struct of_device_id gic_match[] __initdata = {
> +	{ .compatible = "nvidia,tegra250-gic", },
> +	{}
> +};
> +
>  static void __init tegra_dt_init(void)
>  {
> +	struct device_node *node;
> +
> +	node = of_find_matching_node_by_address(NULL, gic_match,
> +						TEGRA_ARM_INT_DIST_BASE);
> +	if (node)
> +		of_irq_domain_add_simple(node, INT_GIC_BASE, INT_MAIN_NR);
> +
>  	/*
>  	 * Before registering devices; tell Linux about which device nodes
>  	 * are intended to be registered so that it doesn't create devices
> -- 
> 1.7.1
> 


More information about the devicetree-discuss mailing list