Hi,
Few of the I2C interfaces are [operated] with slave monitor mode, when
there is a requirement for
a particular slave may need to wait some time to get the ADDR before
sending an ACK.
In slave monitor mode, the I2C interface is set up as a master and
continues to attempt a transfer to
a particular slave until the slave device responds with an ACK.
This feature is an optional and defined in few of the controllers, Can
anyone tell me is this support is
added already in kernel, if yes please point to the respective driver
or code link.
thanks!
--
Jagan.
> Few of the I2C interfaces are [operated] with slave monitor mode, when
> there is a requirement for
> a particular slave may need to wait some time to get the ADDR before
> sending an ACK.
Can you describe an existing scenario? Why can't the slave use clock
stretching?
> This feature is an optional and defined in few of the controllers, Can
> anyone tell me is this support is
> added already in kernel, if yes please point to the respective driver
> or code link.
None that I know of. The above questions should help me understand why
it is needed on master driver level at all.
> Currently, one would have to put a loop on the address transfer waiting an ack
> is received in user space.
This is what most i2c master drivers would need to do anyhow. I have
never heard of hardware support for that. Do you know an IP core which
does that? And how are timeouts defined/handled?
> This helps the app or the user software to not busy wait considering the slow
> clk of i2c.
Currently, this is not supported in Linux I2C. It probably could be
using another I2C_M_* flag, but a number of details need to be designed
and implemented first. Would you be interested?
Kind regards,
Wolfram