On 10/18/2011 04:01 PM, Stephen Warren wrote: > Olof Johansson wrote at Tuesday, October 18, 2011 2:54 PM: >> On Tue, Oct 18, 2011 at 11:54 AM, Stephen Warren <swarren@xxxxxxxxxx> 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@xxxxx { >>> emc-tables { >>> table-333@0 {}; >>> table-666@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@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? Node names should be generic like serial or ethernet. Compatible is used to specify the specific model. Rob -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html