mxc_i2c: fix i2c_imx_stop
authorTroy Kisky <troy.kisky@boundarydevices.com>
Thu, 19 Jul 2012 08:18:02 +0000 (08:18 +0000)
committerHeiko Schocher <hs@denx.de>
Tue, 31 Jul 2012 05:40:59 +0000 (07:40 +0200)
Instead of clearing 2 bits, all the other
bits were set because '|=' was used instead
of '&='.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Stefano Babic <sbabic@denx.de>
drivers/i2c/mxc_i2c.c

index fc68062b1183340a1d2427b6576d31fd0ba7f411..c0c45fd36a1b16a31dfa25cdc7fcb4803a4cc8d3 100644 (file)
@@ -264,7 +264,7 @@ void i2c_imx_stop(void)
 
        /* Stop I2C transaction */
        temp = readb(&i2c_regs->i2cr);
-       temp |= ~(I2CR_MSTA | I2CR_MTX);
+       temp &= ~(I2CR_MSTA | I2CR_MTX);
        writeb(temp, &i2c_regs->i2cr);
 
        i2c_imx_bus_busy(0);