i2c: rockchip: Clean ipd status if i2c transfer error

If there was an i2c transfer error like iomux error,
should clean the ipd status, it might cause kernel i2c
irq error handing.

[    0.690749] rk3x-i2c fdd40000.i2c: irq in STATE_IDLE, ipd = 0x10

Change-Id: Ia127edada535288e9b984d6dc0dff813e6152eff
Signed-off-by: David Wu <david.wu@rock-chips.com>
This commit is contained in:
David Wu 2020-11-09 15:52:21 +08:00 committed by Jianhong Chen
parent 8d0f4dce8f
commit 7ef28ab639
1 changed files with 2 additions and 0 deletions

View File

@ -148,6 +148,8 @@ static int rk_i2c_send_stop_bit(struct rk_i2c *i2c)
static inline void rk_i2c_disable(struct rk_i2c *i2c)
{
writel(0, &i2c->regs->ien);
writel(I2C_IPD_ALL_CLEAN, &i2c->regs->ipd);
writel(0, &i2c->regs->con);
}