diff options
| -rw-r--r-- | drivers/i2c/busses/i2c-omap.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index a64a192c44a4..0037e31076ba 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c | |||
| @@ -286,6 +286,11 @@ static int omap_i2c_init(struct omap_i2c_dev *dev) | |||
| 286 | unsigned long internal_clk = 0; | 286 | unsigned long internal_clk = 0; |
| 287 | 287 | ||
| 288 | if (dev->rev >= OMAP_I2C_REV_2) { | 288 | if (dev->rev >= OMAP_I2C_REV_2) { |
| 289 | /* Disable I2C controller before soft reset */ | ||
| 290 | omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, | ||
| 291 | omap_i2c_read_reg(dev, OMAP_I2C_CON_REG) & | ||
| 292 | ~(OMAP_I2C_CON_EN)); | ||
| 293 | |||
| 289 | omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, SYSC_SOFTRESET_MASK); | 294 | omap_i2c_write_reg(dev, OMAP_I2C_SYSC_REG, SYSC_SOFTRESET_MASK); |
| 290 | /* For some reason we need to set the EN bit before the | 295 | /* For some reason we need to set the EN bit before the |
| 291 | * reset done bit gets set. */ | 296 | * reset done bit gets set. */ |
