tps65910&rk610:Solve communication conflict when rk610 and tps65910 on the same i2c

This commit is contained in:
张晴
2013-02-28 18:42:37 +08:00
parent 6465a37ed9
commit bbae0860c1

View File

@@ -157,13 +157,8 @@ int tps65910_bulk_read(struct tps65910 *tps65910, u8 reg,
int count, u8 *buf)
{
int ret;
#if 0
mutex_lock(&tps65910->io_mutex);
ret = tps65910->read(tps65910, reg, count, buf);
mutex_unlock(&tps65910->io_mutex);
#else
#if defined(CONFIG_MFD_RK610)
int i; //Solve communication conflict when rk610 and 65910 on the same i2c
mutex_lock(&tps65910->io_mutex);
@@ -177,6 +172,12 @@ int tps65910_bulk_read(struct tps65910 *tps65910, u8 reg,
buf[i] = ret & 0x000000FF;
}
}
mutex_unlock(&tps65910->io_mutex);
#else
mutex_lock(&tps65910->io_mutex);
ret = tps65910->read(tps65910, reg, count, buf);
mutex_unlock(&tps65910->io_mutex);
#endif
return 0;
@@ -188,13 +189,8 @@ int tps65910_bulk_write(struct tps65910 *tps65910, u8 reg,
int count, u8 *buf)
{
int ret;
#if 0
mutex_lock(&tps65910->io_mutex);
ret = tps65910->write(tps65910, reg, count, buf);
mutex_unlock(&tps65910->io_mutex);
#else
#if defined(CONFIG_MFD_RK610)
int i; // //Solve communication conflict when rk610 and 65910 on the same i2c
mutex_lock(&tps65910->io_mutex);
@@ -206,6 +202,12 @@ int tps65910_bulk_write(struct tps65910 *tps65910, u8 reg,
return ret;
}
}
mutex_unlock(&tps65910->io_mutex);
#else
mutex_lock(&tps65910->io_mutex);
ret = tps65910->write(tps65910, reg, count, buf);
mutex_unlock(&tps65910->io_mutex);
#endif
return 0;