[U-Boot] [PATCH] Add I2C multibus support for OMAP2/3 boards

Dirk Behme dirk.behme at googlemail.com
Mon Nov 2 20:32:54 CET 2009


Hi Heiko,

Heiko Schocher wrote:
> Dirk Behme wrote:
>> I would remove the following three functions as they are not needed at
>> the moment (i.e. without command line interface).
> 
> Hmm... really? If someone uses multibus support,
> this functions are needed, or?

Well, most probably yes. But I was not really looking for multibus 
support ;)

The functionality needed for Zippy I'm currently working on is just to 
be able to do

i2c_get_bus_num(1); /* Switch to bus 1 */
... do some stuff on bus 1 ...
i2c_get_bus_num(0); /* Switch back to default bus 0 */

And for this having only i2c_get_bus_num() is sufficient. And the only 
tested ;)

>>> +unsigned int i2c_get_bus_num(void)
>>> +{
>>> +    if (i2c == (i2c_t *)I2C_BASE1)
>>> +        return 0;
>>> +    else
>>> +    if (i2c == (i2c_t *)I2C_BASE2)
>>> +        return 1;
>>> +#if defined(CONFIG_OMAP34XX)
>>> +    else
>>> +    if (i2c == (i2c_t *)I2C_BASE3)
>>> +        return 2;
>>> +#endif
>>> +    else
>>> +        return 0xFFFFFFFF;
>>> +}
>>> +
>>> +/*
>>> + * To be Implemented
>>> + */
>>> +int i2c_set_bus_speed(unsigned int speed)
>>> +{
>>> +    return 0;
>>> +}
>>> +
>>> +unsigned int i2c_get_bus_speed(void)
>>> +{
>>> +    return 0;
>>> +}
>>> +
...
>> While all above are only style questions, what's about the main
>> functionality topic:
>>
>> Do we have to call i2c_init() for bus 1 and 2 if switching to it? If
>> yes, who does it? For bus 0 it's already in the code. I'd like that the
>> user doesn't have to care about it. Therefore, I added
> 
> I solved this in the multibus_v2 branch, see:
> 
> http://git.denx.de/?p=u-boot/u-boot-i2c.git;a=shortlog;h=refs/heads/multibus_v2

Looks like we have to merge that with what is in this patch somehow. 
What are your plans with that branch? Is it intended to go into 
mainline, soon?

It seems to me that multibus_v2 and this patch are somehow orthogonal 
(but yes, they will need some merging).
Regarding omap24xx_i2c.c, multibus_v2 seems to deal mainly with the 
API stuff

http://git.denx.de/?p=u-boot/u-boot-i2c.git;a=blobdiff;f=drivers/i2c/omap24xx_i2c.c;h=993b995d34a298d07fbd11bce23f2d0cfdebb40f;hp=1a4c8c9ad2701b550fc1ad0ab2a9fde741902080;hb=899dbf9fbd089a9e8133026be3817e0116f44390;hpb=24d3d6307e1e5d5cddddee399a15e70ef9da8818

while the main part of this patch is to replace all hard coded 
registers by the ability to switch to an other bus.

I will send an updated patch with fixing at least the review comments, 
soon.

Best regards

Dirk


More information about the U-Boot mailing list