On 28.04.21 04:15, Li, Meng wrote:


-----Original Message-----
From: Stefan Roese <s...@denx.de>
Sent: Tuesday, April 27, 2021 10:23 PM
To: Li, Meng <meng...@windriver.com>; u-boot@lists.denx.de;
chin.liang....@intel.com; dinh.ngu...@intel.com; s...@chromium.org
Subject: Re: [PATCH v2, 1/2] driver: watchdog: reset watchdog in
designware_wdt_stop() function

[Please note: This e-mail is from an EXTERNAL e-mail address]

On 27.04.21 10:41, meng...@windriver.com wrote:
From: MengLi <meng...@windriver.com>

In uboot command line environment, watchdog is not able to be stopped
with below commands:
SOCFPGA_STRATIX10 # wdt dev watchdog@ffd00200
SOCFPGA_STRATIX10 # wdt stop
Refer to watchdog driver in linux kernel, it is also need to reset
watchdog after disable it so that the disable action takes effect.

v2:
Change "#if CONFIG_IS_ENABLED(DM_RESET)" into "if
(CONFIG_IS_ENABLED(DM_RESET)) {", and define the variable into if
condition sentence.

A few comments:

This version changelog belongs below the "---" line.

Please Cc interested people upon new versions, e.g. myself as I reviewed
this patch.

Other that this:

Reviewed-by: Stefan Roese <s...@denx.de>


Would you like me to add "Cc:" into comment log, too? Or only CC to
you in mail list?

That's up to you. But when you put the Cc: in the commit text (below
the Reviewed-by tag), then "git send-email" will automatically Cc all
listed addresses.

Thanks,
Stefan

Thanks,
Limeng

Thanks,
Stefan

Signed-off-by: Meng Li <meng...@windriver.com>
---
   drivers/watchdog/designware_wdt.c | 17 +++++++++++++++++
   1 file changed, 17 insertions(+)

diff --git a/drivers/watchdog/designware_wdt.c
b/drivers/watchdog/designware_wdt.c
index 12f09a7a39..57cad1effc 100644
--- a/drivers/watchdog/designware_wdt.c
+++ b/drivers/watchdog/designware_wdt.c
@@ -96,6 +96,23 @@ static int designware_wdt_stop(struct udevice *dev)
       designware_wdt_reset(dev);
       writel(0, priv->base + DW_WDT_CR);

+        if (CONFIG_IS_ENABLED(DM_RESET)) {
+             struct reset_ctl_bulk resets;
+             int ret;
+
+             ret = reset_get_bulk(dev, &resets);
+             if (ret)
+                     return ret;
+
+             ret = reset_assert_bulk(&resets);
+             if (ret)
+                     return ret;
+
+             ret = reset_deassert_bulk(&resets);
+             if (ret)
+                     return ret;
+     }
+
       return 0;
   }




Viele Grüße,
Stefan

--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: s...@denx.de


Viele Grüße,
Stefan

--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: s...@denx.de

Reply via email to