]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/sparc/kernel/irq.h
sparc32: generic clockevent support
[karo-tx-linux.git] / arch / sparc / kernel / irq.h
index 3f6ca4d55dc41e787bbaeac542e5b7c57eabeb3a..8b946b1bc3b9fb15c5de781ebf82d1326d6a48c6 100644 (file)
@@ -41,15 +41,32 @@ struct sun4m_irq_global {
 extern struct sun4m_irq_percpu __iomem *sun4m_irq_percpu[SUN4M_NCPUS];
 extern struct sun4m_irq_global __iomem *sun4m_irq_global;
 
+/* The following definitions describe the individual platform features: */
+#define FEAT_L10_CLOCKSOURCE (1 << 0) /* L10 timer is used as a clocksource */
+#define FEAT_L10_CLOCKEVENT  (1 << 1) /* L10 timer is used as a clockevent */
+#define FEAT_L14_ONESHOT     (1 << 2) /* L14 timer clockevent can oneshot */
+
 /*
  * Platform specific configuration
  * The individual platforms assign their platform
  * specifics in their init functions.
  */
 struct sparc_config {
-       void (*init_timers)(irq_handler_t);
+       void (*init_timers)(void);
        unsigned int (*build_device_irq)(struct platform_device *op,
                                         unsigned int real_irq);
+
+       /* generic clockevent features - see FEAT_* above */
+       int features;
+
+       /* clock rate used for clock event timer */
+       int clock_rate;
+
+       /* one period for clock source timer */
+       unsigned int cs_period;
+
+       /* function to obtain offsett for cs period */
+       unsigned int (*get_cycles_offset)(void);
 };
 extern struct sparc_config sparc_config;