summaryrefslogtreecommitdiff
path: root/drivers/mfd
diff options
context:
space:
mode:
authorRobin Gong <B38343@freescale.com>2012-06-28 14:35:37 +0800
committerJason Liu <r64343@freescale.com>2012-07-20 13:39:10 +0800
commit58ff970c8d0f86cfd3a62a4910d388fc388f0ab9 (patch)
treed739674943e03602d79abc6fb5125032da0a4d5b /drivers/mfd
parentfaa60f831ea1ba4093f775734abf4d1aeff1612c (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.c10
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;