MPC8321, ethernet and i2c problems after upgrade from 2.6.25 to 2.6.27
Scott Wood
scottwood at freescale.com
Tue Oct 14 05:31:07 EST 2008
Joakim Tjernlund wrote:
> On Mon, 2008-10-13 at 11:31 -0500, Scott Wood wrote:
>> i2c-mpc.c now registers as a dynamically-numbered bus; you need to either
>> use the device tree, or call i2c_new_device().
>
> Thanks, but is this really so? Reading include/linux/i2c.h makes me
> wonder if not the i2c_register_board_info() should still work.
Why? Note that the "add-on" versus "mainboard" distinction in the
comment is just an example; the actual distinction is
dynamically-numbered versus statically-numbered. Since the controller
itself is probed from the device tree, there's no good way of statically
assigning a bus number to it.
> Calling i2c_new_device() from an initcall() procedure does not
> seem easy/possible, you need the adapter to do that. Maybe I just
> missing something obvious?
The obvious and easy way is to just use the device tree.
If that isn't possible (such as due to device trees embedded in existing
firmware), you can find the adapter device as a child of the of_device.
Finding the of_device from the device_node may be difficult, though.
We could have i2c-mpc set node->data to the of_device (or maybe the
adapter struct), or maybe should add an of_device member of device_node
that gets filled in by of_platform?
-Scott
More information about the Linuxppc-dev
mailing list