update i2c rw , can read vary width register