diff options
Diffstat (limited to 'include/hwtimer.h')
-rw-r--r-- | include/hwtimer.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/include/hwtimer.h b/include/hwtimer.h index 4ebc254fa5..fdf1d94852 100644 --- a/include/hwtimer.h +++ b/include/hwtimer.h @@ -8,6 +8,35 @@ #ifndef __CROS_EC_HWTIMER_H #define __CROS_EC_HWTIMER_H +struct timer_ctlr { + unsigned cr1; + unsigned cr2; + unsigned smcr; + unsigned dier; + + unsigned sr; + unsigned egr; + unsigned ccmr1; + unsigned ccmr2; + + unsigned ccer; + unsigned cnt; + unsigned psc; + unsigned arr; + + unsigned reserved30; + unsigned ccr1; + unsigned ccr2; + unsigned ccr3; + + unsigned ccr4; + unsigned reserved44; + unsigned dcr; + unsigned dmar; + + unsigned or; +}; + /** * Programs when the next timer should fire an interrupt. * deadline: timestamp of the event. @@ -41,4 +70,19 @@ int __hw_clock_source_init(uint32_t start_t); */ void process_timers(int overflow); +/** + * Set up the timer that we will use as a watchdog warning. + * + * Once this has been set up, we will print a warning shortly before the + * real watchdog fires. To avoid this, hwtimer_reset_watchdog() must be + * called periodically. + * + * This is needed since the real watchdog timer (IWDG) does not provide + * an interrupt to warn of an impending watchdog reset. + */ +void hwtimer_setup_watchdog(void); + +/* Reset the watchdog timer, to avoid the watchdog warning */ +void hwtimer_reset_watchdog(void); + #endif /* __CROS_EC_HWTIMER_H */ |