[PATCH v2 3/4] dt-bindings: watchdog: da9062: add watchdog timeout mode

Andrej Picej andrej.picej at norik.com
Tue Nov 30 23:05:35 PST 2021



On 1. 12. 21 08:01, Guenter Roeck wrote:
> On 11/30/21 10:42 PM, Andrej Picej wrote:
>>
>> On 30. 11. 21 18:46, Adam Thomson wrote:
>>> On 30 November 2021 16:40, Guenter Roeck wrote:
>>>
>>>>>> Why does it need a value ? Why not just bool ?
>>>>>
>>>>> One argument might be that if the property isn't provided then the OTP
>>>>> configured value can persist without needing a FW change around 
>>>>> this DT
>>>> binding.
>>>>>
>>>>> My belief though is that the majority of users would have this 
>>>>> property set to 0
>>>>> by default in OTP, so a boolean would be OK I think here to enable 
>>>>> watchdog
>>>>> shutdown.
>>>>>
>>>>
>>>> Sorry, you lost me.
>>>>     dlg,wdt-sd = <0>;
>>>> is the current situation, and identical to not having the property in
>>>> the first place.
>>>>     dlg,wdt-sd = <1>;
>>>> is new. I don't see the difference to
>>>>     dlg,wdt-sd;
>>>> vs. not having the property at all (which is, again, the current 
>>>> situation).
>>>> Since it has to be backward compatible,
>>>>     dlg,wdt-sd = <0>;
>>>> will always be identical to not having the property at all.
>>>> I can not find a situation where an integer would have any benefits 
>>>> over a
>>>> boolean.
>>>
>>> So if you have a binary DT binding, it's either there or it isn't 
>>> which implies
>>> the bit to be set to 0/1 in this case. If you have a binding which 
>>> has a value,
>>> there can be 3 outcomes in this discussion:
>>>
>>>   1) Binding = 0, bit is set to 0
>>>   2) Binding = 1, bit is set to 1
>>>   3) Binding NOT present in DT, OTP default value in HW remains 
>>> untouched
>>>
>>> Say a platform updates to a later kernel version, but sticks with 
>>> existing DT
>>> FW (i.e. the new boolean binding isn't present in FW), then the 
>>> following could
>>> happen:
>>>
>>>   1) OTP for DA9061/2 has this bit set to 1, system expectation is 
>>> that watchdog
>>>      triggers SHUTDOWN.
>>>   2) New driver checks existance of 'dlg,wdt-sd' but it's obviously 
>>> not there so
>>>      assumes the bit should be set to 0 and does so
>>>   3) When the watchdog fires, it will no longer trigger SHUTDOWN but 
>>> instead
>>>      POWER-DOWN due to binary handling of new boolean binding.
>>>
>>
>> This was my thinking exactly. I also first thought about boolean 
>> value, but I then moved to the integer value of 0 or 1 after checking 
>> the OTP default for this bit. The da9062 I'm working with has the bit 
>> set to 1 by default.
> 
> That needs to be be documented.
> 
> Guenter

Ok, I will add a note about the default value and how it is defined by 
OTP. Will submit a v3.

Thanks for review.

BR,
Andrej



More information about the linux-arm-kernel mailing list