2010-01-14 20:07:35 +00:00
/*
* linux / arch / arm / plat - versatile / sched - clock . c
*
* Copyright ( C ) 1999 - 2003 ARM Limited
* Copyright ( C ) 2000 Deep Blue Solutions Ltd
*
* 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 . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*/
2011-12-15 12:19:23 +01:00
# include <linux/kernel.h>
2010-01-14 20:07:35 +00:00
# include <linux/io.h>
2013-06-01 23:39:40 -07:00
# include <linux/sched_clock.h>
2010-01-14 20:07:35 +00:00
2010-12-15 21:56:47 +00:00
# include <plat/sched_clock.h>
2010-01-14 20:07:35 +00:00
2010-12-15 21:56:47 +00:00
static void __iomem * ctr ;
2010-01-14 20:07:35 +00:00
2013-11-15 15:26:25 -08:00
static u64 notrace versatile_read_sched_clock ( void )
2010-01-14 20:07:35 +00:00
{
2011-12-15 12:19:23 +01:00
if ( ctr )
return readl ( ctr ) ;
2010-01-14 20:07:35 +00:00
2011-12-15 12:19:23 +01:00
return 0 ;
2010-12-15 21:56:47 +00:00
}
2010-01-14 20:07:35 +00:00
2010-12-15 21:56:47 +00:00
void __init versatile_sched_clock_init ( void __iomem * reg , unsigned long rate )
{
ctr = reg ;
2013-11-15 15:26:25 -08:00
sched_clock_register ( versatile_read_sched_clock , 32 , rate ) ;
2010-01-14 20:07:35 +00:00
}