xref: /linux/arch/powerpc/include/asm/mpic_timer.h (revision c4ee0af3fa0dc65f690fc908f02b8355f9576ea0)
1 /*
2  * arch/powerpc/include/asm/mpic_timer.h
3  *
4  * Header file for Mpic Global Timer
5  *
6  * Copyright 2013 Freescale Semiconductor, Inc.
7  *
8  * Author: Wang Dongsheng <Dongsheng.Wang@freescale.com>
9  *	   Li Yang <leoli@freescale.com>
10  *
11  * This program is free software; you can redistribute it and/or modify it
12  * under the terms of the GNU General Public License as published by the
13  * Free Software Foundation; either version 2 of the License, or (at your
14  * option) any later version.
15  */
16 
17 #ifndef __MPIC_TIMER__
18 #define __MPIC_TIMER__
19 
20 #include <linux/interrupt.h>
21 #include <linux/time.h>
22 
23 struct mpic_timer {
24 	void			*dev;
25 	struct cascade_priv	*cascade_handle;
26 	unsigned int		num;
27 	unsigned int		irq;
28 };
29 
30 #ifdef CONFIG_MPIC_TIMER
31 struct mpic_timer *mpic_request_timer(irq_handler_t fn,  void *dev,
32 		const struct timeval *time);
33 void mpic_start_timer(struct mpic_timer *handle);
34 void mpic_stop_timer(struct mpic_timer *handle);
35 void mpic_get_remain_time(struct mpic_timer *handle, struct timeval *time);
36 void mpic_free_timer(struct mpic_timer *handle);
37 #else
38 struct mpic_timer *mpic_request_timer(irq_handler_t fn,  void *dev,
39 		const struct timeval *time) { return NULL; }
40 void mpic_start_timer(struct mpic_timer *handle) { }
41 void mpic_stop_timer(struct mpic_timer *handle) { }
42 void mpic_get_remain_time(struct mpic_timer *handle, struct timeval *time) { }
43 void mpic_free_timer(struct mpic_timer *handle) { }
44 #endif
45 
46 #endif
47