[i2c] AT91 bus driver loses data

Ronny Nilsson rln-i2c at arbetsmyra.dyndns.org
Fri Feb 16 01:04:18 CET 2007

> > > OK, I see it's hard-coded to 100kHz in the driver.  Try dropping
> > > that to ~10kHz and see what happens.  If things still don't
> > > improve, then you can either try to find and kill the big
> > > interrupt blocker or slow down the bus even more.
> >
> > I totally agree, busy waiting is awfully awkward! I spent about two
> > days just for trying to get wait_event() working before giving that
> > up... It *is* possible to reduce the wire speed though as a

> Most SMBus masters drive the bus at 16 kHz. Bit-banging interfaces
> can do anything between 5 and 55 kHz depending on the value of
> .udelay.

That's good to know, thanks.

> Given that you rarely transfer large amounts of data over I2C anyway,
> the speed doesn't matter that much. Of course faster is better, but
> slower and reliable is better than faster and unreliable.

Actually my system _is_ one of those which will use I2C for large data 
transfers, but that's another story... I'll change the patch to a more 
system friendly behaviour. Mark, any other comments?


More information about the i2c mailing list