Re: [REF] Query regarding process call/repeated start in i2c driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux