Linux kernel and device drivers for NXP i.MX platforms
 help / color / mirror / Atom feed
* [PATCH 0/4] da9062/da9061 watchdog timeout mode
@ 2026-09-23 11:17 Primoz Fiser
  2026-09-23 11:17 ` [PATCH 1/4] mfd: da9062: make register CONFIG_I writable Primoz Fiser
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Primoz Fiser @ 2026-09-23 11:17 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Support Opensource, Lee Jones, Wim Van Sebroeck, Guenter Roeck
  Cc: devicetree, imx, linux-arm-kernel, linux-kernel, mfd,
	linux-watchdog, upstream, andrej.picej

This is a revival of a series originally posted by Andrej Picej in              
December 2021 [1]. It lets the DA9061/2 PMIC watchdog be configured via         
the "dlg,wdt-sd" DT property, to trigger a full SHUTDOWN instead of the         
default POWERDOWN on watchdog timeout, and enables that on the PHYTEC           
phyCORE-i.MX6 SOM.                                                              
                                                                                
From v5 of original series this resend drops patch 4/5 ("dt-bindings:           
watchdog: da9062: add watchdog timeout mode") because it already landed         
upstream as commit 382256b219fb, later converted from .txt to YAML by           
bd888a4377ae. Thus dlg,da9062-watchdog.yaml already documents dlg,wdt-sd        
property.                                                                       
                                                                                
Patches 1 and 2 (the mfd prerequisites making register CONFIG_I                 
writable) needed a rebase: an unrelated commit has since added                  
CONFIG_J, the register immediately adjacent to CONFIG_I, to the same            
writeable-range tables. Rather than reapplying the original single-             
register insert next to it, these merge CONFIG_I and CONFIG_J into one          
range, matching the existing CONFIG_G-CONFIG_K style already used in            
this file.                                                                      
                                                                                
Patch 3 (the watchdog driver support) still applies unmodified.                 
                                                                                
Patch 4 only needed its target path updated for the arch/arm/boot/dts           
vendor sub-directory move (imx6qdl-phytec-phycore-som.dtsi is now under         
nxp/imx/).                                            
                                                                                
[1] https://lore.kernel.org/all/20211206064732.280375-1-andrej.picej@norik.com/

Andrej Picej (3):
  mfd: da9061: make register CONFIG_I writable
  watchdog: da9062: reset board on watchdog timeout
  ARM: dts: imx6: phycore-som: set watchdog timeout mode to shutdown

Stefan Christ (1):
  mfd: da9062: make register CONFIG_I writable

 .../nxp/imx/imx6qdl-phytec-phycore-som.dtsi   |  1 +
 drivers/mfd/da9062-core.c                     |  4 +--
 drivers/watchdog/da9062_wdt.c                 | 27 +++++++++++++++++++
 3 files changed, 30 insertions(+), 2 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/4] mfd: da9062: make register CONFIG_I writable
  2026-09-23 11:17 [PATCH 0/4] da9062/da9061 watchdog timeout mode Primoz Fiser
@ 2026-09-23 11:17 ` Primoz Fiser
  2026-09-23 11:25   ` sashiko-bot
  2026-09-23 11:17 ` [PATCH 2/4] mfd: da9061: " Primoz Fiser
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Primoz Fiser @ 2026-09-23 11:17 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Support Opensource, Lee Jones, Wim Van Sebroeck, Guenter Roeck
  Cc: devicetree, imx, linux-arm-kernel, linux-kernel, mfd,
	linux-watchdog, upstream, andrej.picej

From: Stefan Christ <s.christ@phytec.de>

Make the config register CONFIG_I writable to change the watchdog mode.

Signed-off-by: Stefan Christ <s.christ@phytec.de>
Signed-off-by: Andrej Picej <andrej.picej@norik.com>
Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Acked-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
---
 drivers/mfd/da9062-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mfd/da9062-core.c b/drivers/mfd/da9062-core.c
index ad198183aff7..32dd24483ee0 100644
--- a/drivers/mfd/da9062-core.c
+++ b/drivers/mfd/da9062-core.c
@@ -531,7 +531,7 @@ static const struct regmap_range da9062_aa_writeable_ranges[] = {
 	regmap_reg_range(DA9062AA_VBUCK3_B, DA9062AA_VBUCK3_B),
 	regmap_reg_range(DA9062AA_VLDO1_B, DA9062AA_VLDO4_B),
 	regmap_reg_range(DA9062AA_BBAT_CONT, DA9062AA_BBAT_CONT),
-	regmap_reg_range(DA9062AA_CONFIG_J, DA9062AA_CONFIG_J),
+	regmap_reg_range(DA9062AA_CONFIG_I, DA9062AA_CONFIG_J),
 	regmap_reg_range(DA9062AA_GP_ID_0, DA9062AA_GP_ID_19),
 };
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/4] mfd: da9061: make register CONFIG_I writable
  2026-09-23 11:17 [PATCH 0/4] da9062/da9061 watchdog timeout mode Primoz Fiser
  2026-09-23 11:17 ` [PATCH 1/4] mfd: da9062: make register CONFIG_I writable Primoz Fiser
@ 2026-09-23 11:17 ` Primoz Fiser
  2026-09-23 11:23   ` sashiko-bot
  2026-09-23 11:17 ` [PATCH 3/4] watchdog: da9062: reset board on watchdog timeout Primoz Fiser
  2026-09-23 11:17 ` [PATCH 4/4] ARM: dts: imx6: phycore-som: set watchdog timeout mode to shutdown Primoz Fiser
  3 siblings, 1 reply; 11+ messages in thread
From: Primoz Fiser @ 2026-09-23 11:17 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Support Opensource, Lee Jones, Wim Van Sebroeck, Guenter Roeck
  Cc: devicetree, imx, linux-arm-kernel, linux-kernel, mfd,
	linux-watchdog, upstream, andrej.picej

From: Andrej Picej <andrej.picej@norik.com>

Make the config register CONFIG_I writable to change the watchdog mode.

Signed-off-by: Andrej Picej <andrej.picej@norik.com>
Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Tested-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
---
 drivers/mfd/da9062-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mfd/da9062-core.c b/drivers/mfd/da9062-core.c
index 32dd24483ee0..c987e533824d 100644
--- a/drivers/mfd/da9062-core.c
+++ b/drivers/mfd/da9062-core.c
@@ -427,7 +427,7 @@ static const struct regmap_range da9061_aa_writeable_ranges[] = {
 	regmap_reg_range(DA9062AA_VBUCK1_B, DA9062AA_VBUCK4_B),
 	regmap_reg_range(DA9062AA_VBUCK3_B, DA9062AA_VBUCK3_B),
 	regmap_reg_range(DA9062AA_VLDO1_B, DA9062AA_VLDO4_B),
-	regmap_reg_range(DA9062AA_CONFIG_J, DA9062AA_CONFIG_J),
+	regmap_reg_range(DA9062AA_CONFIG_I, DA9062AA_CONFIG_J),
 	regmap_reg_range(DA9062AA_GP_ID_0, DA9062AA_GP_ID_19),
 };
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 3/4] watchdog: da9062: reset board on watchdog timeout
  2026-09-23 11:17 [PATCH 0/4] da9062/da9061 watchdog timeout mode Primoz Fiser
  2026-09-23 11:17 ` [PATCH 1/4] mfd: da9062: make register CONFIG_I writable Primoz Fiser
  2026-09-23 11:17 ` [PATCH 2/4] mfd: da9061: " Primoz Fiser
@ 2026-09-23 11:17 ` Primoz Fiser
  2026-09-23 11:25   ` sashiko-bot
  2026-09-23 21:01   ` Guenter Roeck
  2026-09-23 11:17 ` [PATCH 4/4] ARM: dts: imx6: phycore-som: set watchdog timeout mode to shutdown Primoz Fiser
  3 siblings, 2 replies; 11+ messages in thread
From: Primoz Fiser @ 2026-09-23 11:17 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Support Opensource, Lee Jones, Wim Van Sebroeck, Guenter Roeck
  Cc: devicetree, imx, linux-arm-kernel, linux-kernel, mfd,
	linux-watchdog, upstream, andrej.picej

From: Andrej Picej <andrej.picej@norik.com>

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 <andrej.picej@norik.com>
Tested-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Acked-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
---
 drivers/watchdog/da9062_wdt.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/drivers/watchdog/da9062_wdt.c b/drivers/watchdog/da9062_wdt.c
index 3d7bf2f351db..7ceef8cd7425 100644
--- a/drivers/watchdog/da9062_wdt.c
+++ b/drivers/watchdog/da9062_wdt.c
@@ -204,8 +204,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)
@@ -245,6 +248,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.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 4/4] ARM: dts: imx6: phycore-som: set watchdog timeout mode to shutdown
  2026-09-23 11:17 [PATCH 0/4] da9062/da9061 watchdog timeout mode Primoz Fiser
                   ` (2 preceding siblings ...)
  2026-09-23 11:17 ` [PATCH 3/4] watchdog: da9062: reset board on watchdog timeout Primoz Fiser
@ 2026-09-23 11:17 ` Primoz Fiser
  2026-09-23 11:23   ` sashiko-bot
  3 siblings, 1 reply; 11+ messages in thread
From: Primoz Fiser @ 2026-09-23 11:17 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Support Opensource, Lee Jones, Wim Van Sebroeck, Guenter Roeck
  Cc: devicetree, imx, linux-arm-kernel, linux-kernel, mfd,
	linux-watchdog, upstream, andrej.picej

From: Andrej Picej <andrej.picej@norik.com>

Enable system restart when the watchdog timeout occurs.

Signed-off-by: Andrej Picej <andrej.picej@norik.com>
Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
---
 arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-phycore-som.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-phycore-som.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-phycore-som.dtsi
index 85e278eb2016..ddbfecd591f5 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-phycore-som.dtsi
+++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-phycore-som.dtsi
@@ -115,6 +115,7 @@ da9062_onkey: onkey {
 		watchdog {
 			compatible = "dlg,da9062-watchdog";
 			dlg,use-sw-pm;
+			dlg,wdt-sd = <1>;
 		};
 
 		thermal {
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/4] mfd: da9061: make register CONFIG_I writable
  2026-09-23 11:17 ` [PATCH 2/4] mfd: da9061: " Primoz Fiser
