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
+ int i; //Solve communication conflict when rk610 and 65910 on the same i2c
+
+ mutex_lock(&tps65910->io_mutex);
+ for(i=0; i<count; i++){
+ ret = tps65910_read(tps65910, reg+i);
+ if(ret < 0){
+ printk("%s: failed read reg 0x%0x, ret = %d\n", __FUNCTION__, reg+i, ret);
+ mutex_unlock(&tps65910->io_mutex);
+ return ret;
+ }else{
+ buf[i] = ret & 0x000000FF;
+ }
+ }
+ mutex_unlock(&tps65910->io_mutex);
+#endif
+ return 0;
- return ret;
}
EXPORT_SYMBOL_GPL(tps65910_bulk_read);
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
+ int i; // //Solve communication conflict when rk610 and 65910 on the same i2c
+
+ mutex_lock(&tps65910->io_mutex);
+ for(i=0; i<count; i++){
+ ret = tps65910_write(tps65910, reg+i, buf[i]);
+ if(ret < 0){
+ printk("%s: failed write reg=0x%0x, val=0x%0x, ret = %d\n", __FUNCTION__, reg+i, buf[i], ret);
+ mutex_unlock(&tps65910->io_mutex);
+ return ret;
+ }
+ }
+ mutex_unlock(&tps65910->io_mutex);
+#endif
+ return 0;
- return ret;
}
EXPORT_SYMBOL_GPL(tps65910_bulk_write);