Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 250838
b: refs/heads/master
c: 9772760
h: refs/heads/master
v: v3
  • Loading branch information
Virupax Sadashivpetimath authored and Ben Dooks committed May 24, 2011
1 parent 38c9b41 commit 9c2a5b1
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a20d23945f30ec701a544fdd90d6537f4041af6f
refs/heads/master: 9772760079253cd9a428434b43d415d18b152332
6 changes: 4 additions & 2 deletions trunk/arch/arm/plat-nomadik/include/plat/i2c.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,15 @@ enum i2c_freq_mode {
* to the values of 14, 6, 2 for a 48 MHz i2c clk
* @tft: Tx FIFO Threshold in bytes
* @rft: Rx FIFO Threshold in bytes
* @timeout Slave response timeout(ms)
* @sm: speed mode
*/
struct nmk_i2c_controller {
unsigned long clk_freq;
unsigned short slsu;
unsigned char tft;
unsigned char rft;
unsigned char tft;
unsigned char rft;
int timeout;
enum i2c_freq_mode sm;
};

Expand Down
10 changes: 4 additions & 6 deletions trunk/drivers/i2c/busses/i2c-nomadik.c
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,6 @@ enum i2c_operation {
I2C_READ = 0x01
};

/* controller response timeout in ms */
#define I2C_TIMEOUT_MS 2000

/**
* struct i2c_nmk_client - client specific data
* @slave_adr: 7-bit slave address
Expand Down Expand Up @@ -213,7 +210,7 @@ static int flush_i2c_fifo(struct nmk_i2c_dev *dev)
writel((I2C_CR_FTX | I2C_CR_FRX), dev->virtbase + I2C_CR);

for (i = 0; i < LOOP_ATTEMPTS; i++) {
timeout = jiffies + msecs_to_jiffies(I2C_TIMEOUT_MS);
timeout = jiffies + msecs_to_jiffies(dev->adap.timeout);

while (!time_after(jiffies, timeout)) {
if ((readl(dev->virtbase + I2C_CR) &
Expand Down Expand Up @@ -434,7 +431,7 @@ static int read_i2c(struct nmk_i2c_dev *dev)
dev->virtbase + I2C_IMSCR);

timeout = wait_for_completion_interruptible_timeout(
&dev->xfer_complete, msecs_to_jiffies(I2C_TIMEOUT_MS));
&dev->xfer_complete, msecs_to_jiffies(dev->adap.timeout));

if (timeout < 0) {
dev_err(&dev->pdev->dev,
Expand Down Expand Up @@ -498,7 +495,7 @@ static int write_i2c(struct nmk_i2c_dev *dev)
dev->virtbase + I2C_IMSCR);

timeout = wait_for_completion_interruptible_timeout(
&dev->xfer_complete, msecs_to_jiffies(I2C_TIMEOUT_MS));
&dev->xfer_complete, msecs_to_jiffies(dev->adap.timeout));

if (timeout < 0) {
dev_err(&dev->pdev->dev,
Expand Down Expand Up @@ -917,6 +914,7 @@ static int __devinit nmk_i2c_probe(struct platform_device *pdev)
adap->owner = THIS_MODULE;
adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
adap->algo = &nmk_i2c_algo;
adap->timeout = pdata->timeout ? pdata->timeout : 20000;
snprintf(adap->name, sizeof(adap->name),
"Nomadik I2C%d at %lx", pdev->id, (unsigned long)res->start);

Expand Down

0 comments on commit 9c2a5b1

Please sign in to comment.