[v3,3/7] watchdog: sirfsoc: allow setting timeout in devicetree

Message ID 20180211200847.25000-3-marcus.folkesson@gmail.com
State Changes Requested, archived
Headers show
Series
  • Untitled series #27973
Related show

Commit Message

Marcus Folkesson Feb. 11, 2018, 8:08 p.m.
watchdog_init_timeout() will allways pick timeout_param since it
defaults to a valid timeout.

By following best practice described in
Documentation/watchdog/watchdog-kernel-api.txt, it also
let us to set timout-sec property in devicetree.

Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
---
 Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt | 4 ++++
 drivers/watchdog/sirfsoc_wdt.c                             | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

Comments

Rob Herring Feb. 19, 2018, 12:07 a.m. | #1
On Sun, Feb 11, 2018 at 09:08:43PM +0100, Marcus Folkesson wrote:
> watchdog_init_timeout() will allways pick timeout_param since it
> defaults to a valid timeout.
> 
> By following best practice described in
> Documentation/watchdog/watchdog-kernel-api.txt, it also
> let us to set timout-sec property in devicetree.

typo

> 
> Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt | 4 ++++
>  drivers/watchdog/sirfsoc_wdt.c                             | 2 +-
>  2 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt b/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
> index 9cbc76c89b2b..0dce5e3100b4 100644
> --- a/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
> +++ b/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
> @@ -5,10 +5,14 @@ Required properties:
>  - reg: Address range of tick timer/WDT register set
>  - interrupts: interrupt number to the cpu
>  
> +Optional properties:
> +- timeout-sec : Contains the watchdog timeout in seconds
> +
>  Example:
>  
>  timer@b0020000 {
>  	compatible = "sirf,prima2-tick";
>  	reg = <0xb0020000 0x1000>;
>  	interrupts = <0>;
> +	timeout-sec = <30>;
>  };
> diff --git a/drivers/watchdog/sirfsoc_wdt.c b/drivers/watchdog/sirfsoc_wdt.c
> index 4eea351e09b0..ac0c9d2c4aee 100644
> --- a/drivers/watchdog/sirfsoc_wdt.c
> +++ b/drivers/watchdog/sirfsoc_wdt.c
> @@ -29,7 +29,7 @@
>  #define SIRFSOC_WDT_MAX_TIMEOUT		(10 * 60)	/* 10 mins */
>  #define SIRFSOC_WDT_DEFAULT_TIMEOUT	30		/* 30 secs */
>  
> -static unsigned int timeout = SIRFSOC_WDT_DEFAULT_TIMEOUT;
> +static unsigned int timeout;

If you have an old dtb, then you still need the default.

>  static bool nowayout = WATCHDOG_NOWAYOUT;
>  
>  module_param(timeout, uint, 0);
> -- 
> 2.15.1
> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Guenter Roeck Feb. 19, 2018, 1:07 a.m. | #2
On 02/18/2018 04:07 PM, Rob Herring wrote:
> On Sun, Feb 11, 2018 at 09:08:43PM +0100, Marcus Folkesson wrote:
>> watchdog_init_timeout() will allways pick timeout_param since it
>> defaults to a valid timeout.
>>
>> By following best practice described in
>> Documentation/watchdog/watchdog-kernel-api.txt, it also
>> let us to set timout-sec property in devicetree.
> 
> typo
> 
>>
>> Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
>> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>>   Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt | 4 ++++
>>   drivers/watchdog/sirfsoc_wdt.c                             | 2 +-
>>   2 files changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt b/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
>> index 9cbc76c89b2b..0dce5e3100b4 100644
>> --- a/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
>> +++ b/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
>> @@ -5,10 +5,14 @@ Required properties:
>>   - reg: Address range of tick timer/WDT register set
>>   - interrupts: interrupt number to the cpu
>>   
>> +Optional properties:
>> +- timeout-sec : Contains the watchdog timeout in seconds
>> +
>>   Example:
>>   
>>   timer@b0020000 {
>>   	compatible = "sirf,prima2-tick";
>>   	reg = <0xb0020000 0x1000>;
>>   	interrupts = <0>;
>> +	timeout-sec = <30>;
>>   };
>> diff --git a/drivers/watchdog/sirfsoc_wdt.c b/drivers/watchdog/sirfsoc_wdt.c
>> index 4eea351e09b0..ac0c9d2c4aee 100644
>> --- a/drivers/watchdog/sirfsoc_wdt.c
>> +++ b/drivers/watchdog/sirfsoc_wdt.c
>> @@ -29,7 +29,7 @@
>>   #define SIRFSOC_WDT_MAX_TIMEOUT		(10 * 60)	/* 10 mins */
>>   #define SIRFSOC_WDT_DEFAULT_TIMEOUT	30		/* 30 secs */
>>   
>> -static unsigned int timeout = SIRFSOC_WDT_DEFAULT_TIMEOUT;
>> +static unsigned int timeout;
> 
> If you have an old dtb, then you still need the default.
> 

No. It is optional to start with, and the driver already has