@ 2026-09-23 11:23   ` sashiko-bot
  0 siblings, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-09-23 11:23 UTC (permalink / raw)
  To: Primoz Fiser
  Cc: mfd, linux-watchdog, imx, devicetree, conor+dt, lee, robh,
	Frank.Li

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] mfd: commit message description is not capitalized
--

commit 5997b5e9bac966d2caba888fc1dfee5d188e81e0
Author: Andrej Picej <andrej.picej@norik.com>

mfd: da9061: make register CONFIG_I writable

This commit makes the configuration register CONFIG_I writable to allow
changing the watchdog mode.

> mfd: da9061: make register CONFIG_I writable

[Severity: Low]
This isn't a bug, but the MFD subsystem guidelines explicitly require the
description after the subsystem prefix to be capitalized. Should the commit
message title be updated to "mfd: da9061: Make register CONFIG_I writable"
to ensure it follows the standard Git history categorization for this
subsystem?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260923111719.2032012-1-primoz.fiser@norik.com?part=2

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 4/4] ARM: dts: imx6: phycore-som: set watchdog timeout mode to shutdown
  2026-09-23 11:17 ` [PATCH 4/4] ARM: dts: imx6: phycore-som: set watchdog timeout mode to shutdown Primoz Fiser
@ 2026-09-23 11:23   ` sashiko-bot
  0 siblings, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-09-23 11:23 UTC (permalink / raw)
  To: Primoz Fiser
  Cc: conor+dt, lee, devicetree, robh, imx, linux-watchdog, mfd,
	Frank.Li

> From: Andrej Picej <andrej.picej@norik.com>
> 
> Enable system restart when the watchdog timeout occurs.
> 
> Signed-off-by: Andrej Picej <andrej.picej@norik.com>
> Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
> Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260923111719.2032012-1-primoz.fiser@norik.com?part=4


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 1/4] mfd: da9062: make register CONFIG_I writable
  2026-09-23 11:17 ` [PATCH 1/4] mfd: da9062: make register CONFIG_I writable Primoz Fiser
