[U-Boot-Users] [PATCH] soft_i2c/i2c_probe(): Perform reads instead of writes

Eugene Surovegin ebs at ebshome.net
Wed Jun 15 05:16:36 CEST 2005


On Tue, Jun 14, 2005 at 04:34:38PM -0500, Tolunay Orkun wrote:
> Peter Korsgaard wrote:
> 
> >>>>>>"Tolunay" == Tolunay Orkun <listmember at 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.

-- 
Eugene





More information about the U-Boot mailing list