static void wdt_disable(void) { spin_lock(&io_lock); HW_RTC_PERSISTENT1_CLR(BV_RTC_PERSISTENT1_GENERAL__RTC_FORCE_UPDATER); HW_RTC_CTRL_CLR(BM_RTC_CTRL_WATCHDOGEN); spin_unlock(&io_lock); }
/* clear RTC ALARM wakeup or AUTORESTART bits here. */ void PowerPrep_ClearAutoRestart( void ) { HW_RTC_CTRL_CLR( BM_ICOLL_CTRL_SFTRST ); while( HW_RTC_CTRL.B.SFTRST == 1 ); HW_RTC_CTRL_CLR( BM_ICOLL_CTRL_CLKGATE ); while( HW_RTC_CTRL.B.CLKGATE == 1 ); /* Due to the hardware design bug of mx28 EVK-A * we need to set the AUTO_RESTART bit. */ if(HW_RTC_PERSISTENT0.B.AUTO_RESTART==0) { while(BF_RD( RTC_STAT, NEW_REGS)); HW_RTC_PERSISTENT0.B.AUTO_RESTART = 1; BF_SET(RTC_CTRL, FORCE_UPDATE); BF_CLR(RTC_CTRL, FORCE_UPDATE); while(BF_RD( RTC_STAT, NEW_REGS)); while(BF_RD( RTC_STAT, STALE_REGS)); } }