OF device mappings

Grant Likely grant.likely at secretlab.ca
Sun Mar 1 05:44:37 EST 2009


On Sat, Feb 28, 2009 at 11:21 AM, Gary Thomas <gary at mlbassoc.com> wrote:
> Grant Likely wrote:
>> Once you have a handle to the node, you can iterate through the
>> of_platform bus devices and look for a node which has a matching node
>> pointer stored in archdata.  That will give you a struct device which
>> is contained by a struct of_device (note well: this will give you an
>> of_device, not a platform_device.)
>
> I have code which does this already, but I could not figure out
> how to get from the of_device node to the actual platform_device.

You can't.  There is no platform_device.  There is only the of_device.

The bit that you're missing is that the 'platform bus' isn't being
used at all for these devices.  The 'of_platform bus' is used instead.
 platform bus and of_platform bus perform essentially the same job,
but the of_platform bus differs in the way it probes drivers.
Specifically, an of_platform_driver can be handed a list of values
that it will match against, and it has a 1:1 relationship with a node
in the device tree.

> How do I find the platform_device which was created when this
> particular of_device was instantiated?  I made sure that this code
> is run late - after all the of_devices have been handled.

Again, there is no platform_device.  of_device *is* the device that was created.

g.



More information about the Linuxppc-dev mailing list