[RFC] [PATCH] ARM: tegra: emc: device tree bindings

Stephen Warren swarren at nvidia.com
Tue Oct 18 17:01:50 EDT 2011


Olof Johansson wrote at Tuesday, October 18, 2011 2:54 PM:
> On Tue, Oct 18, 2011 at 11:54 AM, Stephen Warren <swarren at nvidia.com> wrote:
> > Olof Johansson wrote at Tuesday, October 18, 2011 12:43 PM:
...
> >> Compatible is still needed, in my opinion -- otherwise there will be
> >> no way to tell if the node is there to describe emc timings or if it's
> >> some new node used to describe something else (such as SDRAM chips as
> >> mentioned above).
> >
> > Can't you go by node name; enumerate all nodes with a particular name.
> > Or define another intermediate node that will always contain tables and
> > nothing else, then just enumerate all child nodes of that node:
> >
> > emc at xxxxx {
> >    emc-tables {
> >        table-333 at 0 {};
> >        table-666 at 0 {};
> >    };
> > };
> >
> > The Tegra pinmux bindings I proposed certainly used this technique; a
> > main node with a well-known name, followed by enumeration of all child
> > nodes of that, and nobody /said/ anything about that being a bad idea.
> 
> I'm not really picky on this, but I think I would rather use a
> compatible field than rely on naming.
> 
> That being said, doing a two-level approach will probably make it
> easier than the flat structure I initially had. So:
> 
> emc at xxx {
>     nvidia,use-ram-code;
>     emc-table-ram-code-0 {
>         nvidia,ram-code = < 0 >;
>         table-166 { compatible = "tegra20-emc-table"; ... };
>         table-333 { ... };
>     };
> 
>     emc-table-ram-code-1 {
>         nvidia,ram-code = < 1 >;
>         ...
>     };
> };
> 
> ... and for none-ram-code, just leave out the emc-table-ramcode-x level.
> 
> So, for nvidia,use-ram-code case, it'll be one intermediate step of
> finding the right subnode, the rest of the table setup code will be
> common. None of it will be bound to actual node names though -- first
> step is iterating child nodes looking for nvidia,ram-code properties
> to match, and second step iterates by matching compatible fields.

I only suggested the well-known-named sub-nodes in order to eliminate
the need for a compatible property.

My inclination is that if we use compatible to distinguish the tables
from anything else, there's little point having the extra level of nodes;
we may as well lay it out as in your original patch, just with an explicit
nvidia,ram-code property in each table (or omitted/ignored when not using
it) instead of reg?

-- 
nvpublic




More information about the linux-arm-kernel mailing list