Hi Wolfram Sang, I am facing issue on nxp-pca9505 I/O expander as I add support for repeated start to bcm-iproc i2c driver. I will check on code changes that I have done to support repeated start, as you have confirmed that ideally i2c client shouldn't have issue using repeated start instead of stop-start. Thank you. On 5 September 2017 at 23:22, Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: > >> 1. From I2C_AQ_COMB quirk it looks like if there are two messages in >> single i2c_transfer api to i2c-core, it has to be repeated-start. >> Is my understanding correct? > > Yes. > >> 2. On calling smbus api for word read (non process call), it calls i2c >> transfer api with two messages (emulation on i2c case). Now if 1 is >> true we end up in repeated start case. > > Yes, this is exactly how it is described in the SMBus Specification. > >> But this may not be expected by the i2c client. > > Quite the contrary, you usually run into more problems if you replace > repeated start with STOP/START. For example, you could get interrupted > by another master on the bus. But some clients also reset their state > machine after STOP. What device are you talking about? Which device > cannot handle repeated start? That would be interesting to know. > >> Basically how to know from the i2c host/core driver, if the client >> wants to use Repeated start or not? > > The client driver knows what the client wants. > >> Why don't we have a way where i2c client driver can call the i2c core >> api with flag to indicate whether to use repeated-start or not? >> (similar to protocolparameter in smbus api - can be set as >> I2C_SMBUS_PROC_CALL for process call) > > Because your client is not SMBus compatible, and you need work on I2C > level then where you can describe your own transfers the way you want. > -- Regards, Shivaraj Shetty