i2c: imx: only imx1 needs disable delay
Richard Zhao [Sat, 17 Oct 2009 09:46:23 +0000 (17:46 +0800)]
check cpu_is_mx1() when disable delay.

Signed-off-by: Richard Zhao <linuxzsc@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>

drivers/i2c/busses/i2c-imx.c

index 6055e92..671d37c 100644 (file)
@@ -225,11 +225,13 @@ static void i2c_imx_stop(struct imx_i2c_struct *i2c_imx)
                writeb(temp, i2c_imx->base + IMX_I2C_I2CR);
                i2c_imx->stopped = 1;
        }
-       /*
-        * This delay caused by an i.MXL hardware bug.
-        * If no (or too short) delay, no "STOP" bit will be generated.
-        */
-       udelay(i2c_imx->disable_delay);
+       if (cpu_is_mx1()) {
+               /*
+                * This delay caused by an i.MXL hardware bug.
+                * If no (or too short) delay, no "STOP" bit will be generated.
+                */
+               udelay(i2c_imx->disable_delay);
+       }
 
        if (!i2c_imx->stopped)
                i2c_imx_bus_busy(i2c_imx, 0);