@ -19,21 +19,19 @@
# include <common.h>
# include <asm/io.h>
# include <asm/arch/ftpmu010.h>
# include <asm/arch/fttmr010.h>
# include <faraday/ftpmu010.h>
static ulong timestamp ;
static ulong lastdec ;
static struct fttmr010 * tmr = ( struct fttmr010 * ) CONFIG_FTTMR010_BASE ;
static struct ftpmu010 * pmu = ( struct ftpmu010 * ) CONFIG_FTPMU010_BASE ;
# define TIMER_CLOCK 32768
# define TIMER_LOAD_VAL 0xffffffff
int timer_init ( void )
{
unsigned int oscc ;
unsigned int cr ;
debug ( " %s() \n " , __func__ ) ;
@ -41,23 +39,8 @@ int timer_init(void)
/* disable timers */
writel ( 0 , & tmr - > cr ) ;
/*
* use 32768 Hz oscillator for RTC , WDT , TIMER
*/
/* enable the 32768Hz oscillator */
oscc = readl ( & pmu - > OSCC ) ;
oscc & = ~ ( FTPMU010_OSCC_OSCL_OFF | FTPMU010_OSCC_OSCL_TRI ) ;
writel ( oscc , & pmu - > OSCC ) ;
/* wait until ready */
while ( ! ( readl ( & pmu - > OSCC ) & FTPMU010_OSCC_OSCL_STABLE ) )
;
/* select 32768Hz oscillator */
oscc = readl ( & pmu - > OSCC ) ;
oscc | = FTPMU010_OSCC_OSCL_RTCLSEL ;
writel ( oscc , & pmu - > OSCC ) ;
/* use 32768Hz oscillator for RTC, WDT, TIMER */
ftpmu010_32768osc_enable ( ) ;
/* setup timer */
writel ( TIMER_LOAD_VAL , & tmr - > timer3_load ) ;