Nuvoton: Fix hal_watchdog_kick() with WDT stopped

According to HAL spec, hal_watchdog_kick() shall do nothing when WDT is stopped.
pull/14555/head
Chun-Chieh Li 2021-04-16 09:56:43 +08:00
parent 3213ea8ba1
commit d489c92a1b
4 changed files with 20 additions and 0 deletions

View File

@ -125,6 +125,11 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config)
void hal_watchdog_kick(void)
{
/* If a watchdog is not running, this function does nothing */
if (!(WDT->CTL & WDT_CTL_WDTEN_Msk)) {
return;
}
wdt_timeout_rmn_clk = NU_MS2WDTCLK(wdt_timeout_reload_ms);
watchdog_setup_cascade_timeout();
}

View File

@ -126,6 +126,11 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config)
void hal_watchdog_kick(void)
{
/* If a watchdog is not running, this function does nothing */
if (!(WDT->CTL & WDT_CTL_WDTEN_Msk)) {
return;
}
wdt_timeout_rmn_clk = NU_MS2WDTCLK(wdt_timeout_reload_ms);
watchdog_setup_cascade_timeout();
}

View File

@ -123,6 +123,11 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config)
void hal_watchdog_kick(void)
{
/* If a watchdog is not running, this function does nothing */
if (!(WDT->CTL & WDT_CTL_WTE_Msk)) {
return;
}
wdt_timeout_rmn_clk = NU_MS2WDTCLK(wdt_timeout_reload_ms);
watchdog_setup_cascade_timeout();
}

View File

@ -124,6 +124,11 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config)
void hal_watchdog_kick(void)
{
/* If a watchdog is not running, this function does nothing */
if (!(WDT->CTL & WDT_CTL_WDTEN_Msk)) {
return;
}
wdt_timeout_rmn_clk = NU_MS2WDTCLK(wdt_timeout_reload_ms);
watchdog_setup_cascade_timeout();
}