1/*
2 * Copyright 2007-2009 Analog Devices Inc.
3 *
4 * Licensed under the GPL-2 or later.
5 */
6
7#ifndef _IRQ_HANDLER_H
8#define _IRQ_HANDLER_H
9
10#include <linux/types.h>
11#include <linux/linkage.h>
12#include <mach/irq.h>
13
14/* init functions only */
15extern int init_arch_irq(void);
16extern void init_exception_vectors(void);
17extern void program_IAR(void);
18#ifdef init_mach_irq
19extern void init_mach_irq(void);
20#else
21# define init_mach_irq()
22#endif
23
24/* BASE LEVEL interrupt handler routines */
25asmlinkage void evt_exception(void);
26asmlinkage void trap(void);
27asmlinkage void evt_ivhw(void);
28asmlinkage void evt_timer(void);
29asmlinkage void evt_nmi(void);
30asmlinkage void evt_evt7(void);
31asmlinkage void evt_evt8(void);
32asmlinkage void evt_evt9(void);
33asmlinkage void evt_evt10(void);
34asmlinkage void evt_evt11(void);
35asmlinkage void evt_evt12(void);
36asmlinkage void evt_evt13(void);
37asmlinkage void evt_evt14(void);
38asmlinkage void evt_soft_int1(void);
39asmlinkage void evt_system_call(void);
40asmlinkage void init_exception_buff(void);
41asmlinkage void trap_c(struct pt_regs *fp);
42asmlinkage void ex_replaceable(void);
43asmlinkage void early_trap(void);
44
45extern void *ex_table[];
46extern void return_from_exception(void);
47
48extern int bfin_request_exception(unsigned int exception, void (*handler)(void));
49extern int bfin_free_exception(unsigned int exception, void (*handler)(void));
50
51extern asmlinkage void lower_to_irq14(void);
52extern asmlinkage void bfin_return_from_exception(void);
53extern asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs);
54extern int bfin_internal_set_wake(unsigned int irq, unsigned int state);
55
56struct irq_data;
57extern void bfin_handle_irq(unsigned irq);
58extern void bfin_ack_noop(struct irq_data *);
59extern void bfin_internal_mask_irq(unsigned int irq);
60extern void bfin_internal_unmask_irq(unsigned int irq);
61
62struct irq_desc;
63extern void bfin_demux_mac_status_irq(unsigned int, struct irq_desc *);
64extern void bfin_demux_gpio_irq(unsigned int, struct irq_desc *);
65
66#endif
67