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