From: Andrej Picej <hidden> Date: 2021-12-06 06:47:46
From: Stefan Christ <redacted>
Make the config register CONFIG_I writable to change the watchdog mode.
Signed-off-by: Stefan Christ <redacted>
Signed-off-by: Andrej Picej <redacted>
---
Changes in v5:
- no changes
Changes in v4:
- no changes
Changes in v3:
- no changes
Changes in v2:
- no changes
---
drivers/mfd/da9062-core.c | 1 +
1 file changed, 1 insertion(+)
From: Andrej Picej <hidden> Date: 2021-12-06 06:47:48
Implement a method to change watchdog timeout configuration based on DT
binding ("dlg,wdt-sd"). There is a possibility to change the behaviour
of watchdog reset. Setting WATCHDOG_SD bit enables SHUTDOWN mode, and
clearing it enables POWERDOWN mode on watchdog timeout.
If no DT binding is specified the WATCHDOG_SD bit stays in default
configuration, not breaking behaviour of devices which might depend on
default fuse configuration.
Note: This patch requires that the config register CONFIG_I is
configured as writable in the da9061/2 multi function device.
Signed-off-by: Andrej Picej <redacted>
---
Changes in v5:
- fix spelling mistake in commit message
Changes in v4:
- move the code to probe function
Changes in v3:
- no changes
Changes in v2:
- don't force the "reset" for all da9062-watchdog users, instead add DT
binding where the behavior can be selected
---
drivers/watchdog/da9062_wdt.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
@@ -195,8 +195,11 @@ static int da9062_wdt_probe(struct platform_device *pdev){structdevice*dev=&pdev->dev;unsignedinttimeout;+unsignedintmask;structda9062*chip;structda9062_watchdog*wdt;+intret;+u32val;chip=dev_get_drvdata(dev->parent);if(!chip)
@@ -236,6 +239,30 @@ static int da9062_wdt_probe(struct platform_device *pdev)set_bit(WDOG_HW_RUNNING,&wdt->wdtdev.status);}+/*+*Configurewhathappensonwatchdogtimeout.Canbespecifiedwith+*"dlg,wdt-sd"dt-binding(0->POWERDOWN,1->SHUTDOWN).+*If"dlg,wdt-sd"dt-bindingisNOTsetusethedefault.+*/+ret=device_property_read_u32(dev,"dlg,wdt-sd",&val);+if(!ret){+if(val)+/* Use da9062's SHUTDOWN mode */+mask=DA9062AA_WATCHDOG_SD_MASK;+else+/* Use da9062's POWERDOWN mode. */+mask=0x0;++ret=regmap_update_bits(wdt->hw->regmap,+DA9062AA_CONFIG_I,+DA9062AA_WATCHDOG_SD_MASK,+mask);++if(ret)+dev_err(dev,"failed to set wdt reset mode: %d\n",+ret);+}+returndevm_watchdog_register_device(dev,&wdt->wdtdev);}
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: Andrej Picej <hidden> Date: 2021-12-06 06:47:49
Make the config register CONFIG_I writable to change the watchdog mode.
Signed-off-by: Andrej Picej <redacted>
---
Chnages in v5:
- new patch, make CONFIG_I writable also for da9061 version
---
drivers/mfd/da9062-core.c | 1 +
1 file changed, 1 insertion(+)
From: Andrej Picej <hidden> Date: 2021-12-06 06:47:51
Enable system restart when the watchdog timeout occurs.
Signed-off-by: Andrej Picej <redacted>
---
Changes in v5:
- no changes
Changes in v4:
- no changes
Changes in v3:
- no changes
Changes in v2:
- new patch, enable shutdown mode for phytec-phycore (da9062 user)
---
arch/arm/boot/dts/imx6qdl-phytec-phycore-som.dtsi | 1 +
1 file changed, 1 insertion(+)
From: Andrej Picej <hidden> Date: 2021-12-06 06:47:54
Document the watchdog timeout mode property. If this property is used
the user can select what happens on watchdog timeout. Set this property
to 1 to enable SHUTDOWN (the device resets), set it to 0 and the device
will go to POWERDOWN on watchdog timeout.
If this property is not set, don't touch the WATCHDOG_SD bit and leave
the configuration to OTP. This way backward compatibility is not broken.
Signed-off-by: Andrej Picej <redacted>
---
Changes in v5:
- no changes
Changes in v4:
- no changes
Changes in v3:
- add note about using the default OTP setting if this DT binding is
not specified
Changes in v2:
- new patch, document new DT binding
---
Documentation/devicetree/bindings/watchdog/da9062-wdt.txt | 6 ++++++
1 file changed, 6 insertions(+)
@@ -10,6 +10,12 @@ Optional properties: - dlg,use-sw-pm: Add this property to disable the watchdog during suspend. Only use this option if you can't use the watchdog automatic suspend function during a suspend (see register CONTROL_B).+- dlg,wdt-sd: Set what happens on watchdog timeout. If this bit is set the+ watchdog timeout triggers SHUTDOWN, if cleared the watchdog triggers+ POWERDOWN. Can be 0 or 1. Only use this option if you want to change the+ default chip's OTP setting for WATCHDOG_SD bit. If this property is NOT+ set the WATCHDOG_SD bit and on timeout watchdog behavior will match the+ chip's OTP settings. Example: DA9062
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: Christoph Niedermaier <cniedermaier@dh-electronics.com> Date: 2021-12-06 08:48:20
From: Andrej Picej
Sent: Monday, December 6, 2021 7:47 AM
quoted hunk
Make the config register CONFIG_I writable to change the watchdog mode.
Signed-off-by: Andrej Picej <redacted>
---
Chnages in v5:
- new patch, make CONFIG_I writable also for da9061 version
---
drivers/mfd/da9062-core.c | 1 +
1 file changed, 1 insertion(+)
Tested it on my DA9061:
- If I don't add anything to my device tree, the system freezes.
- With "dlg,wdt-sd = <1>;" in my devicetree the system restarts.
Thus it works on my system!
Tested-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Thanks and regards
Christoph
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: Christoph Niedermaier <cniedermaier@dh-electronics.com> Date: 2021-12-06 09:06:26
From: Andrej Picej
Sent: Monday, December 6, 2021 7:48 AM
quoted hunk
Implement a method to change watchdog timeout configuration based on DT
binding ("dlg,wdt-sd"). There is a possibility to change the behaviour
of watchdog reset. Setting WATCHDOG_SD bit enables SHUTDOWN mode, and
clearing it enables POWERDOWN mode on watchdog timeout.
If no DT binding is specified the WATCHDOG_SD bit stays in default
configuration, not breaking behaviour of devices which might depend on
default fuse configuration.
Note: This patch requires that the config register CONFIG_I is
configured as writable in the da9061/2 multi function device.
Signed-off-by: Andrej Picej <redacted>
---
Changes in v5:
- fix spelling mistake in commit message
Changes in v4:
- move the code to probe function
Changes in v3:
- no changes
Changes in v2:
- don't force the "reset" for all da9062-watchdog users, instead add DT
binding where the behavior can be selected
---
drivers/watchdog/da9062_wdt.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
@@ -195,8 +195,11 @@ static int da9062_wdt_probe(struct platform_device
*pdev)
{
struct device *dev = &pdev->dev;
unsigned int timeout;
+ unsigned int mask;
struct da9062 *chip;
struct da9062_watchdog *wdt;
+ int ret;
+ u32 val;
chip = dev_get_drvdata(dev->parent);
if (!chip)
@@ -236,6 +239,30 @@ static int da9062_wdt_probe(struct platform_device
*pdev)
set_bit(WDOG_HW_RUNNING, &wdt->wdtdev.status);
}
+ /*
+ * Configure what happens on watchdog timeout. Can be specified with
+ * "dlg,wdt-sd" dt-binding (0 -> POWERDOWN, 1 -> SHUTDOWN).
+ * If "dlg,wdt-sd" dt-binding is NOT set use the default.
+ */
+ ret = device_property_read_u32(dev, "dlg,wdt-sd", &val);
+ if (!ret) {
+ if (val)
+ /* Use da9062's SHUTDOWN mode */
+ mask = DA9062AA_WATCHDOG_SD_MASK;
+ else
+ /* Use da9062's POWERDOWN mode. */
+ mask = 0x0;
+
+ ret = regmap_update_bits(wdt->hw->regmap,
+ DA9062AA_CONFIG_I,
+ DA9062AA_WATCHDOG_SD_MASK,
+ mask);
+
+ if (ret)
+ dev_err(dev, "failed to set wdt reset mode: %d\n",
+ ret);
+ }
+
return devm_watchdog_register_device(dev, &wdt->wdtdev);
}
--
2.25.1
Tested-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Thanks and regards
Christoph
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: Adam Thomson <hidden> Date: 2021-12-06 16:46:54
On 06 December 2021 06:47, Andrej Picej wrote:
From: Stefan Christ <redacted>
Make the config register CONFIG_I writable to change the watchdog mode.
Signed-off-by: Stefan Christ <redacted>
Signed-off-by: Andrej Picej <redacted>
I've already provided 'Reviewed-by' tags for the other patches in this set. In
the future you can add any received tags on to patch re-submissions where
nothing has changed since last review.
Anyway, thanks for the work on this, and for the patch set:
Reviewed-by: Adam Thomson <redacted>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: Stefan Christ <redacted>
Make the config register CONFIG_I writable to change the watchdog mode.
Signed-off-by: Stefan Christ <redacted>
Signed-off-by: Andrej Picej <redacted>
I've already provided 'Reviewed-by' tags for the other patches in this set. In
the future you can add any received tags on to patch re-submissions where
nothing has changed since last review.
Anyway, thanks for the work on this, and for the patch set:
Reviewed-by: Adam Thomson <redacted>
In this context:
I expect that tags are present in patchwork. If a submitter drops tags
in a new revision of a patch series, those will get lost. The underlying
assumption is that the submitter had a reason to drop tags, such as
substantial changes in an affected patch. I can not assume that the
submitter dropped a tag accidentally and re-apply it, unless the reason
was explicitly provided (obviously that is typically not the case since
people don't usually add "accidentally dropped Reviewed-by: tags" to
change logs).
Also, I do not look into one patch of a series and apply tags to other
patches of that series. Similar reason, only here it is worse because Wim
may pull a patch from patchwork, from an e-mail, or from my watchdog-next
branch. We can't have all of them have different tags, so I take what is
in patchwork and nothing else (and your updated Reviewed-by: tag will
not apply to other patches of the series because it isn't in patchwork
for those).
I also see that my own Reviewed-by: tag (or tags, I didn't check all
of them) was/were dropped in v5 of this series. That means I'll have to
re-review the series to see what changed, which will take time and means
that the series will end up at the bottom of my review queue.
Please keep that in mind when dropping tags.
Guenter
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: Adam Thomson <hidden> Date: 2021-12-06 20:13:52
On 06 December 2021 17:12, Guenter Roeck wrote:
Also, I do not look into one patch of a series and apply tags to other
patches of that series. Similar reason, only here it is worse because Wim
may pull a patch from patchwork, from an e-mail, or from my watchdog-next
branch. We can't have all of them have different tags, so I take what is
in patchwork and nothing else (and your updated Reviewed-by: tag will
not apply to other patches of the series because it isn't in patchwork
for those).
That's fair enough. I'll send tags again for the other in the series. Thanks
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
From: Adam Thomson <hidden> Date: 2021-12-06 20:16:11
On 06 December 2021 06:48, Andrej Picej wrote:
Implement a method to change watchdog timeout configuration based on DT
binding ("dlg,wdt-sd"). There is a possibility to change the behaviour
of watchdog reset. Setting WATCHDOG_SD bit enables SHUTDOWN mode, and
clearing it enables POWERDOWN mode on watchdog timeout.
If no DT binding is specified the WATCHDOG_SD bit stays in default
configuration, not breaking behaviour of devices which might depend on
default fuse configuration.
Note: This patch requires that the config register CONFIG_I is
configured as writable in the da9061/2 multi function device.
Signed-off-by: Andrej Picej <redacted>
---
From: Adam Thomson <hidden> Date: 2021-12-06 20:16:58
On 06 December 2021 06:48, Andrej Picej wrote:
Document the watchdog timeout mode property. If this property is used
the user can select what happens on watchdog timeout. Set this property
to 1 to enable SHUTDOWN (the device resets), set it to 0 and the device
will go to POWERDOWN on watchdog timeout.
If this property is not set, don't touch the WATCHDOG_SD bit and leave
the configuration to OTP. This way backward compatibility is not broken.
Signed-off-by: Andrej Picej <redacted>
---
From: Rob Herring <robh@kernel.org> Date: 2021-12-10 21:12:18
On Mon, 06 Dec 2021 07:47:31 +0100, Andrej Picej wrote:
Document the watchdog timeout mode property. If this property is used
the user can select what happens on watchdog timeout. Set this property
to 1 to enable SHUTDOWN (the device resets), set it to 0 and the device
will go to POWERDOWN on watchdog timeout.
If this property is not set, don't touch the WATCHDOG_SD bit and leave
the configuration to OTP. This way backward compatibility is not broken.
Signed-off-by: Andrej Picej <redacted>
---
Changes in v5:
- no changes
Changes in v4:
- no changes
Changes in v3:
- add note about using the default OTP setting if this DT binding is
not specified
Changes in v2:
- new patch, document new DT binding
---
Documentation/devicetree/bindings/watchdog/da9062-wdt.txt | 6 ++++++
1 file changed, 6 insertions(+)
On Mon, Dec 06, 2021 at 07:47:31AM +0100, Andrej Picej wrote:
Document the watchdog timeout mode property. If this property is used
the user can select what happens on watchdog timeout. Set this property
to 1 to enable SHUTDOWN (the device resets), set it to 0 and the device
will go to POWERDOWN on watchdog timeout.
If this property is not set, don't touch the WATCHDOG_SD bit and leave
the configuration to OTP. This way backward compatibility is not broken.
Signed-off-by: Andrej Picej <redacted>
Reviewed-by: Adam Thomson <redacted>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
quoted hunk
---
Changes in v5:
- no changes
Changes in v4:
- no changes
Changes in v3:
- add note about using the default OTP setting if this DT binding is
not specified
Changes in v2:
- new patch, document new DT binding
---
Documentation/devicetree/bindings/watchdog/da9062-wdt.txt | 6 ++++++
1 file changed, 6 insertions(+)
@@ -10,6 +10,12 @@ Optional properties: - dlg,use-sw-pm: Add this property to disable the watchdog during suspend. Only use this option if you can't use the watchdog automatic suspend function during a suspend (see register CONTROL_B).+- dlg,wdt-sd: Set what happens on watchdog timeout. If this bit is set the+ watchdog timeout triggers SHUTDOWN, if cleared the watchdog triggers+ POWERDOWN. Can be 0 or 1. Only use this option if you want to change the+ default chip's OTP setting for WATCHDOG_SD bit. If this property is NOT+ set the WATCHDOG_SD bit and on timeout watchdog behavior will match the+ chip's OTP settings. Example: DA9062
From: Christoph Niedermaier <cniedermaier@dh-electronics.com> Date: 2022-04-11 09:16:17
From: Guenter Roeck [mailto:groeck7@gmail.com] On Behalf Of Guenter Roeck
Sent: Monday, December 6, 2021 6:12 PM
On 12/6/21 8:46 AM, Adam Thomson wrote:
quoted
On 06 December 2021 06:47, Andrej Picej wrote:
quoted
From: Stefan Christ <redacted>
Make the config register CONFIG_I writable to change the watchdog mode.
Signed-off-by: Stefan Christ <redacted>
Signed-off-by: Andrej Picej <redacted>
I've already provided 'Reviewed-by' tags for the other patches in this set. In
the future you can add any received tags on to patch re-submissions where
nothing has changed since last review.
Anyway, thanks for the work on this, and for the patch set:
Reviewed-by: Adam Thomson <redacted>
In this context:
I expect that tags are present in patchwork. If a submitter drops tags
in a new revision of a patch series, those will get lost. The underlying
assumption is that the submitter had a reason to drop tags, such as
substantial changes in an affected patch. I can not assume that the
submitter dropped a tag accidentally and re-apply it, unless the reason
was explicitly provided (obviously that is typically not the case since
people don't usually add "accidentally dropped Reviewed-by: tags" to
change logs).
Also, I do not look into one patch of a series and apply tags to other
patches of that series. Similar reason, only here it is worse because Wim
may pull a patch from patchwork, from an e-mail, or from my watchdog-next
branch. We can't have all of them have different tags, so I take what is
in patchwork and nothing else (and your updated Reviewed-by: tag will
not apply to other patches of the series because it isn't in patchwork
for those).
I also see that my own Reviewed-by: tag (or tags, I didn't check all
of them) was/were dropped in v5 of this series. That means I'll have to
re-review the series to see what changed, which will take time and means
that the series will end up at the bottom of my review queue.
Please keep that in mind when dropping tags.
Hi Guenter,
Is there anything against applying the first 4 patches of this series?
Thanks and regards
Christoph
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Mon, Dec 06, 2021 at 07:47:30AM +0100, Andrej Picej wrote:
Implement a method to change watchdog timeout configuration based on DT
binding ("dlg,wdt-sd"). There is a possibility to change the behaviour
of watchdog reset. Setting WATCHDOG_SD bit enables SHUTDOWN mode, and
clearing it enables POWERDOWN mode on watchdog timeout.
If no DT binding is specified the WATCHDOG_SD bit stays in default
configuration, not breaking behaviour of devices which might depend on
default fuse configuration.
Note: This patch requires that the config register CONFIG_I is
configured as writable in the da9061/2 multi function device.
Signed-off-by: Andrej Picej <redacted>
Reviewed-by: Adam Thomson <redacted>
Acked-by: Guenter Roeck <linux@roeck-us.net>
Depends on changes to be made in mfd driver.
Guenter
quoted hunk
---
Changes in v5:
- fix spelling mistake in commit message
Changes in v4:
- move the code to probe function
Changes in v3:
- no changes
Changes in v2:
- don't force the "reset" for all da9062-watchdog users, instead add DT
binding where the behavior can be selected
---
drivers/watchdog/da9062_wdt.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
@@ -195,8 +195,11 @@ static int da9062_wdt_probe(struct platform_device *pdev){structdevice*dev=&pdev->dev;unsignedinttimeout;+unsignedintmask;structda9062*chip;structda9062_watchdog*wdt;+intret;+u32val;chip=dev_get_drvdata(dev->parent);if(!chip)
@@ -236,6 +239,30 @@ static int da9062_wdt_probe(struct platform_device *pdev)set_bit(WDOG_HW_RUNNING,&wdt->wdtdev.status);}+/*+*Configurewhathappensonwatchdogtimeout.Canbespecifiedwith+*"dlg,wdt-sd"dt-binding(0->POWERDOWN,1->SHUTDOWN).+*If"dlg,wdt-sd"dt-bindingisNOTsetusethedefault.+*/+ret=device_property_read_u32(dev,"dlg,wdt-sd",&val);+if(!ret){+if(val)+/* Use da9062's SHUTDOWN mode */+mask=DA9062AA_WATCHDOG_SD_MASK;+else+/* Use da9062's POWERDOWN mode. */+mask=0x0;++ret=regmap_update_bits(wdt->hw->regmap,+DA9062AA_CONFIG_I,+DA9062AA_WATCHDOG_SD_MASK,+mask);++if(ret)+dev_err(dev,"failed to set wdt reset mode: %d\n",+ret);+}+returndevm_watchdog_register_device(dev,&wdt->wdtdev);}