On Wed, 2010-04-28 at 14:00 +0100, Mark Brown wrote:
The whole thing is a matter of common sense and a bit of taste :-)
The impression that has been created in the past is that there are inflexible device tree rules which can't be varied.
I'm a bit sad this is how things have been perceived since that's clearly not the policy I've applied to the powerpc architecture.
Or rather, there are -some- inflexible rules yes, which are to:
- Have a device-tree :-)
- Have a /compatible property at the toplevel to identify your board
- Have the /cpus nodes for representing the CPUs.
That's pretty much the only absolute requirements from a code perspective.
Now I -do- require people to also have nodes for things like PCI host bridge, since that allows using a ton of existing code for handling most aspects of PCI, and I -do- complain if people just hard wire platform devices everywhere or interrupt numbers without even trying to consider using the device-tree appropriately.
However, I've always been against the one-bsp-fits-all approach, and it's always been my clear policy that there should be a per-machine .c file. I did bend when folks pushed the "simple" platform but with the understanding that it must contain an -explicit- list of boards it supports.
You'll also notice that all of my virtual interrupt handling stuff is such that you -can- use it without device-tree nodes, the DT just makes it easier. Same goes with PCI devices (only the PHB requires a DT node at this stage) etc...
Cheers, Ben.