@ 2026-09-23 11:25   ` sashiko-bot
  0 siblings, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-09-23 11:25 UTC (permalink / raw)
  To: Primoz Fiser
  Cc: devicetree, conor+dt, lee, linux-watchdog, Frank.Li, robh, imx,
	mfd

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] mfd: commit message capitalization violation
--

commit e25cc5ced7f3db4cd954295f961924b993742524
Author: Stefan Christ <s.christ@phytec.de>

mfd: da9062: make register CONFIG_I writable

This commit makes the configuration register CONFIG_I writable to allow
changing the watchdog mode.

> mfd: da9062: make register CONFIG_I writable

[Severity: Low]
This isn't a bug, but the MFD subsystem guidelines require the description
to always be capitalized after the subsystem prefix. Should "make" be
capitalized to "Make" to align with this convention?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260923111719.2032012-1-primoz.fiser@norik.com?part=1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 3/4] watchdog: da9062: reset board on watchdog timeout
  2026-09-23 11:17 ` [PATCH 3/4] watchdog: da9062: reset board on watchdog timeout Primoz Fiser
@ 2026-09-23 11:25   ` sashiko-bot
  2026-09-23 21:01   ` Guenter Roeck
  1 sibling, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-09-23 11:25 UTC (permalink / raw)
  To: Primoz Fiser
  Cc: devicetree, mfd, lee, conor+dt, linux-watchdog, Frank.Li, imx,
	robh

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] watchdog: da9062: ignored regmap_update_bits error during probe
--

commit bb521fc9765eec74ebb6a0d926ce1286dabd2490
Author: Andrej Picej <andrej.picej@norik.com>
watchdog: da9062: reset board on watchdog timeout

This commit introduces a method to change the watchdog timeout configuration
based on the "dlg,wdt-sd" DT binding in the da9062 watchdog driver. It allows
switching between SHUTDOWN mode and POWERDOWN mode on watchdog timeout. If
the DT binding is absent, it retains the default behavior.

> diff --git a/drivers/watchdog/da9062_wdt.c b/drivers/watchdog/da9062_wdt.c
> index 426962547df16..2a9da83493b38 100644
> --- a/drivers/watchdog/da9062_wdt.c
> +++ b/drivers/watchdog/da9062_wdt.c
[ ... ]
> @@ -245,6 +248,30 @@ static int da9062_wdt_probe(struct platform_device *pdev)
[ ... ]
> +		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);

[Severity: Medium]
Is the regmap_update_bits() error code intentionally ignored here?

When the device tree contains the "dlg,wdt-sd" property, da9062_wdt_probe()
attempts to update the DA9062AA_CONFIG_I register. If this transaction fails
(for example, returning -EIO due to a hardware fault), the failure is logged
via dev_err(), but the error code in 'ret' is then discarded because execution
falls through to devm_watchdog_register_device().

This could leave the watchdog in an incorrect reset mode that conflicts with
the explicit configuration requested by the device tree. Should the function
return 'ret' early upon failure, instead of continuing probe?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260923111719.2032012-1-primoz.fiser@norik.com?part=3

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 3/4] watchdog: da9062: reset board on watchdog timeout
  2026-09-23 11:17 ` [PATCH 3/4] watchdog: da9062: reset board on watchdog timeout Primoz Fiser
  2026-09-23 11:25   ` sashiko-bot
@ 2026-09-23 21:01   ` Guenter Roeck
  2026-09-23 21:03     ` Guenter Roeck
  1 sibling, 1 reply; 11+ messages in thread
From: Guenter Roeck @ 2026-09-23 21:01 UTC (permalink / raw)
  To: Primoz Fiser
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Support Opensource, Lee Jones, Wim Van Sebroeck, devicetree, imx,
	linux-arm-kernel, linux-kernel, mfd, linux-watchdog, upstream,
	andrej.picej

On Wed, Sep 23, 2026 at 01:17:18PM +0200, Primoz Fiser wrote:
> From: Andrej Picej <andrej.picej@norik.com>
> 
> 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.
> 

Please reword to something like:

Implement a method to change watchdog timeout configuration based on the
"dlg,wdt-sd" devicetree property. Setting the WATCHDOG_SD bit enables
SHUTDOWN mode, and clearing it enables POWERDOWN mode on watchdog timeout.

If no devicetree property is specified, the WATCHDOG_SD bit stays in default
configuration, not breaking behaviour of devices which might depend on
default fuse configuration.

