Hi,
thanks for the hint.
epit.c is just a reference code and there are lot of undefined symbols ("#include <asm/mach/time.h>": Unresolved inklusion, "#include "common.h"": no such file ore directory, "#include "hardware.h": Unresolved inklusion, "CLOCK_EVT_MODE_UNUSED" could not be resolved, "CLOCK_EVT_MODE_PERIODIC" could not be resolved ...". So its not easy to test the code. But I think that the interrupt part is mostly the same:
static void epit_irq_acknowledge(void)
{
__raw_writel(EPITSR_OCIF, timer_base + EPITSR);
}
static irqreturn_t epit_timer_interrupt(int irq, void *dev_id)
{
struct clock_event_device *evt = &clockevent_epit;
epit_irq_acknowledge();
evt->event_handler(evt);
return IRQ_HANDLED;
}
static struct irqaction epit_timer_irq = {
.name = "i.MX EPIT Timer Tick",
.flags = IRQF_TIMER | IRQF_IRQPOLL,
.handler = timer_interrupt,
};
...
setup_irq(irq, &epit_timer_irq);
but I dont understand from where this code gets the irq number in "setup_irq(irq, &epit_timer_irq);".
In arch/arm/boot/dts/imx6qdl.dtsi I can see, that the number is 56. But if I use 56 as the interrupt number in my code instead of 88, the interrupt is never executed. Any idea?