Messages in this thread | | | Date | Thu, 28 May 2009 12:52:58 +1000 | From | David Gibson <> | Subject | Re: [RFC] [PATCH] Device Tree on ARM platform |
| |
On Wed, May 27, 2009 at 08:21:16PM +0100, Russell King - ARM Linux wrote: > On Wed, May 27, 2009 at 03:13:55PM -0400, Jon Smirl wrote: > > On Wed, May 27, 2009 at 3:08 PM, Scott Wood <scottwood@freescale.com> wrote: > > > I'm not talking about platform specific code, I'm talking about code to > > > retrieve information about a device from the device tree. There would not > > > be separate instances of this for "platforms X, Y and Z", just one > > > of_platform binding in each driver. It's no different than having a > > > platform bus binding, except in the data structures used. > > > > > > But to restate, having external glue to create platform devices from the > > > device tree is fine if that's what you want to do. We used to do that, but > > > it was a pain compared to keeping everything in one place. Your experience > > > may differ. > > > > Could 'struct platform_device' and 'struct of_platform_device" be > > unified into a single structure? It's personal preference whether the > > internal representation of the hardware is done via a device tree or > > snippets of platform code, but do we need to have to different device > > types? > > That's a damned good question - platform devices have been around since > the dawn of the device model, so the real question which needs to be > asked is: what was the reason that of_platform_device created rather > than unifying it with the already provided platform_device ? > > BTW, I can find no such struct "of_platform_device" in include/linux. > Is it specific to each and every OF implementation?
They should be unified. I believe the problem was at the time of_platform devices came into existence there was no arch-specific field in the device structure that could be used to hold a reference to the devtree node.
Since then, the fiddliness of doing the conversion has always just outweighed the impetus to do so. The of_platform bus model is conceptually completely broken, but in practice only slightly broken for all common cases.
I've been meaning at several times to replace the of_platform bus infrastructure with a system to traverse the OF tree and construct platform devices (or other un-probeable bus devices, e.g. i2c) based on a table of constructor functions. It's just always been edged out by other work.
-- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |