We have a BQ27542-G1 integrated into our battery pack running on an Android system based on Qualcomm hardware.
The Linux driver for this gg is taken from ti here
https://www.ti.com/tool/BQ27XXXSW-LINUX
During battery discharge when we read the voltage or current registers say every 3 seconds we occasionally see a NACK reported over the I2C bus which causes the driver to abort and report an incorrect register value.
During battery charging we never see this problem or a NACK being generated by this device.
I believe that the Qualcomm I2C hardware is able to handle clock stretching
Questions:
1. Is the NACK from the BQ27542-G1 possible during battery discharge and if so why does the Linux driver not handle this and force a retry
2. How quickly can we read the registers of the BQ27542-G1 when the battery is discharging/charging
3. Are there any know issue with the firmware regarding I2C