diff --git a/targets/TARGET_NUVOTON/TARGET_M451/watchdog_api.c b/targets/TARGET_NUVOTON/TARGET_M451/watchdog_api.c index af1e864c15..1ac841e78e 100644 --- a/targets/TARGET_NUVOTON/TARGET_M451/watchdog_api.c +++ b/targets/TARGET_NUVOTON/TARGET_M451/watchdog_api.c @@ -99,6 +99,8 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config) if (! wdt_hw_inited) { wdt_hw_inited = 1; + SYS_UnlockReg(); + /* Enable IP module clock */ CLK_EnableModuleClock(WDT_MODULE); @@ -109,6 +111,8 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config) CLK_SetModuleClock(WDT_MODULE, CLK_CLKSEL1_WDTSEL_LIRC, 0); #endif + SYS_LockReg(); + /* Set up IP interrupt */ NVIC_SetVector(WDT_IRQn, (uint32_t) WDT_IRQHandler); NVIC_EnableIRQ(WDT_IRQn); diff --git a/targets/TARGET_NUVOTON/TARGET_M480/watchdog_api.c b/targets/TARGET_NUVOTON/TARGET_M480/watchdog_api.c index 1016492a50..ae011649df 100644 --- a/targets/TARGET_NUVOTON/TARGET_M480/watchdog_api.c +++ b/targets/TARGET_NUVOTON/TARGET_M480/watchdog_api.c @@ -98,6 +98,8 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config) if (! wdt_hw_inited) { wdt_hw_inited = 1; + SYS_UnlockReg(); + /* Enable IP module clock */ CLK_EnableModuleClock(WDT_MODULE); @@ -108,6 +110,8 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config) CLK_SetModuleClock(WDT_MODULE, CLK_CLKSEL1_WDTSEL_LIRC, 0); #endif + SYS_LockReg(); + /* Set up IP interrupt */ NVIC_SetVector(WDT_IRQn, (uint32_t) WDT_IRQHandler); NVIC_EnableIRQ(WDT_IRQn); diff --git a/targets/TARGET_NUVOTON/TARGET_NANO100/watchdog_api.c b/targets/TARGET_NUVOTON/TARGET_NANO100/watchdog_api.c index c0bc933cca..a058bd2d5b 100644 --- a/targets/TARGET_NUVOTON/TARGET_NANO100/watchdog_api.c +++ b/targets/TARGET_NUVOTON/TARGET_NANO100/watchdog_api.c @@ -101,12 +101,16 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config) if (! wdt_hw_inited) { wdt_hw_inited = 1; + SYS_UnlockReg(); + /* Enable IP module clock */ CLK_EnableModuleClock(WDT_MODULE); /* Select IP clock source */ CLK_SetModuleClock(WDT_MODULE, 0, 0); + SYS_LockReg(); + /* Set up IP interrupt */ NVIC_SetVector(WDT_IRQn, (uint32_t) WDT_IRQHandler); NVIC_EnableIRQ(WDT_IRQn); diff --git a/targets/TARGET_NUVOTON/TARGET_NUC472/watchdog_api.c b/targets/TARGET_NUVOTON/TARGET_NUC472/watchdog_api.c index 529cd73244..9480a6ce79 100644 --- a/targets/TARGET_NUVOTON/TARGET_NUC472/watchdog_api.c +++ b/targets/TARGET_NUVOTON/TARGET_NUC472/watchdog_api.c @@ -98,6 +98,8 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config) if (! wdt_hw_inited) { wdt_hw_inited = 1; + SYS_UnlockReg(); + /* Enable IP module clock */ CLK_EnableModuleClock(WDT_MODULE); @@ -108,6 +110,8 @@ watchdog_status_t hal_watchdog_init(const watchdog_config_t *config) CLK_SetModuleClock(WDT_MODULE, CLK_CLKSEL1_WDTSEL_LIRC, 0); #endif + SYS_LockReg(); + /* Set up IP interrupt */ NVIC_SetVector(WDT_IRQn, (uint32_t) WDT_IRQHandler); NVIC_EnableIRQ(WDT_IRQn);