2007-10-22 14:43:15 +04:00
/*
* Cobalt time initialization .
*
2009-07-02 19:39:38 +04:00
* Copyright ( C ) 2007 Yoichi Yuasa < yuasa @ linux - mips . org >
2007-10-22 14:43:15 +04:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin Street , Fifth Floor , Boston , MA 02110 - 1301 USA
*/
2011-06-01 22:04:57 +04:00
# include <linux/i8253.h>
2007-10-22 14:43:15 +04:00
# include <linux/init.h>
# include <asm/gt64120.h>
# include <asm/time.h>
# define GT641XX_BASE_CLOCK 50000000 /* 50MHz */
void __init plat_time_init ( void )
{
2007-12-09 15:22:04 +03:00
u32 start , end ;
int i = HZ / 10 ;
2007-10-22 14:43:15 +04:00
setup_pit_timer ( ) ;
gt641xx_set_base_clock ( GT641XX_BASE_CLOCK ) ;
2007-12-09 15:22:04 +03:00
/*
* MIPS counter frequency is measured during a 100 msec interval
* using GT64111 timer0 .
*/
while ( ! gt641xx_timer0_state ( ) )
;
start = read_c0_count ( ) ;
while ( i - - )
while ( ! gt641xx_timer0_state ( ) )
;
end = read_c0_count ( ) ;
mips_hpt_frequency = ( end - start ) * 10 ;
printk ( KERN_INFO " MIPS counter frequency %dHz \n " , mips_hpt_frequency ) ;
2007-10-22 14:43:15 +04:00
}