[U-Boot] I2C: OMAP: spurious i2c probe addresses

Michael Jones
2011-05-26T07:03:54Z

On 05/25/2011 05:38 PM, Michael Jones wrote:
> While running v2011.06-rc1, I noticed some new behavior on my OMAP3 i2c
> bus. I tracked it to commit 0e57968a215d1b, "I2C: OMAP: detect more
> devices when probing an i2c bus". It detects more devices indeed, such
> as some that don't even exist. Even better than that, it detects
> different devices every time. It looks like just false positives, the
> existent devices seem to always be found among the ghost devices.
>
> Here's the behavior I see:
> --------------------------
> # i2c probe
> Valid chip addresses: 05 18 30 49 50 51 5E 7A
> # i2c probe
> Valid chip addresses: 02 06 0B 18 1D 24 25 30 35 50 51 57 5D 6F 7C
> # i2c probe
> Valid chip addresses: 18 2E 30 33 35 50 51 62 6F
> # i2c probe
> Valid chip addresses: 18 1B 1F 2D 30 46 50 51 5C 5D
> # i2c probe
> Valid chip addresses: 0A 18 21 26 2B 30 32 50 51 60 66 69 6D 79
> # i2c probe
> Valid chip addresses: 08 09 18 1B 30 50 51 5E 6C
>
>
> Here's what it looks like after reverting the commit:
> ------------------------------------------
> # i2c probe
> Valid chip addresses: 18 30 50 51
> # i2c probe
> Valid chip addresses: 18 30 50 51
> # i2c probe
> Valid chip addresses: 18 30 50 51
> # i2c probe
> Valid chip addresses: 18 30 50 51
>
>
> -Michael

Sorry- relevant point here: I have a device with a 2-byte subaddress,
which I suspect is the culprit here. As Nick mentioned in his commit
message, such devices are unsupported by the current OMAP i2c driver.
I'm in the process of adding support for 2-byte subaddresses to the
driver. In light of the above, I now realize that such changes will
probably have to involve i2c_probe() as well.

-Michael