[PATCH V2] arm/tegra: convert tegra20 to GIC devicetree binding
Nicolas Ferre
nicolas.ferre at atmel.com
Wed Nov 30 04:17:27 EST 2011
On 11/29/2011 06:13 PM, Stephen Warren :
> Cousson, Benoit wrote at Tuesday, November 29, 2011 6:01 AM:
>> Hi Stephen& Peter,
>>
>> On 11/29/2011 1:54 AM, Stephen Warren wrote:
>>> From: pdeschrijver at nvidia.com<pdeschrijver at nvidia.com>
>>
>> [...]
>>
>>> @@ -125,6 +131,14 @@ void __init tegra_init_irq(void)
>>> gic_arch_extn.irq_unmask = tegra_unmask;
>>> gic_arch_extn.irq_retrigger = tegra_retrigger;
>>>
>>> - gic_init(0, 29, IO_ADDRESS(TEGRA_ARM_INT_DIST_BASE),
>>> - IO_ADDRESS(TEGRA_ARM_PERIF_BASE + 0x100));
>>> +#ifdef CONFIG_OF
>>> + /* Check if there is a devicetree present as of_irq_init doesn't
>>> + * indicate if an interrupt controller node was found.
>>> + */
>>> + if (of_find_node_by_path("/"))
>>> + of_irq_init(tegra_irq_match);
>>> + else
>>> +#endif
>>
>> For the same kind of need, I found the following API:
>>
>> of_have_populated_dt()
>>
>> Moreover, it returns false if !CONFIG_OF, so it will avoid the #ifdef.
>
> That sounds like a great idea. Unfortunately, of_irq_init() is a DT-only
> function. Exynos has the following in mainline to solve this:
>
> if (!of_have_populated_dt())
> gic_init_bases(...);
> #ifdef CONFIG_OF
> else
> of_irq_init(exynos4_dt_irq_match);
> #endif
>
> Perhaps we should add a dummy of_irq_init() too, so that we can remove
> this ifdef.
+1 for this idea: I have the same issue with at91.
I think that a macro is preferred instead a function: it will also
remove the need for a protection for the matching table.
Best regards,
--
Nicolas Ferre
More information about the devicetree-discuss
mailing list