Re: [[RFC V3] 1/1] i2c: imx: add slave support

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

 



Hello Wolfram,

Please see inline. Thank you

On 12/14/2016 10:36 PM, Wolfram Sang wrote:
On Wed, Dec 14, 2016 at 03:01:31PM +0900, Joshua Frkuska wrote:
Add I2C slave provider using the generic slave interface.
It also supports master transactions when the slave in the idle mode.

I am confused. In the cover letter you write "Furthermore the state
machine introduced to handle the slave states does not handle the master
mode behavior." Yet here you say it supports master transactions? Is the
sentence from the cover letter outdated?

The cover letter is not outdated but does not elaborate enough. The state machine (slave task) operates when I2C_SLAVE is enabled and a slave device registered. The slave state machine keeps track of the master state but only has two roles relating to master mode. The first is to stop the controller when imx_stop is called. The second is to transition from an idle state to master mode via a START event. This puts the hardware in a possible transition state where the IBB status flag hasn't been set yet. To avoid this, the transition 'SP' intermediate state is created and we wait for the IBB flag to raise or time out after a number of attempts. All other hardware control in master mode is done via the i2c_imx_xfer, i2c_imx_start/stop functions. When I2C_SLAVE is disabled, the above state machine is not active and does serve the STOP event nor does it poll on IBB in this transition period. I hope this answers your questions.


Regards,

   Wolfram


--
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



[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