blob: 5d90ca9794c6cd61f70b551dd59402a83c3f98bc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include <stdint.h>
#include <hal_interrupt.h>
#include <hal_intc.h>
#include "intc.h"
static irqreturn_t intc_dispatcher(int dev, void *arg)
{
interrupt_entry();
return IRQ_HANDLED;
}
hal_intc_status_t hal_intc_init(uint32_t irq_no)
{
hal_intc_status_t ret = HAL_INTC_STATUS_OK;
/* initialize interrupt manager */
interrupt_init();
/* register intc main dispatcher handler */
if (request_irq(irq_no, intc_dispatcher, 0, NULL, NULL) < 0) {
ret = HAL_INTC_STATUS_FAIL;
goto end;
}
enable_irq(irq_no);
end:
return ret;
}
|