1 /*
2  * arch/arm/mach-omap1/include/ams-delta-fiq.h
3  *
4  * Taken from the original Amstrad modifications to fiq.h
5  *
6  * Copyright (c) 2004 Amstrad Plc
7  * Copyright (c) 2006 Matt Callow
8  * Copyright (c) 2010 Janusz Krzysztofik
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License version 2 as
12  * published by the Free Software Foundation.
13  */
14 #ifndef __AMS_DELTA_FIQ_H
15 #define __AMS_DELTA_FIQ_H
16 
17 #include <plat/irqs.h>
18 
19 /*
20  * Interrupt number used for passing control from FIQ to IRQ.
21  * IRQ12, described as reserved, has been selected.
22  */
23 #define INT_DEFERRED_FIQ	INT_1510_RES12
24 /*
25  * Base address of an interrupt handler that the INT_DEFERRED_FIQ belongs to.
26  */
27 #if (INT_DEFERRED_FIQ < IH2_BASE)
28 #define DEFERRED_FIQ_IH_BASE	OMAP_IH1_BASE
29 #else
30 #define DEFERRED_FIQ_IH_BASE	OMAP_IH2_BASE
31 #endif
32 
33 /*
34  * These are the offsets from the beginning of the fiq_buffer. They are put here
35  * since the buffer and header need to be accessed by drivers servicing devices
36  * which generate GPIO interrupts - e.g. keyboard, modem, hook switch.
37  */
38 #define FIQ_MASK		 0
39 #define FIQ_STATE		 1
40 #define FIQ_KEYS_CNT		 2
41 #define FIQ_TAIL_OFFSET		 3
42 #define FIQ_HEAD_OFFSET		 4
43 #define FIQ_BUF_LEN		 5
44 #define FIQ_KEY			 6
45 #define FIQ_MISSED_KEYS		 7
46 #define FIQ_BUFFER_START	 8
47 #define FIQ_GPIO_INT_MASK	 9
48 #define FIQ_KEYS_HICNT		10
49 #define FIQ_IRQ_PEND		11
50 #define FIQ_SIR_CODE_L1		12
51 #define IRQ_SIR_CODE_L2		13
52 
53 #define FIQ_CNT_INT_00		14
54 #define FIQ_CNT_INT_KEY		15
55 #define FIQ_CNT_INT_MDM		16
56 #define FIQ_CNT_INT_03		17
57 #define FIQ_CNT_INT_HSW		18
58 #define FIQ_CNT_INT_05		19
59 #define FIQ_CNT_INT_06		20
60 #define FIQ_CNT_INT_07		21
61 #define FIQ_CNT_INT_08		22
62 #define FIQ_CNT_INT_09		23
63 #define FIQ_CNT_INT_10		24
64 #define FIQ_CNT_INT_11		25
65 #define FIQ_CNT_INT_12		26
66 #define FIQ_CNT_INT_13		27
67 #define FIQ_CNT_INT_14		28
68 #define FIQ_CNT_INT_15		29
69 
70 #define FIQ_CIRC_BUFF		30      /*Start of circular buffer */
71 
72 #ifndef __ASSEMBLER__
73 extern unsigned int fiq_buffer[];
74 extern unsigned char qwerty_fiqin_start, qwerty_fiqin_end;
75 
76 extern void __init ams_delta_init_fiq(void);
77 #endif
78 
79 #endif
80