Hi Sekhar, Yes there is an other device on the bus, but I removed it and I decreased the clock to 20khz. I cannot go below because the i2c seems not to work. It does solved the problem.
I modified the driver to add a while(1) when it got an abnormal termination. I notified that every time the driver makes this error, I can see a clock stretch (with a scope) on the last i2c frame. - The PMIC (tps65070) is rated to work at 400khz, but even at 20khz it seems to need more time to response when it is addressed to much. I modified the touchscreen polling period to 100 msec and I still got errors. Maybe if the touchscreen driver was working by interruption that would leave a chance to the PMIC. - Why the i2c driver do not handles clock stretching? - On a test there was 2 successive reads to register 02h with a delay of 85 msec between. The first went right but while the next read, the salve put the clock low to stretch it. It sounds like a problem to me because the chip was not receiving a lot of messages and it stretched the clock. I cannot find any place in the datasheet that is talking about that issue. Thank you. Regards, Nicolas On Mon, Aug 2, 2010 at 12:35 PM, Nori, Sekhar <[email protected]> wrote: > > Hi Nicolas, > > On Fri, Jul 30, 2010 at 23:05:21, Nicolas Luna wrote: > > Sekhar, > > > > We do not have this buffer on our custom hardware and we have the NACK > > problem. SDA and SCL are directly connected from PMIC to OMAP with > > pull-up. > > > > Is Todd right with the silicon issue? Or a I2C driver issue when it is > > used too much... ? > > There is no silicon issue that I know of. The silicon meets I2C > specification. > All the advisories with silicon are documented here: > http://focus.ti.com/lit/er/sprz301c/sprz301c.pdf > > > i2c_davinci i2c_davinci.1: controller timed out > > i2c_davinci i2c_davinci.1: initiating i2c bus recovery > > I remember users on the list reporting these errors when a slave device is > pulling the clock low for a long time. The first thing to try is a lower > bus frequency - this is done on DM644x EVM to talk to a slow MSP430 based > slave. > > Also, as I remember, this can even be caused by a slave you are not talking > to. > Are there other devices on the I2C bus? > > Thanks, > Sekhar >
_______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
