diff options
| -rw-r--r-- | drivers/i2c/busses/i2c-nomadik.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/i2c/busses/i2c-nomadik.c b/drivers/i2c/busses/i2c-nomadik.c index e461de7167e7..c9fffd0389fe 100644 --- a/drivers/i2c/busses/i2c-nomadik.c +++ b/drivers/i2c/busses/i2c-nomadik.c | |||
| @@ -103,6 +103,9 @@ | |||
| 103 | /* maximum threshold value */ | 103 | /* maximum threshold value */ |
| 104 | #define MAX_I2C_FIFO_THRESHOLD 15 | 104 | #define MAX_I2C_FIFO_THRESHOLD 15 |
| 105 | 105 | ||
| 106 | /* per-transfer delay, required for the hardware to stabilize */ | ||
| 107 | #define I2C_DELAY 150 | ||
| 108 | |||
| 106 | enum i2c_status { | 109 | enum i2c_status { |
| 107 | I2C_NOP, | 110 | I2C_NOP, |
| 108 | I2C_ON_GOING, | 111 | I2C_ON_GOING, |
| @@ -118,7 +121,7 @@ enum i2c_operation { | |||
| 118 | }; | 121 | }; |
| 119 | 122 | ||
| 120 | /* controller response timeout in ms */ | 123 | /* controller response timeout in ms */ |
| 121 | #define I2C_TIMEOUT_MS 500 | 124 | #define I2C_TIMEOUT_MS 2000 |
| 122 | 125 | ||
| 123 | /** | 126 | /** |
| 124 | * struct i2c_nmk_client - client specific data | 127 | * struct i2c_nmk_client - client specific data |
| @@ -267,6 +270,7 @@ static int init_hw(struct nmk_i2c_dev *dev) | |||
| 267 | 270 | ||
| 268 | clk_disable(dev->clk); | 271 | clk_disable(dev->clk); |
| 269 | 272 | ||
| 273 | udelay(I2C_DELAY); | ||
| 270 | return 0; | 274 | return 0; |
| 271 | } | 275 | } |
| 272 | 276 | ||
| @@ -599,7 +603,7 @@ static int nmk_i2c_xfer(struct i2c_adapter *i2c_adap, | |||
| 599 | clk_disable(dev->clk); | 603 | clk_disable(dev->clk); |
| 600 | return status; | 604 | return status; |
| 601 | } | 605 | } |
| 602 | mdelay(1); | 606 | udelay(I2C_DELAY); |
| 603 | } | 607 | } |
| 604 | clk_disable(dev->clk); | 608 | clk_disable(dev->clk); |
| 605 | 609 | ||
