blob: ee73f79aef1025759a27c9a27ed1f0d89120fdcf [file] [log] [blame]
Robin Getz96f10502009-09-24 14:11:24 +00001/*
2 * Copyright 2007-2009 Analog Devices Inc.
3 *
4 * Licensed under the GPL-2 or later.
5 */
6
Bryan Wu1394f032007-05-06 14:50:22 -07007#ifndef _IRQ_HANDLER_H
8#define _IRQ_HANDLER_H
9
Mike Frysingerf0b5d122007-08-05 17:03:59 +080010#include <linux/types.h>
11#include <linux/linkage.h>
12
Mike Frysinger6327a572011-04-15 03:06:59 -040013/* init functions only */
14extern int __init init_arch_irq(void);
15extern void init_exception_vectors(void);
16extern void __init program_IAR(void);
Mike Frysingerf58c3272011-04-15 03:08:20 -040017#ifdef init_mach_irq
18extern void __init init_mach_irq(void);
19#else
20# define init_mach_irq()
21#endif
Mike Frysinger6327a572011-04-15 03:06:59 -040022
Bryan Wu1394f032007-05-06 14:50:22 -070023/* BASE LEVEL interrupt handler routines */
Bryan Wu1394f032007-05-06 14:50:22 -070024asmlinkage void evt_exception(void);
25asmlinkage void trap(void);
26asmlinkage void evt_ivhw(void);
27asmlinkage void evt_timer(void);
Mike Frysingerf0b5d122007-08-05 17:03:59 +080028asmlinkage void evt_nmi(void);
Bryan Wu1394f032007-05-06 14:50:22 -070029asmlinkage void evt_evt7(void);
30asmlinkage void evt_evt8(void);
31asmlinkage void evt_evt9(void);
32asmlinkage void evt_evt10(void);
33asmlinkage void evt_evt11(void);
34asmlinkage void evt_evt12(void);
35asmlinkage void evt_evt13(void);
Philippe Gerum9703a732009-06-22 18:23:48 +020036asmlinkage void evt_evt14(void);
Bryan Wu1394f032007-05-06 14:50:22 -070037asmlinkage void evt_soft_int1(void);
38asmlinkage void evt_system_call(void);
39asmlinkage void init_exception_buff(void);
Mike Frysinger1ffe6642007-08-05 17:14:04 +080040asmlinkage void trap_c(struct pt_regs *fp);
41asmlinkage void ex_replaceable(void);
Robin Getz337d3902007-10-09 17:31:46 +080042asmlinkage void early_trap(void);
Mike Frysinger1ffe6642007-08-05 17:14:04 +080043
44extern void *ex_table[];
45extern void return_from_exception(void);
46
47extern int bfin_request_exception(unsigned int exception, void (*handler)(void));
48extern int bfin_free_exception(unsigned int exception, void (*handler)(void));
Bryan Wu1394f032007-05-06 14:50:22 -070049
Mike Frysinger6327a572011-04-15 03:06:59 -040050extern asmlinkage void lower_to_irq14(void);
51extern asmlinkage void bfin_return_from_exception(void);
52extern asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs);
53extern int bfin_internal_set_wake(unsigned int irq, unsigned int state);
54
Mike Frysingerf58c3272011-04-15 03:08:20 -040055struct irq_data;
56extern void bfin_handle_irq(unsigned irq);
57extern void bfin_ack_noop(struct irq_data *);
58extern void bfin_internal_mask_irq(unsigned int irq);
59extern void bfin_internal_unmask_irq(unsigned int irq);
60
61struct irq_desc;
62extern void bfin_demux_mac_status_irq(unsigned int, struct irq_desc *);
Mike Frysinger8c054102011-04-15 13:04:59 -040063extern void bfin_demux_gpio_irq(unsigned int, struct irq_desc *);
Mike Frysingerf58c3272011-04-15 03:08:20 -040064
Bryan Wu1394f032007-05-06 14:50:22 -070065#endif