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)7static 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)14hal_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