On 12/02/2014 03:15 PM, Wolfram Sang wrote:
What do you do when disable repeated start? Sending STOP and START? If
so, this is really something different than repeated start. By using
I2C_FUNC_I2C a user expects repeated start, so if the HW does not
support it, we should say so and don't try to emulate it with something
different.
Yes, we send stop.
As said before, this is wrong. Another master could interfere between
the messages when using stop+start. This is no replacement for repeated
start.
More importantly a lot of I2C slaves also reset their internal state machine
on a stop. So e.g. if reading a register is implemented by doing
start,write,repeated start,read,stop and you replace that with
start,write,stop,start,read,stop you'll always read register zero instead of
the register you wanted to read.
- Lars
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html