root/arch/mips/include/asm/time.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. mips_clockevent_init
  2. init_mips_clocksource
  3. clockevent_set_clock

   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 /*
   3  * Copyright (C) 2001, 2002, MontaVista Software Inc.
   4  * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
   5  * Copyright (c) 2003  Maciej W. Rozycki
   6  *
   7  * include/asm-mips/time.h
   8  *     header file for the new style time.c file and time services.
   9  */
  10 #ifndef _ASM_TIME_H
  11 #define _ASM_TIME_H
  12 
  13 #include <linux/rtc.h>
  14 #include <linux/spinlock.h>
  15 #include <linux/clockchips.h>
  16 #include <linux/clocksource.h>
  17 
  18 extern spinlock_t rtc_lock;
  19 
  20 /*
  21  * board specific routines required by time_init().
  22  */
  23 extern void plat_time_init(void);
  24 
  25 /*
  26  * mips_hpt_frequency - must be set if you intend to use an R4k-compatible
  27  * counter as a timer interrupt source.
  28  */
  29 extern unsigned int mips_hpt_frequency;
  30 
  31 /*
  32  * The performance counter IRQ on MIPS is a close relative to the timer IRQ
  33  * so it lives here.
  34  */
  35 extern int (*perf_irq)(void);
  36 extern int __weak get_c0_perfcount_int(void);
  37 
  38 /*
  39  * Initialize the calling CPU's compare interrupt as clockevent device
  40  */
  41 extern unsigned int get_c0_compare_int(void);
  42 extern int r4k_clockevent_init(void);
  43 
  44 static inline int mips_clockevent_init(void)
  45 {
  46 #ifdef CONFIG_CEVT_R4K
  47         return r4k_clockevent_init();
  48 #else
  49         return -ENXIO;
  50 #endif
  51 }
  52 
  53 /*
  54  * Initialize the count register as a clocksource
  55  */
  56 extern int init_r4k_clocksource(void);
  57 
  58 static inline int init_mips_clocksource(void)
  59 {
  60 #ifdef CONFIG_CSRC_R4K
  61         return init_r4k_clocksource();
  62 #else
  63         return 0;
  64 #endif
  65 }
  66 
  67 static inline void clockevent_set_clock(struct clock_event_device *cd,
  68                                         unsigned int clock)
  69 {
  70         clockevents_calc_mult_shift(cd, clock, 4);
  71 }
  72 
  73 #endif /* _ASM_TIME_H */

/* [<][>][^][v][top][bottom][index][help] */