fsl_gtm.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * Freescale General-purpose Timers Module
  4. *
  5. * Copyright 2006 Freescale Semiconductor, Inc.
  6. * Shlomi Gridish <[email protected]>
  7. * Jerry Huang <[email protected]>
  8. * Copyright (c) MontaVista Software, Inc. 2008.
  9. * Anton Vorontsov <[email protected]>
  10. */
  11. #ifndef __ASM_FSL_GTM_H
  12. #define __ASM_FSL_GTM_H
  13. #include <linux/types.h>
  14. struct gtm;
  15. struct gtm_timer {
  16. unsigned int irq;
  17. struct gtm *gtm;
  18. bool requested;
  19. u8 __iomem *gtcfr;
  20. __be16 __iomem *gtmdr;
  21. __be16 __iomem *gtpsr;
  22. __be16 __iomem *gtcnr;
  23. __be16 __iomem *gtrfr;
  24. __be16 __iomem *gtevr;
  25. };
  26. extern struct gtm_timer *gtm_get_timer16(void);
  27. extern struct gtm_timer *gtm_get_specific_timer16(struct gtm *gtm,
  28. unsigned int timer);
  29. extern void gtm_put_timer16(struct gtm_timer *tmr);
  30. extern int gtm_set_timer16(struct gtm_timer *tmr, unsigned long usec,
  31. bool reload);
  32. extern int gtm_set_exact_timer16(struct gtm_timer *tmr, u16 usec,
  33. bool reload);
  34. extern void gtm_stop_timer16(struct gtm_timer *tmr);
  35. extern void gtm_ack_timer16(struct gtm_timer *tmr, u16 events);
  36. #endif /* __ASM_FSL_GTM_H */