AnsweredAssumed Answered

LS1043A-process about I2C bus Arbitration Lost

Question asked by Qingshan Li on Aug 17, 2018
Latest reply on Aug 26, 2018 by alexander.yakovlev

In linux i2c driver i2c-imx.c:

if(temp & I2SR_IAL) {

    temp &= ~I2SR_IAL;

    imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR);

    return -EAGAIN;


Here if I2SR_IAL be 1, driver will write zero to clear it.

But in <QorIQ LS1043A Reference Manual> chapter 24.5.6, there have a line to descript IBAL: This bit must be cleared by software, by writing a one  to it. A write of zero has no effect.

So there is different desc about how to clear arbitration lost status in the driver code and reference manual. Which one is right?