Skip to content
Snippets Groups Projects
Commit 73e8747f authored by Steve Sakoman's avatar Steve Sakoman Committed by Heiko Schocher
Browse files

ARMV7: OMAP: I2C driver: Use same timeout value as linux kernel driver


This patch matches the poll interval (1 millisecond) and timeout (1 second)
used in the linux driver. It also adds a return value of 0 in the event of
a timeout error and cleans up some formatting errors in that section of the
code.

Signed-off-by: default avatarSteve Sakoman <steve.sakoman@linaro.org>
Tested-by: default avatarHeiko Schocher <hs@denx.de>
parent 11c8dd36
No related branches found
No related tags found
No related merge requests found
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#include "omap24xx_i2c.h" #include "omap24xx_i2c.h"
#define I2C_TIMEOUT 10 #define I2C_TIMEOUT 1000
static void wait_for_bb (void); static void wait_for_bb (void);
static u16 wait_for_pin (void); static u16 wait_for_pin (void);
...@@ -392,13 +392,13 @@ int i2c_write (uchar chip, uint addr, int alen, uchar * buffer, int len) ...@@ -392,13 +392,13 @@ int i2c_write (uchar chip, uint addr, int alen, uchar * buffer, int len)
static void wait_for_bb (void) static void wait_for_bb (void)
{ {
int timeout = 10; int timeout = I2C_TIMEOUT;
u16 stat; u16 stat;
writew(0xFFFF, &i2c_base->stat); /* clear current interruts...*/ writew(0xFFFF, &i2c_base->stat); /* clear current interruts...*/
while ((stat = readw (&i2c_base->stat) & I2C_STAT_BB) && timeout--) { while ((stat = readw (&i2c_base->stat) & I2C_STAT_BB) && timeout--) {
writew (stat, &i2c_base->stat); writew (stat, &i2c_base->stat);
udelay (50000); udelay(1000);
} }
if (timeout <= 0) { if (timeout <= 0) {
...@@ -411,7 +411,7 @@ static void wait_for_bb (void) ...@@ -411,7 +411,7 @@ static void wait_for_bb (void)
static u16 wait_for_pin (void) static u16 wait_for_pin (void)
{ {
u16 status; u16 status;
int timeout = 10; int timeout = I2C_TIMEOUT;
do { do {
udelay (1000); udelay (1000);
...@@ -424,8 +424,10 @@ static u16 wait_for_pin (void) ...@@ -424,8 +424,10 @@ static u16 wait_for_pin (void)
if (timeout <= 0) { if (timeout <= 0) {
printf ("timed out in wait_for_pin: I2C_STAT=%x\n", printf ("timed out in wait_for_pin: I2C_STAT=%x\n",
readw (&i2c_base->stat)); readw (&i2c_base->stat));
writew(0xFFFF, &i2c_base->stat); writew(0xFFFF, &i2c_base->stat);
} status = 0;
}
return status; return status;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment