[v2,2/3] dt-bindings: watchdog: fsl-imx: document suspend in wait mode

Message ID 20221025072533.2980154-3-andrej.picej@norik.com
State New
Headers
Series Suspending i.MX watchdog in WAIT mode |

Commit Message

Andrej Picej Oct. 25, 2022, 7:25 a.m. UTC
  Property "fsl,suspend-in-wait" suspends watchdog in "WAIT" mode which
corresponds to Linux's Suspend-to-Idle S0 mode. If this property is not
set and the device is put into Suspend-to-Idle mode, the watchdog
triggers a reset after 128 seconds.

Signed-off-by: Andrej Picej <andrej.picej@norik.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
---
Changes in v2:
 - add a commit message,
 - add a list of devices which support this functionality
---
 .../bindings/watchdog/fsl-imx-wdt.yaml        | 22 +++++++++++++++++++
 1 file changed, 22 insertions(+)
  

Comments

Krzysztof Kozlowski Oct. 25, 2022, 1:48 p.m. UTC | #1
On 25/10/2022 03:25, Andrej Picej wrote:
> Property "fsl,suspend-in-wait" suspends watchdog in "WAIT" mode which
> corresponds to Linux's Suspend-to-Idle S0 mode. If this property is not
> set and the device is put into Suspend-to-Idle mode, the watchdog
> triggers a reset after 128 seconds.
> 
> Signed-off-by: Andrej Picej <andrej.picej@norik.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> ---
> Changes in v2:
>  - add a commit message,
>  - add a list of devices which support this functionality
> ---
>  .../bindings/watchdog/fsl-imx-wdt.yaml        | 22 +++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml b/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
> index fb7695515be1..9289de97859b 100644
> --- a/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
> +++ b/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
> @@ -55,6 +55,28 @@ properties:
>        If present, the watchdog device is configured to assert its
>        external reset (WDOG_B) instead of issuing a software reset.
>  
> +  fsl,suspend-in-wait:
> +    $ref: /schemas/types.yaml#/definitions/flag
> +    description: |
> +      If present, the watchdog device is suspended in WAIT mode
> +      (Suspend-to-Idle). Only supported on following devices:
> +        - "fsl,imx25-wdt",

You need to define such allow/disallow in allOf:if:then, instead. Like
example-schema is doing for foo-supply, just disallow it for some types
or use "if: not: ..."

Best regards,
Krzysztof
  
Andrej Picej Oct. 26, 2022, 6:38 a.m. UTC | #2
On 25. 10. 22 15:48, Krzysztof Kozlowski wrote:
> On 25/10/2022 03:25, Andrej Picej wrote:
>> Property "fsl,suspend-in-wait" suspends watchdog in "WAIT" mode which
>> corresponds to Linux's Suspend-to-Idle S0 mode. If this property is not
>> set and the device is put into Suspend-to-Idle mode, the watchdog
>> triggers a reset after 128 seconds.
>>
>> Signed-off-by: Andrej Picej <andrej.picej@norik.com>
>> Reviewed-by: Fabio Estevam <festevam@gmail.com>
>> ---
>> Changes in v2:
>>   - add a commit message,
>>   - add a list of devices which support this functionality
>> ---
>>   .../bindings/watchdog/fsl-imx-wdt.yaml        | 22 +++++++++++++++++++
>>   1 file changed, 22 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml b/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
>> index fb7695515be1..9289de97859b 100644
>> --- a/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
>> +++ b/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
>> @@ -55,6 +55,28 @@ properties:
>>         If present, the watchdog device is configured to assert its
>>         external reset (WDOG_B) instead of issuing a software reset.
>>   
>> +  fsl,suspend-in-wait:
>> +    $ref: /schemas/types.yaml#/definitions/flag
>> +    description: |
>> +      If present, the watchdog device is suspended in WAIT mode
>> +      (Suspend-to-Idle). Only supported on following devices:
>> +        - "fsl,imx25-wdt",
> 
> You need to define such allow/disallow in allOf:if:then, instead. Like
> example-schema is doing for foo-supply, just disallow it for some types
> or use "if: not: ..."

Sorry missed that. So something like that should be added?:

> allOf:
>   - if:
>       not:
>         properties:
>           compatible:
>             contains:
>               enum:
>                 - fsl,imx25-wdt
>                 - fsl,imx35-wdt
>                 - fsl,imx50-wdt
>                 - fsl,imx51-wdt
>                 - fsl,imx53-wdt
>                 - fsl,imx6q-wdt
>                 - fsl,imx6sl-wdt
>                 - fsl,imx6sll-wdt
>                 - fsl,imx6sx-wdt
>                 - fsl,imx6ul-wdt
>                 - fsl,imx7d-wdt
>                 - fsl,imx8mm-wdt
>                 - fsl,imx8mn-wdt
>                 - fsl,imx8mp-wdt
>                 - fsl,imx8mq-wdt
>                 - fsl,vf610-wdt
>     then:
>       properties:
>         fsl,suspend-in-wait: false

