Re: [PATCH 2/4] reset: add GPIO-based reset controller

From: Krzysztof Kozlowski
Date: Sat Jan 06 2024 - 10:32:51 EST


On 05/01/2024 15:33, Mark Brown wrote:
> On Thu, Jan 04, 2024 at 08:08:50PM +0100, Krzysztof Kozlowski wrote:
>> On 04/01/2024 17:30, Sean Anderson wrote:
>
>>> device post-assert delay post-deassert delay
>>> ====== ================= ===================
>>> A 500us 1ms
>>> B 1ms 300us
>
> ...
>
>> Now, if we are back to realistic cases - use just the longest reset time.
>
> Isn't the main concern here that when one device probes we don't yet
> know the times for the other devices?

You can never know when second device will appear. It might come from
modules, DTB overlay etc. If we want to satisfy all users, then we need
to wait till all users appear, which I think is not even possible,
considering runtime loaded overlays.

>
>>> If we leave things up to the drivers, then whoever probes first will get
>>> to decide the reset sequence.
>
>> In current design yes, but it's not a problem to change it. Where is the
>> limitation? Just read other values and update the reset time.
>
> We might have already done a reset by that time and earlier devices
> might prevent later devices from resetting again. It shouldn't be such
> an issue for the post delay, but might be one for the pre delay.

If the reset deassert (or assert, depending what's the default state) is
triggered in the probe, then it will happen with the probe of the first
device. If the delays of that reset are not suitable for the second -
not yet probed - then what do you propose? I have the answer: do not use
the simple, generic solution. The simple and generic solutions work for
simple and generic cases.

Best regards,
Krzysztof