[PATCH v4 3/3] arm/tegra: device tree support for ventana board
Olof Johansson
olof at lixom.net
Wed Sep 28 14:33:21 EDT 2011
On Wed, Sep 28, 2011 at 6:16 AM, Arnd Bergmann <arnd at arndb.de> wrote:
> On Wednesday 28 September 2011, Peter De Schrijver wrote:
>> --- a/arch/arm/mach-tegra/board-dt.c
>> +++ b/arch/arm/mach-tegra/board-dt.c
>> @@ -47,7 +47,7 @@
>>
>> void harmony_pinmux_init(void);
>> void seaboard_pinmux_init(void);
>> -
>> +void ventana_pinmux_init(void);
>>
>> struct of_dev_auxdata tegra20_auxdata_lookup[] __initdata = {
>> OF_DEV_AUXDATA("nvidia,tegra20-sdhci", TEGRA_SDMMC1_BASE, "sdhci-tegra.0", NULL),
>> @@ -95,6 +95,8 @@ static void __init tegra_dt_init(void)
>> harmony_pinmux_init();
>> else if (of_machine_is_compatible("nvidia,seaboard"))
>> seaboard_pinmux_init();
>> + else if (of_machine_is_compatible("nvidia,ventana"))
>> + ventana_pinmux_init();
>
> Are you (Peter, Colin, Olof) confident that this is not getting out
> of hand before it's getting better?
>
> If we are keeping the per-board pinmux configuration in the kernel
> for longer, I think it would be better to do this table-driven than
> having a list of top-level of_machine_is_compatible() statements
> and do something like:
>
> static struct {
> const char *machine;
> struct tegra_pingroup_config *config[];
> } pinmux_configs[] __initdata = {
> { "nvidia,ventana", &ventana_pinmux },
> { "nvidia,seaboard, &seaboard_pinmux },
> };
That is definitely a nicer solution. I didn't see a strong need to
switch to that model now since it should hopefully be a temporary
thing, but given Stephen's mention of Cardhu, I think it does make
sense.
Peter, care to respin this patch with the above solution instead?
Also, please print a warning if no match is found.
Thanks,
-Olof
More information about the linux-arm-kernel
mailing list