root/drivers/clocksource/timer-of.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. to_timer_of
  2. timer_of_base
  3. timer_of_irq
  4. timer_of_rate
  5. timer_of_period

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __TIMER_OF_H__
   3 #define __TIMER_OF_H__
   4 
   5 #include <linux/clockchips.h>
   6 
   7 #define TIMER_OF_BASE   0x1
   8 #define TIMER_OF_CLOCK  0x2
   9 #define TIMER_OF_IRQ    0x4
  10 
  11 struct of_timer_irq {
  12         int irq;
  13         int index;
  14         int percpu;
  15         const char *name;
  16         unsigned long flags;
  17         irq_handler_t handler;
  18 };
  19 
  20 struct of_timer_base {
  21         void __iomem *base;
  22         const char *name;
  23         int index;
  24 };
  25 
  26 struct of_timer_clk {
  27         struct clk *clk;
  28         const char *name;
  29         int index;
  30         unsigned long rate;
  31         unsigned long period;
  32 };
  33 
  34 struct timer_of {
  35         unsigned int flags;
  36         struct device_node *np;
  37         struct clock_event_device clkevt;
  38         struct of_timer_base of_base;
  39         struct of_timer_irq  of_irq;
  40         struct of_timer_clk  of_clk;
  41         void *private_data;
  42 };
  43 
  44 static inline struct timer_of *to_timer_of(struct clock_event_device *clkevt)
  45 {
  46         return container_of(clkevt, struct timer_of, clkevt);
  47 }
  48 
  49 static inline void __iomem *timer_of_base(struct timer_of *to)
  50 {
  51         return to->of_base.base;
  52 }
  53 
  54 static inline int timer_of_irq(struct timer_of *to)
  55 {
  56         return to->of_irq.irq;
  57 }
  58 
  59 static inline unsigned long timer_of_rate(struct timer_of *to)
  60 {
  61         return to->of_clk.rate;
  62 }
  63 
  64 static inline unsigned long timer_of_period(struct timer_of *to)
  65 {
  66         return to->of_clk.period;
  67 }
  68 
  69 extern int __init timer_of_init(struct device_node *np,
  70                                 struct timer_of *to);
  71 
  72 extern void __init timer_of_cleanup(struct timer_of *to);
  73 
  74 #endif

/* [<][>][^][v][top][bottom][index][help] */