From c95fec31928d7e2596364ee1d226b52ffd7793f2 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Wed, 24 Feb 2016 09:14:49 -0700 Subject: timer: Provide an early timer In some cases the timer must be accessible before driver model is active. Examples include when using CONFIG_TRACE to trace U-Boot's execution before driver model is set up. Enable this option to use an early timer. These functions must be supported by your timer driver: timer_early_get_count() and timer_early_get_rate(). Signed-off-by: Simon Glass --- include/timer.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'include/timer.h') diff --git a/include/timer.h b/include/timer.h index f14725cc28..dcc803c392 100644 --- a/include/timer.h +++ b/include/timer.h @@ -67,4 +67,25 @@ struct timer_dev_priv { unsigned long clock_rate; }; +/** + * timer_early_get_count() - Implement timer_get_count() before driver model + * + * If CONFIG_TIMER_EARLY is enabled, this function wil be called to return + * the current timer value before the proper driver model timer is ready. + * It should be implemented by one of the timer values. This is mostly useful + * for tracing. + */ +u64 timer_early_get_count(void); + +/** + * timer_early_get_rate() - Get the timer rate before driver model + * + * If CONFIG_TIMER_EARLY is enabled, this function wil be called to return + * the current timer rate in Hz before the proper driver model timer is ready. + * It should be implemented by one of the timer values. This is mostly useful + * for tracing. This corresponds to the clock_rate value in struct + * timer_dev_priv. + */ +unsigned long timer_early_get_rate(void); + #endif /* _TIMER_H_ */ -- cgit v1.2.1