Messages in this thread | | | Subject | Re: [PATCH v2 3/4] dt-bindings: watchdog: da9062: add watchdog timeout mode | From | Andrej Picej <> | Date | Wed, 1 Dec 2021 08:05:35 +0100 |
| |
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
| |