AnsweredAssumed Answered

I2C bus communication error without ACK

Question asked by Vincent Chou on Mar 1, 2017
Latest reply on Mar 2, 2017 by Pavel Chubakov

Hi! Support, 

We designed a camera sensor module based on OV7725 sensor.  We used i.MX6Q Sabresd board to develop the driver for Android 5.1.1 and Linux 3.14.52 kernel.  Unfortunately I have not been able to communicate with the sensor module.  Even though we tested OV5640 module on Sabresd board, we have not been able to use the same I2C configuration to communicate with OV7725 sensor.  I traced into the i2c-imx.c and found out there are errors generated from the following two functions: i2c_imx_trx_complete and i2c_imx_acked.  I also checked the content of I2C_I2SR and it generates 0xa1 and 0xa5 most of the time.  I suspect that OV7725 sensor does not support I2C protocol, but only SCCB protocol. 

In addition, I examine the code of i2c-imx.c.  It seems the code does not support I2C_FUNC_PROTOCOL_MANGLING,  I2C_M_IGNORE_NAK and I2C_M_NO_RD_ACK.  Could you kindly tell me how to accommodate the NO_ACK condition?  Should I change I2C driver completely? Thanks!