Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Jul 2019 19:18:59 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        FreeBSD Current <freebsd-current@FreeBSD.org>
Subject:   Re: i2c bit banging timeout for SCL
Message-ID:  <219f9907-5e66-018e-4fd5-550e522b1ecf@FreeBSD.org>
In-Reply-To: <92906.1561997793@critter.freebsd.dk>
References:  <a3538c10-2438-a287-77db-ad390078b274@FreeBSD.org> <92906.1561997793@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
On 01/07/2019 19:16, Poul-Henning Kamp wrote:
> --------
> In message <a3538c10-2438-a287-77db-ad390078b274@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?219f9907-5e66-018e-4fd5-550e522b1ecf>