i2c: designware: Allow sending restart conditions
authorMarek Vasut <marex@denx.de>
Mon, 7 Aug 2017 18:45:31 +0000 (20:45 +0200)
committerHeiko Schocher <hs@denx.de>
Thu, 10 Aug 2017 10:02:50 +0000 (12:02 +0200)
Allow sending restart conditions upon direction change as this is
required by some chips.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Heiko Schocher <hs@denx.de>
Reviewed-by: Heiko Schocher <hs@denxx.de>
drivers/i2c/designware_i2c.c

index d4df35a69acddac044e5c3d443db0d963ba2bea3..8cfed2194c54de741420f2050d0090222068526c 100644 (file)
@@ -374,7 +374,8 @@ static void __dw_i2c_init(struct i2c_regs *i2c_base, int speed, int slaveaddr)
        /* Disable i2c */
        dw_i2c_enable(i2c_base, false);
 
-       writel((IC_CON_SD | IC_CON_SPD_FS | IC_CON_MM), &i2c_base->ic_con);
+       writel(IC_CON_SD | IC_CON_RE | IC_CON_SPD_FS | IC_CON_MM,
+              &i2c_base->ic_con);
        writel(IC_RX_TL, &i2c_base->ic_rx_tl);
        writel(IC_TX_TL, &i2c_base->ic_tx_tl);
        writel(IC_STOP_DET, &i2c_base->ic_intr_mask);