OMAP3: I2C: Clean up Errata 1p153 handling
authormanjugk manjugk <manjugk@ti.com>
Tue, 11 May 2010 18:35:23 +0000 (11:35 -0700)
committerBen Dooks <ben-linux@fluff.org>
Wed, 19 May 2010 23:19:00 +0000 (00:19 +0100)
Clean up existing Errata 1p153 handling to use generic
errata handling mechanism through dev flag.

Signed-off-by: Manjunatha GK <manjugk@ti.com>
Cc: Nishanth Menon <nm@ti.com>
Cc: Alexander Shishkin <virtuoso@slind.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
drivers/i2c/busses/i2c-omap.c

index fdba131..7674efb 100644 (file)
@@ -168,6 +168,7 @@ enum {
 
 /* Errata definitions */
 #define I2C_OMAP_ERRATA_I207           (1 << 0)
 
 /* Errata definitions */
 #define I2C_OMAP_ERRATA_I207           (1 << 0)
+#define I2C_OMAP3_1P153                        (1 << 1)
 
 struct omap_i2c_dev {
        struct device           *dev;
 
 struct omap_i2c_dev {
        struct device           *dev;
@@ -954,7 +955,7 @@ complete:
                                        break;
                                }
 
                                        break;
                                }
 
-                               if ((dev->rev <= OMAP_I2C_REV_ON_3430) &&
+                               if ((dev->errata & I2C_OMAP3_1P153) &&
                                    errata_omap3_1p153(dev, &stat, &err))
                                        goto complete;
 
                                    errata_omap3_1p153(dev, &stat, &err))
                                        goto complete;
 
@@ -1057,6 +1058,9 @@ omap_i2c_probe(struct platform_device *pdev)
 
        dev->rev = omap_i2c_read_reg(dev, OMAP_I2C_REV_REG) & 0xff;
 
 
        dev->rev = omap_i2c_read_reg(dev, OMAP_I2C_REV_REG) & 0xff;
 
+       if (dev->rev <= OMAP_I2C_REV_ON_3430)
+               dev->errata |= I2C_OMAP3_1P153;
+
        if (!(cpu_class_is_omap1() || cpu_is_omap2420())) {
                u16 s;
 
        if (!(cpu_class_is_omap1() || cpu_is_omap2420())) {
                u16 s;