On 06/03/2014 15:46, Andrew Lunn wrote: >>>>> I think you can use aliases to get the order correct, independent of >>>>> how you list them in DT. That should be a lot safer than assuming >>>>> things are instantiated from top to bottom. >>>> >>>> It sounds interesting, how would you do this? >>> >>> As there already is in armada-370-xp.dtsi >>> >>> aliases { >>> eth0 = ð0; >>> eth1 = ð1; >>> }; >>> >>> >>> eth0: ethernet@70000 { >>> } >>> eth1: ethernet@74000 { >>> } >>> >>> This at least works for i2c devices. The pdev->id is set using the >>> alias number. >> >> Well I think it doesn't work with ethernet devices because we already do >> this in aramda-38x.dtsi: >> >> aliases { >> gpio0 = &gpio0; >> gpio1 = &gpio1; >> eth0 = ð0; >> eth1 = ð1; >> eth2 = ð2; >> }; >> >> eth1: ethernet@30000 { >> } >> eth2: ethernet@34000 { >> } >> eth0: ethernet@70000 { >> } > > Ah, Erm, O.K. > > It seems to be an i2c thing. Take a look at i2c_add_adapter(). > > if (dev->of_node) { > id = of_alias_get_id(dev->of_node, "i2c"); > > You could put something similar into the ethernet driver. > Actually even what I did, didn't work as I expected. The order should have been changed in the dsi file. I will have a look on the ethernet driver. Thanks, Gregory > Andrew > -- Gregory Clement, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html