GNU Linux-libre 4.4.296-gnu1
[releases.git] / arch / powerpc / include / asm / mpic_timer.h
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