Re: [RFC] [PATCH] Device Tree on ARM platform

Jean-Christophe PLAGNIOL-VILLARD
2009-05-27T20:31:27Z

> There are two issues that keep the of_platform and platform busses
> separate. They aren't show stoppers, but they reflect the current
> state.
>
> 1) Source of data: a platform_device carries a pdata structure with it
> to describe the hardware. An of_device carries a device_node pointer.
> Before dropping of_platform bus, a mechanism needs to be in place to
> add hooks for translating the device tree data into a pdata structure
> for each platform device.
>
> 2) Driver binding mechanism: device tree nodes usually have a
> "compatible" property which is a list of strings. The first string
> describes exactly what the device is (ie. "atmel,24c08") and an
> optional list of other devices which it is register interface
> backwards compatible with. The intent is that newer devices can claim
> compatibility with older ones so that existing device drivers will
> work without needing to be told the new device name. However, it
> leaves the option when a device errata or something similar raises
> it's ugly head, a driver can still get information about the exact
> device name and apply the appropriate workarounds. Driver probing
> should walk the list and give preference to higher priority compatible
> values. of_platform bus does this, but I cannot think of a clean way
> to do the same thing with the platform bus.
>
> One option that has been suggested (more than once) is to make the
> adapter code an of_platform_driver which translates the device tree
> data and then registers the appropriate platform_devices. This neatly
> solves the problem, but I don't like the overhead involved in
> registering 2 struct devices with the kernel for every device node in
> the device tree.
but simplify the dev and maintaining is also an important goal.

Have to duplicated ressource handling via ifdef in every drivers is also an
overhead which need to be avoided

Best Regards,
J.