static struct watchdog_device sirfsoc_wdd = {
         .info = &sirfsoc_wdt_ident,
         .ops = &sirfsoc_wdt_ops,
         .timeout = SIRFSOC_WDT_DEFAULT_TIMEOUT,			<------
         .min_timeout = SIRFSOC_WDT_MIN_TIMEOUT,
         .max_timeout = SIRFSOC_WDT_MAX_TIMEOUT,
};

Guenter

>>   static bool nowayout = WATCHDOG_NOWAYOUT;
>>   
>>   module_param(timeout, uint, 0);
>> -- 
>> 2.15.1
>>
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring Feb. 22, 2018, 12:02 a.m. | #3
On Sun, Feb 18, 2018 at 7:07 PM, Guenter Roeck <linux@roeck-us.net> wrote:
> On 02/18/2018 04:07 PM, Rob Herring wrote:
>>
>> On Sun, Feb 11, 2018 at 09:08:43PM +0100, Marcus Folkesson wrote:
>>>
>>> watchdog_init_timeout() will allways pick timeout_param since it
>>> defaults to a valid timeout.
>>>
>>> By following best practice described in
>>> Documentation/watchdog/watchdog-kernel-api.txt, it also
>>> let us to set timout-sec property in devicetree.
>>
>>
>> typo
>>
>>>
>>> Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
>>> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
>>> ---
>>>   Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt | 4 ++++
>>>   drivers/watchdog/sirfsoc_wdt.c                             | 2 +-
>>>   2 files changed, 5 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
>>> b/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
>>> index 9cbc76c89b2b..0dce5e3100b4 100644
>>> --- a/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
>>> +++ b/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
>>> @@ -5,10 +5,14 @@ Required properties:
>>>   - reg: Address range of tick timer/WDT register set
>>>   - interrupts: interrupt number to the cpu
>>>   +Optional properties:
>>> +- timeout-sec : Contains the watchdog timeout in seconds
>>> +
>>>   Example:
>>>     timer@b0020000 {
>>>         compatible = "sirf,prima2-tick";
>>>         reg = <0xb0020000 0x1000>;
>>>         interrupts = <0>;
>>> +       timeout-sec = <30>;
>>>   };
>>> diff --git a/drivers/watchdog/sirfsoc_wdt.c
>>> b/drivers/watchdog/sirfsoc_wdt.c
>>> index 4eea351e09b0..ac0c9d2c4aee 100644
>>> --- a/drivers/watchdog/sirfsoc_wdt.c
>>> +++ b/drivers/watchdog/sirfsoc_wdt.c
>>> @@ -29,7 +29,7 @@
>>>   #define SIRFSOC_WDT_MAX_TIMEOUT               (10 * 60)       /* 10
>>> mins */
>>>   #define SIRFSOC_WDT_DEFAULT_TIMEOUT   30              /* 30 secs */
>>>   -static unsigned int timeout = SIRFSOC_WDT_DEFAULT_TIMEOUT;
>>> +static unsigned int timeout;
>>
>>
>> If you have an old dtb, then you still need the default.
>>
>
> No. It is optional to start with, and the driver already has
>
> static struct watchdog_device sirfsoc_wdd = {
>         .info = &sirfsoc_wdt_ident,
>         .ops = &sirfsoc_wdt_ops,
>         .timeout = SIRFSOC_WDT_DEFAULT_TIMEOUT,                 <------
>         .min_timeout = SIRFSOC_WDT_MIN_TIMEOUT,
>         .max_timeout = SIRFSOC_WDT_MAX_TIMEOUT,
> };

Okay, then:

Reviewed-by: Rob Herring <robh@kernel.org>

for the lot.

Rob
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt b/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
index 9cbc76c89b2b..0dce5e3100b4 100644
--- a/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
+++ b/Documentation/devicetree/bindings/watchdog/sirfsoc_wdt.txt
@@ -5,10 +5,14 @@  Required properties:
 - reg: Address range of tick timer/WDT register set
 - interrupts: interrupt number to the cpu
 
+Optional properties:
+- timeout-sec : Contains the watchdog timeout in seconds
+
 Example:
 
 timer@b0020000 {
 	compatible = "sirf,prima2-tick";
 	reg = <0xb0020000 0x1000>;
 	interrupts = <0>;
+	timeout-sec = <30>;
 };
diff --git a/drivers/watchdog/sirfsoc_wdt.c b/drivers/watchdog/sirfsoc_wdt.c
index 4eea351e09b0..ac0c9d2c4aee 100644
--- a/drivers/watchdog/sirfsoc_wdt.c
+++ b/drivers/watchdog/sirfsoc_wdt.c
@@ -29,7 +29,7 @@ 
 #define SIRFSOC_WDT_MAX_TIMEOUT		(10 * 60)	/* 10 mins */
 #define SIRFSOC_WDT_DEFAULT_TIMEOUT	30		/* 30 secs */
 
-static unsigned int timeout = SIRFSOC_WDT_DEFAULT_TIMEOUT;
+static unsigned int timeout;
 static bool nowayout = WATCHDOG_NOWAYOUT;
 
 module_param(timeout, uint, 0);