And I'm assuming I can then remove the supported devices list from 
property description.

Are you fine with this, so we don't have to split the compatible list 
like Alexander suggested? Basically we have the same list of WDW 
supported devices in the driver.

Thank you for your review,
Andrej
  
Krzysztof Kozlowski Oct. 26, 2022, 2:12 p.m. UTC | #3
On 26/10/2022 02:38, Andrej Picej wrote:
> On 25. 10. 22 15:48, Krzysztof Kozlowski wrote:
>> On 25/10/2022 03:25, Andrej Picej wrote:
>>> Property "fsl,suspend-in-wait" suspends watchdog in "WAIT" mode which
>>> corresponds to Linux's Suspend-to-Idle S0 mode. If this property is not
>>> set and the device is put into Suspend-to-Idle mode, the watchdog
>>> triggers a reset after 128 seconds.
>>>
>>> Signed-off-by: Andrej Picej <andrej.picej@norik.com>
>>> Reviewed-by: Fabio Estevam <festevam@gmail.com>
>>> ---
>>> Changes in v2:
>>>   - add a commit message,
>>>   - add a list of devices which support this functionality
>>> ---
>>>   .../bindings/watchdog/fsl-imx-wdt.yaml        | 22 +++++++++++++++++++
>>>   1 file changed, 22 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml b/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
>>> index fb7695515be1..9289de97859b 100644
>>> --- a/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
>>> +++ b/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
>>> @@ -55,6 +55,28 @@ properties:
>>>         If present, the watchdog device is configured to assert its
>>>         external reset (WDOG_B) instead of issuing a software reset.
>>>   
>>> +  fsl,suspend-in-wait:
>>> +    $ref: /schemas/types.yaml#/definitions/flag
>>> +    description: |
>>> +      If present, the watchdog device is suspended in WAIT mode
>>> +      (Suspend-to-Idle). Only supported on following devices:
>>> +        - "fsl,imx25-wdt",
>>
>> You need to define such allow/disallow in allOf:if:then, instead. Like
>> example-schema is doing for foo-supply, just disallow it for some types
>> or use "if: not: ..."
> 
> Sorry missed that. So something like that should be added?:
> 
>> allOf:
>>   - if:
>>       not:
>>         properties:
>>           compatible:
>>             contains:
>>               enum:
>>                 - fsl,imx25-wdt
>>                 - fsl,imx35-wdt
>>                 - fsl,imx50-wdt
>>                 - fsl,imx51-wdt
>>                 - fsl,imx53-wdt
>>                 - fsl,imx6q-wdt
>>                 - fsl,imx6sl-wdt
>>                 - fsl,imx6sll-wdt
>>                 - fsl,imx6sx-wdt
>>                 - fsl,imx6ul-wdt
>>                 - fsl,imx7d-wdt
>>                 - fsl,imx8mm-wdt
>>                 - fsl,imx8mn-wdt
>>                 - fsl,imx8mp-wdt
>>                 - fsl,imx8mq-wdt
>>                 - fsl,vf610-wdt

Yes.

>>     then:
>>       properties:
>>         fsl,suspend-in-wait: false
> 
> And I'm assuming I can then remove the supported devices list from 
> property description.

Yes.

> 
> Are you fine with this, so we don't have to split the compatible list 
> like Alexander suggested? Basically we have the same list of WDW 
> supported devices in the driver.

I don't know to what you refer.

Best regards,
Krzysztof
  
