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 21struct gtm; 22 23struct 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 36extern struct gtm_timer *gtm_get_timer16(void); 37extern struct gtm_timer *gtm_get_specific_timer16(struct gtm *gtm, 38 unsigned int timer); 39extern void gtm_put_timer16(struct gtm_timer *tmr); 40extern int gtm_set_timer16(struct gtm_timer *tmr, unsigned long usec, 41 bool reload); 42extern int gtm_set_exact_timer16(struct gtm_timer *tmr, u16 usec, 43 bool reload); 44extern void gtm_stop_timer16(struct gtm_timer *tmr); 45extern void gtm_ack_timer16(struct gtm_timer *tmr, u16 events); 46 47#endif /* __ASM_FSL_GTM_H */ 48