From: Nick Thompson <nick.thompson@ge.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] I2C: OMAP: spurious i2c probe addresses
Date: Thu, 26 May 2011 10:23:18 +0100 [thread overview]
Message-ID: <4DDE1C06.7010909@ge.com> (raw)
In-Reply-To: <4DDDFB5A.5070203@matrix-vision.de>
On 26/05/11 08:03, Michael Jones wrote:
> 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
Hi Michael,
What do you mean by sub-address? The address within the device or an
extended chip address?
The change I made aborts the write after sending the 7 bit chip
address and 1 write bit, so a device's internal address shouldn't be
relevant.
Extended chip addressing devices would not be supported as it stands.
I can imagine NACK may not be occur for a device waiting for more
chip address bits, though I would have thought it wouldn't drive the bus
low until the full address is received.
Can you tell us what device this is? Even better a link to the data
sheet.
Does your bus have only one master (the OMAP)? There could be an issue
if bus arbitration failures occur.
I guess your bus pull-ups are strong enough to assert the NAK...?
If not, you probably you would have seen other issues before now.
Nick.
next prev parent reply other threads:[~2011-05-26 9:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-25 15:38 [U-Boot] I2C: OMAP: spurious i2c probe addresses Michael Jones
2011-05-26 7:03 ` Michael Jones
2011-05-26 7:14 ` Heiko Schocher
2011-05-26 7:25 ` Andre Schwarz
2011-05-26 9:23 ` Nick Thompson [this message]
2011-05-26 11:38 ` Michael Jones
2011-05-26 12:35 ` Nick Thompson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DDE1C06.7010909@ge.com \
--to=nick.thompson@ge.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox