1 /* 2 * Freescale General-purpose Timers Module 3 * 4 * Copyright 2006 Freescale Semiconductor, Inc. 5 * Shlomi Gridish <gridish@freescale.com> 6 * Jerry Huang <Chang-Ming.Huang@freescale.com> 7 * Copyright (c) MontaVista Software, Inc. 2008. 8 * Anton Vorontsov <avorontsov@ru.mvista.com> 9 * 10 * This program is free software; you can redistribute it and/or modify it 11 * under the terms of the GNU General Public License as published by the 12 * Free Software Foundation; either version 2 of the License, or (at your 13 * option) any later version. 14 */ 15 16 #ifndef __ASM_FSL_GTM_H 17 #define __ASM_FSL_GTM_H 18 19 #include <linux/types.h> 20 21 struct gtm; 22 23 struct gtm_timer { 24 unsigned int irq; 25 26 struct gtm *gtm; 27 bool requested; 28 u8 __iomem *gtcfr; 29 __be16 __iomem *gtmdr; 30 __be16 __iomem *gtpsr; 31 __be16 __iomem *gtcnr; 32 __be16 __iomem *gtrfr; 33 __be16 __iomem *gtevr; 34 }; 35 36 extern struct gtm_timer *gtm_get_timer16(void); 37 extern struct gtm_timer *gtm_get_specific_timer16(struct gtm *gtm, 38 unsigned int timer); 39 extern void gtm_put_timer16(struct gtm_timer *tmr); 40 extern int gtm_set_timer16(struct gtm_timer *tmr, unsigned long usec, 41 bool reload); 42 extern int gtm_set_exact_timer16(struct gtm_timer *tmr, u16 usec, 43 bool reload); 44 extern void gtm_stop_timer16(struct gtm_timer *tmr); 45 extern void gtm_ack_timer16(struct gtm_timer *tmr, u16 events); 46 47 #endif /* __ASM_FSL_GTM_H */ 48