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