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: Joakim Tjernlund <hidden>
Date: 2008-10-13 18:57:26

-----Original Message-----
From: Scott Wood [mailto:scottwood@freescale.com]
Sent: den 13 oktober 2008 20:31
To: joakim.tjernlund@transmode.se
Cc: 'linuxppc-dev Development'
Subject: Re: MPC8321, ethernet and i2c problems after upgrade from 2.6.25 to 2.6.27

Joakim Tjernlund wrote:
quoted
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.
Because all the kernel comments I can see still implies that this should work
and because this was the only way in earlier releases to add an i2c device.
quoted
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.
Possible yes, safe no. As is now I cannot use 2.6.27 on my current u-boot. 
and that may cause trouble in the field.

I always had the impression that OF was an optional add on, but now it seems
that it is mandatory for i2c?
 
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?
hmm, no easy way out then? I need a way to do this from my board code without
adding new stuff to the driver. A hack that only works in 2.6.27 will do.

 Jocke
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help