
On Tue, Jun 14, 2005 at 04:34:38PM -0500, Tolunay Orkun wrote:
Peter Korsgaard wrote:
>"Tolunay" == Tolunay Orkun listmember@orkun.us writes: > >
Hi, and sorry for the slow response!
Tolunay> Peter, I believe the implementation was correct but the Tolunay> comment was wrong. It should be a write transaction with Tolunay> just address byte. After the address byte is transmitted the Tolunay> I2C slave will acknowledge (if present) and we finish the Tolunay> transaction by generating the stop condition. i.e. fake Tolunay> write.
Why write? Wouldn't a zero byte read transaction be safer?
I have read somewhere (that I cannot find now), that some device would lock up on 0-byte read vs 0-byte write. Since the current code is working as it is unless there is demonstrable problem with it, I would fix the comment only.
Ebony (PPC440GP eval board) has a device like this, IIRC it's a clock driver, zero-read locks the bus completely.
In general, zero write is safer, also SMBUS spec defines such transaction as SMBUS QUICK; interestingly, there is no read equivalent :).
Also, from personal testing, using zero-write as detection hack, yields more devices than zero-read.