diff options
author | Robin Gong <B38343@freescale.com> | 2012-06-28 14:35:37 +0800 |
---|---|---|
committer | Jason Liu <r64343@freescale.com> | 2012-07-20 13:39:10 +0800 |
commit | 58ff970c8d0f86cfd3a62a4910d388fc388f0ab9 (patch) | |
tree | d739674943e03602d79abc6fb5125032da0a4d5b /drivers/mfd | |
parent | faa60f831ea1ba4093f775734abf4d1aeff1612c (diff) |
ENGR00215188-4 PFUZE : remove related old code in pfuze driver
1.remove related old code in pfuze driver
2.add i2c write retry as i2c read retry.
Signed-off-by: Robin Gong <B38343@freescale.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/pfuze-core.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/mfd/pfuze-core.c b/drivers/mfd/pfuze-core.c index 9c7a988cf89b..febd4b05dd0d 100644 --- a/drivers/mfd/pfuze-core.c +++ b/drivers/mfd/pfuze-core.c @@ -109,12 +109,16 @@ int pfuze_reg_write(struct mc_pfuze *mc_pfuze, unsigned int offset, unsigned char val) { unsigned char buf[2]; - int ret; + int ret, i; buf[0] = (unsigned char)offset; memcpy(&buf[1], &val, 1); - - ret = i2c_master_send(mc_pfuze->i2c_client, buf, 2); + for (i = 0; i < PFUZE_I2C_RETRY_TIMES; i++) { + ret = i2c_master_send(mc_pfuze->i2c_client, buf, 2); + if (ret == 2) + break; + msleep(1); + } if (ret != 2) { dev_err(&mc_pfuze->i2c_client->dev, "write failed!:%i\n", ret); return ret; |