Andrej Picej Oct. 27, 2022, 7:16 a.m. UTC | #4
On 26. 10. 22 16:12, Krzysztof Kozlowski wrote:
> On 26/10/2022 02:38, Andrej Picej wrote:
>> On 25. 10. 22 15:48, Krzysztof Kozlowski wrote:
>>> On 25/10/2022 03:25, Andrej Picej wrote:
>>>> Property "fsl,suspend-in-wait" suspends watchdog in "WAIT" mode which
>>>> corresponds to Linux's Suspend-to-Idle S0 mode. If this property is not
>>>> set and the device is put into Suspend-to-Idle mode, the watchdog
>>>> triggers a reset after 128 seconds.
>>>>
>>>> Signed-off-by: Andrej Picej <andrej.picej@norik.com>
>>>> Reviewed-by: Fabio Estevam <festevam@gmail.com>
>>>> ---
>>>> Changes in v2:
>>>>    - add a commit message,
>>>>    - add a list of devices which support this functionality
>>>> ---
>>>>    .../bindings/watchdog/fsl-imx-wdt.yaml        | 22 +++++++++++++++++++
>>>>    1 file changed, 22 insertions(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml b/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
>>>> index fb7695515be1..9289de97859b 100644
>>>> --- a/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
>>>> +++ b/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
>>>> @@ -55,6 +55,28 @@ properties:
>>>>          If present, the watchdog device is configured to assert its
>>>>          external reset (WDOG_B) instead of issuing a software reset.
>>>>    
>>>> +  fsl,suspend-in-wait:
>>>> +    $ref: /schemas/types.yaml#/definitions/flag
>>>> +    description: |
>>>> +      If present, the watchdog device is suspended in WAIT mode
>>>> +      (Suspend-to-Idle). Only supported on following devices:
>>>> +        - "fsl,imx25-wdt",
>>>
>>> You need to define such allow/disallow in allOf:if:then, instead. Like
>>> example-schema is doing for foo-supply, just disallow it for some types
>>> or use "if: not: ..."
>>
>> Sorry missed that. So something like that should be added?:
>>
>>> allOf:
>>>    - if:
>>>        not:
>>>          properties:
>>>            compatible:
>>>              contains:
>>>                enum:
>>>                  - fsl,imx25-wdt
>>>                  - fsl,imx35-wdt
>>>                  - fsl,imx50-wdt
>>>                  - fsl,imx51-wdt
>>>                  - fsl,imx53-wdt
>>>                  - fsl,imx6q-wdt
>>>                  - fsl,imx6sl-wdt
>>>                  - fsl,imx6sll-wdt
>>>                  - fsl,imx6sx-wdt
>>>                  - fsl,imx6ul-wdt
>>>                  - fsl,imx7d-wdt
>>>                  - fsl,imx8mm-wdt
>>>                  - fsl,imx8mn-wdt
>>>                  - fsl,imx8mp-wdt
>>>                  - fsl,imx8mq-wdt
>>>                  - fsl,vf610-wdt
> 
> Yes.
> 
>>>      then:
>>>        properties:
>>>          fsl,suspend-in-wait: false
>>
>> And I'm assuming I can then remove the supported devices list from
>> property description.
> 
> Yes.
> 
>>
>> Are you fine with this, so we don't have to split the compatible list
>> like Alexander suggested? Basically we have the same list of WDW
>> supported devices in the driver.
> 
> I don't know to what you refer.
> 
I'm referring to this comment by Alexander Stein: 
(https://lore.kernel.org/all/13126397.uLZWGnKmhe@steina-w/)

> So the models listed in Documentation/devicetree/bindings/watchdog/fsl-imx-
> wdt.yaml not supporting this feature are
> * fsl,imx21-wdt
> * fsl,imx27-wdt
> * fsl,imx31-wdt
> * fsl,ls1012a-wdt
> * fsl,ls1043a-wdt
> ?
> 
> But all models are listed as compatible to fsl,imx21-wdt. So there is 
> something wrong here. IMHO this sounds like the compatible list has to be 
> split and updated. Depending on that this feature can be detected. Maintaining 
> another list seems error prone to me.

Best regards,
Andrej.
  

Patch

diff --git a/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml b/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
index fb7695515be1..9289de97859b 100644
--- a/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
+++ b/Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
@@ -55,6 +55,28 @@  properties:
       If present, the watchdog device is configured to assert its
       external reset (WDOG_B) instead of issuing a software reset.
 
+  fsl,suspend-in-wait:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: |
+      If present, the watchdog device is suspended in WAIT mode
+      (Suspend-to-Idle). Only supported on following devices:
+        - "fsl,imx25-wdt",
+        - "fsl,imx35-wdt",
+        - "fsl,imx50-wdt",
+        - "fsl,imx51-wdt",
+        - "fsl,imx53-wdt",
+        - "fsl,imx6q-wdt",
+        - "fsl,imx6sl-wdt",
+        - "fsl,imx6sll-wdt",
+        - "fsl,imx6sx-wdt",
+        - "fsl,imx6ul-wdt",
+        - "fsl,imx7d-wdt",
+        - "fsl,imx8mm-wdt",
+        - "fsl,imx8mn-wdt",
+        - "fsl,imx8mp-wdt",
+        - "fsl,imx8mq-wdt",
+        - "fsl,vf610-wdt".
+
 required:
   - compatible
   - interrupts