time.h 2.0 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/*
 * 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>
18
#include <linux/spinlock.h>
19
#include <linux/clockchips.h>
20
#include <linux/clocksource.h>
21 22

extern spinlock_t rtc_lock;
L
Linus Torvalds 已提交
23 24

/*
25
 * RTC ops.  By default, they point to weak no-op RTC functions.
26 27
 *	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
L
Linus Torvalds 已提交
28 29
 *			to be set.  Used by RTC sync-up.
 */
30 31
extern int rtc_mips_set_time(unsigned long);
extern int rtc_mips_set_mmss(unsigned long);
L
Linus Torvalds 已提交
32 33 34 35

/*
 * board specific routines required by time_init().
 */
36
extern void plat_time_init(void);
L
Linus Torvalds 已提交
37 38 39

/*
 * mips_hpt_frequency - must be set if you intend to use an R4k-compatible
40
 * counter as a timer interrupt source.
L
Linus Torvalds 已提交
41 42 43
 */
extern unsigned int mips_hpt_frequency;

44 45 46 47 48 49
/*
 * The performance counter IRQ on MIPS is a close relative to the timer IRQ
 * so it lives here.
 */
extern int (*perf_irq)(void);

50 51 52
/*
 * Initialize the calling CPU's compare interrupt as clockevent device
 */
53
#ifdef CONFIG_CEVT_R4K
54
extern int mips_clockevent_init(void);
55
extern unsigned int __weak get_c0_compare_int(void);
56
#else
57
static inline int mips_clockevent_init(void)
58
{
59
	return -ENXIO;
60 61
}
#endif
62

63 64 65
/*
 * Initialize the count register as a clocksource
 */
66
#ifdef CONFIG_CSRC_R4K
67
extern int init_mips_clocksource(void);
68
#else
69
static inline int init_mips_clocksource(void)
70
{
71
	return 0;
72 73 74
}
#endif

75 76 77 78
extern void clocksource_set_clock(struct clocksource *cs, unsigned int clock);
extern void clockevent_set_clock(struct clock_event_device *cd,
		unsigned int clock);

L
Linus Torvalds 已提交
79
#endif /* _ASM_TIME_H */