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

Andrej Picej andrej.picej at norik.com
Tue Nov 30 22:42:44 PST 2021


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.



More information about the linux-arm-kernel mailing list