On Mon, 2019-07-01 at 19:03 +0300, Andriy Gapon wrote:
> iicbb driver has a hardcoded timeout that defines how long the driver waits 
> for
>  SCL line to go high after the driver releases it to float.  Sometimes slaves
> hold the line low until they are ready to continue with the communication.
> As a side note, the timeout means that the driver just goes on as if the line
> became high.  Maybe it should produce an error instead.
> 
> Anyway, I would like to increase the current timeout of 100 x 10us to 1000 x
> 10us.  The rationale is that there are many slave devices, like sensors, that
> take about 10 ms to return a result.  So, I think that it makes sense to play
> nice with such devices by default.
> 
> Probably I'll add a sysctl for that parameter while I'll be there.
> 
> Any objections?

Many (perhaps most?) modern i2c slave devices are both i2c and smbus
compatible, and the smbus slave timeout is 35ms, so that wouldn't be a
bad default value.

I don't think ignoring the error and forging ahead is a good idea.  It
should return an error, and perhaps it should use the bitbang bus-
recovery sequence (from iic_recover_bus.c) to unwedge the slave device.

-- Ian

_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to