2005-04-17 02:20:36 +04:00
/*
* Copyright ( C ) 2001 , 2002 , MontaVista Software Inc .
* Author : Jun Sun , jsun @ mvista . com or jsun @ junsun . net
* Copyright ( c ) 2003 Maciej W . Rozycki
*
* include / asm - mips / time . h
* header file for the new style time . c file and time services .
*
* 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 .
*/
# ifndef _ASM_TIME_H
# define _ASM_TIME_H
# include <linux/rtc.h>
2005-11-02 19:01:15 +03:00
# include <linux/spinlock.h>
2007-10-19 11:13:08 +04:00
# include <linux/clockchips.h>
2006-11-11 18:10:28 +03:00
# include <linux/clocksource.h>
2005-11-02 19:01:15 +03:00
extern spinlock_t rtc_lock ;
2005-04-17 02:20:36 +04:00
/*
2007-10-12 02:46:08 +04:00
* RTC ops . By default , they point to weak no - op RTC functions .
2006-03-27 13:16:33 +04:00
* rtc_mips_set_time - reverse the above translation and set time to RTC .
* rtc_mips_set_mmss - similar to rtc_set_time , but only min and sec need
2005-04-17 02:20:36 +04:00
* to be set . Used by RTC sync - up .
*/
2007-10-12 02:46:08 +04:00
extern int rtc_mips_set_time ( unsigned long ) ;
extern int rtc_mips_set_mmss ( unsigned long ) ;
2005-04-17 02:20:36 +04:00
/*
* board specific routines required by time_init ( ) .
*/
2007-10-12 02:46:08 +04:00
extern void plat_time_init ( void ) ;
2005-04-17 02:20:36 +04:00
/*
* mips_hpt_frequency - must be set if you intend to use an R4k - compatible
2007-12-09 15:19:36 +03:00
* counter as a timer interrupt source .
2005-04-17 02:20:36 +04:00
*/
extern unsigned int mips_hpt_frequency ;
2007-10-12 02:46:09 +04:00
/*
* The performance counter IRQ on MIPS is a close relative to the timer IRQ
* so it lives here .
*/
extern int ( * perf_irq ) ( void ) ;
2007-10-12 02:46:09 +04:00
/*
* Initialize the calling CPU ' s compare interrupt as clockevent device
*/
2007-10-18 20:48:11 +04:00
# ifdef CONFIG_CEVT_R4K
2007-11-21 19:39:44 +03:00
extern int mips_clockevent_init ( void ) ;
2007-10-29 17:23:43 +03:00
extern unsigned int __weak get_c0_compare_int ( void ) ;
2007-10-18 20:48:11 +04:00
# else
2007-11-21 19:39:44 +03:00
static inline int mips_clockevent_init ( void )
2007-10-18 20:48:11 +04:00
{
2007-11-21 19:39:44 +03:00
return - ENXIO ;
2007-10-18 20:48:11 +04:00
}
# endif
2007-10-12 02:46:09 +04:00
2007-11-25 01:33:28 +03:00
/*
* Initialize the count register as a clocksource
*/
# ifdef CONFIG_CEVT_R4K
extern void init_mips_clocksource ( void ) ;
# else
static inline void init_mips_clocksource ( void )
{
}
# endif
2007-10-19 11:13:08 +04:00
extern void clocksource_set_clock ( struct clocksource * cs , unsigned int clock ) ;
extern void clockevent_set_clock ( struct clock_event_device * cd ,
unsigned int clock ) ;
2005-04-17 02:20:36 +04:00
# endif /* _ASM_TIME_H */