Thread (10 messages) flat view 10 messages, 2 authors, 2008-10-14

Re: MPC8321, ethernet and i2c problems after upgrade from 2.6.25 to 2.6.27

From: Scott Wood <hidden>
Date: 2008-10-13 18:33:52

Joakim Tjernlund wrote:
On Mon, 2008-10-13 at 11:31 -0500, Scott Wood wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help