Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * Freescale General-purpose Timers Module
0004  *
0005  * Copyright 2006 Freescale Semiconductor, Inc.
0006  *               Shlomi Gridish <gridish@freescale.com>
0007  *               Jerry Huang <Chang-Ming.Huang@freescale.com>
0008  * Copyright (c) MontaVista Software, Inc. 2008.
0009  *               Anton Vorontsov <avorontsov@ru.mvista.com>
0010  */
0011 
0012 #ifndef __ASM_FSL_GTM_H
0013 #define __ASM_FSL_GTM_H
0014 
0015 #include <linux/types.h>
0016 
0017 struct gtm;
0018 
0019 struct gtm_timer {
0020     unsigned int irq;
0021 
0022     struct gtm *gtm;
0023     bool requested;
0024     u8 __iomem *gtcfr;
0025     __be16 __iomem *gtmdr;
0026     __be16 __iomem *gtpsr;
0027     __be16 __iomem *gtcnr;
0028     __be16 __iomem *gtrfr;
0029     __be16 __iomem *gtevr;
0030 };
0031 
0032 extern struct gtm_timer *gtm_get_timer16(void);
0033 extern struct gtm_timer *gtm_get_specific_timer16(struct gtm *gtm,
0034                           unsigned int timer);
0035 extern void gtm_put_timer16(struct gtm_timer *tmr);
0036 extern int gtm_set_timer16(struct gtm_timer *tmr, unsigned long usec,
0037                  bool reload);
0038 extern int gtm_set_exact_timer16(struct gtm_timer *tmr, u16 usec,
0039                  bool reload);
0040 extern void gtm_stop_timer16(struct gtm_timer *tmr);
0041 extern void gtm_ack_timer16(struct gtm_timer *tmr, u16 events);
0042 
0043 #endif /* __ASM_FSL_GTM_H */