Specifically, "There is a possibility ..." should not be part of the
description at all, and "Note:" should not be part of the description
and be moved below "---".

> Signed-off-by: Andrej Picej <andrej.picej@norik.com>
> Tested-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
> Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
> Acked-by: Guenter Roeck <linux@roeck-us.net>
> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
> ---
>  drivers/watchdog/da9062_wdt.c | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
> 
> diff --git a/drivers/watchdog/da9062_wdt.c b/drivers/watchdog/da9062_wdt.c
> index 3d7bf2f351db..7ceef8cd7425 100644
> --- a/drivers/watchdog/da9062_wdt.c
> +++ b/drivers/watchdog/da9062_wdt.c
> @@ -204,8 +204,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)
> @@ -245,6 +248,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.

This is not really what he code below does.
It sets the mode to shutdown if val is != 0, not if it is 1.

> +	 */
> +	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);

CHECK: Alignment should match open parenthesis
#157: FILE: drivers/watchdog/da9062_wdt.c:266:
+               ret = regmap_update_bits(wdt->hw->regmap,
+                                               DA9062AA_CONFIG_I,

Also, this does not require an additional variable.

		ret = regmap_update_bits(wdt->hw->regmap,
					 DA9062AA_CONFIG_I,
					 DA9062AA_WATCHDOG_SD_MASK,
					 val ? DA9062AA_WATCHDOG_SD_MASK : 0);

> +
> +		if (ret)
> +			dev_err(dev, "failed to set wdt reset mode: %d\n",
> +				ret);

			return dev_err_probe(dev, ret,
					     "failed to set wdt reset mode\n");

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 3/4] watchdog: da9062: reset board on watchdog timeout
  2026-09-23 21:01   ` Guenter Roeck
@ 2026-09-23 21:03     ` Guenter Roeck
  0 siblings, 0 replies; 11+ messages in thread
From: Guenter Roeck @ 2026-09-23 21:03 UTC (permalink / raw)
  To: Primoz Fiser
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Support Opensource, Lee Jones, Wim Van Sebroeck, devicetree, imx,
	linux-arm-kernel, linux-kernel, mfd, linux-watchdog, upstream,
	andrej.picej

On Wed, Sep 23, 2026 at 02:01:03PM -0700, Guenter Roeck wrote:
> On Wed, Sep 23, 2026 at 01:17:18PM +0200, Primoz Fiser wrote:
> > From: Andrej Picej <andrej.picej@norik.com>
> > 
> > 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.
> > 
> 
> Please reword to something like:
> 
> Implement a method to change watchdog timeout configuration based on the
> "dlg,wdt-sd" devicetree property. Setting the WATCHDOG_SD bit enables
> SHUTDOWN mode, and clearing it enables POWERDOWN mode on watchdog timeout.
> 
> If no devicetree property is specified, the WATCHDOG_SD bit stays in default
> configuration, not breaking behaviour of devices which might depend on
> default fuse configuration.
> 
> Specifically, "There is a possibility ..." should not be part of the
> description at all, and "Note:" should not be part of the description
> and be moved below "---".
> 
Also, the subject is wrong. The patch does not "reset board on watchdog
timeout", it implements support for "dlg,wdt-sd".

Guenter

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-09-23 21:03 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-23 11:17 [PATCH 0/4] da9062/da9061 watchdog timeout mode Primoz Fiser
2026-09-23 11:17 ` [PATCH 1/4] mfd: da9062: make register CONFIG_I writable Primoz Fiser
2026-09-23 11:25   ` sashiko-bot
2026-09-23 11:17 ` [PATCH 2/4] mfd: da9061: " Primoz Fiser
2026-09-23 11:23   ` sashiko-bot
2026-09-23 11:17 ` [PATCH 3/4] watchdog: da9062: reset board on watchdog timeout Primoz Fiser
2026-09-23 11:25   ` sashiko-bot
2026-09-23 21:01   ` Guenter Roeck
2026-09-23 21:03     ` Guenter Roeck
2026-09-23 11:17 ` [PATCH 4/4] ARM: dts: imx6: phycore-som: set watchdog timeout mode to shutdown Primoz Fiser
2026-09-23 11:23   ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox