[PATCH] i2c-mpc: use the cell-index property to enumerate the I2C adapters

Grant Likely grant.likely at secretlab.ca
Fri Dec 2 08:55:22 EST 2011


On Thu, Dec 1, 2011 at 2:52 PM, Scott Wood <scottwood at freescale.com> wrote:
> On 12/01/2011 03:46 PM, Timur Tabi wrote:
>> Scott Wood wrote:
>>
>>> How is this going to interact with other i2c buses (e.g. on a board
>>> FPGA) that might have a conflicting static numbering scheme?  Have you
>>> ensured that no dynamic bus registrations (e.g. an i2c bus on a PCI
>>> device) can happen before the static SoC i2c buses are added?
>>
>> Hmm.... You have a point there.
>>
>>>> An alternative approach is to create a function like this:
>>>>
>>>>     struct i2c_adapter *i2c_adapter_from_node(struct device_node *np);
>>>>
>>>> I could then just use adap->nr directly.
>>>
>>> If there isn't a way to get a "struct device" from "struct device_node",
>>> we should add it.
>>
>> How do I do that?  Scan all the struct devices until I find one where dev->of_node == np?  That seems really inefficient.
>
> Ideally we would have a field in struct device_node that points to
> struct device.

No.  There are cases where multiple devices may reference the same node.

It is better to walk the list of i2c adapters and look for one that
has the matching node pointer.  It really isn't an expensive operation
to do it that way.

g.


More information about the Linuxppc-dev mailing list