@ -15,12 +15,13 @@
# endif
# ifndef CONFIG_WD_PERIOD
# define CONFIG_WD_PERIOD (10 * 1000 * 1000) /* 10 seconds default*/
# define CONFIG_WD_PERIOD (10 * 1000 * 1000) /* 10 seconds default */
# endif
DECLARE_GLOBAL_DATA_PTR ;
# ifdef CONFIG_SYS_TIMER_RATE
/* Returns tick rate in ticks per second */
ulong notrace get_tbclk ( void )
{
return CONFIG_SYS_TIMER_RATE ;
@ -51,9 +52,10 @@ unsigned long long __weak notrace get_ticks(void)
return ( ( unsigned long long ) gd - > timebase_h < < 32 ) | gd - > timebase_l ;
}
static unsigned long long notrace tick_to_time ( uint64_t tick )
/* Returns time in milliseconds */
static unsigned long long notrace tick_to_time ( unsigned long long tick )
{
unsigned int div = get_tbclk ( ) ;
ulong div = get_tbclk ( ) ;
tick * = CONFIG_SYS_HZ ;
do_div ( tick , div ) ;
@ -65,6 +67,7 @@ int __weak timer_init(void)
return 0 ;
}
/* Returns time in milliseconds */
ulong __weak get_timer ( ulong base )
{
return tick_to_time ( get_ticks ( ) ) - base ;
@ -74,9 +77,10 @@ unsigned long __weak notrace timer_get_us(void)
{
return tick_to_time ( get_ticks ( ) * 1000 ) ;
}
static unsigned long long usec_to_tick ( unsigned long usec )
{
uint64_t tick = usec ;
unsigned long long tick = usec ;
tick * = get_tbclk ( ) ;
do_div ( tick , 1000000 ) ;
return tick ;
@ -85,12 +89,10 @@ static unsigned long long usec_to_tick(unsigned long usec)
void __weak __udelay ( unsigned long usec )
{
unsigned long long tmp ;
ulong tmo ;
tmo = usec_to_tick ( usec ) ;
tmp = get_ticks ( ) + tmo ; /* get current timestamp */
tmp = get_ticks ( ) + usec_to_tick ( usec ) ; /* get current timestamp */
while ( get_ticks ( ) < tmp ) /* loop till event */
while ( get_ticks ( ) < tmp + 1 ) /* loop till event */
/*NOP*/ ;
}