i2c bit banging timeout for SCL
Andriy Gapon
avg at FreeBSD.org
Mon Jul 1 16:19:09 UTC 2019
On 01/07/2019 19:16, Poul-Henning Kamp wrote:
> --------
> In message <a3538c10-2438-a287-77db-ad390078b274 at FreeBSD.org>, Andriy Gapon writes:
>
>> 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.
>
> sysctl or ioctl ?
An ioctl that could set the value per slave sounds like a very good idea.
But it's a little bit more work than I planned for now, so it's a sysctl to set
the default global value.
--
Andriy Gapon
More information about the freebsd-current
mailing list