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/*
18 * Interrupt number used for passing control from FIQ to IRQ.
19 * IRQ12, described as reserved, has been selected.
20 */
21#define INT_DEFERRED_FIQ	INT_1510_RES12
22/*
23 * Base address of an interrupt handler that the INT_DEFERRED_FIQ belongs to.
24 */
25#if (INT_DEFERRED_FIQ < IH2_BASE)
26#define DEFERRED_FIQ_IH_BASE	OMAP_IH1_BASE
27#else
28#define DEFERRED_FIQ_IH_BASE	OMAP_IH2_BASE
29#endif
30
31/*
32 * These are the offsets from the beginning of the fiq_buffer. They are put here
33 * since the buffer and header need to be accessed by drivers servicing devices
34 * which generate GPIO interrupts - e.g. keyboard, modem, hook switch.
35 */
36#define FIQ_MASK		 0
37#define FIQ_STATE		 1
38#define FIQ_KEYS_CNT		 2
39#define FIQ_TAIL_OFFSET		 3
40#define FIQ_HEAD_OFFSET		 4
41#define FIQ_BUF_LEN		 5
42#define FIQ_KEY			 6
43#define FIQ_MISSED_KEYS		 7
44#define FIQ_BUFFER_START	 8
45#define FIQ_GPIO_INT_MASK	 9
46#define FIQ_KEYS_HICNT		10
47#define FIQ_IRQ_PEND		11
48#define FIQ_SIR_CODE_L1		12
49#define IRQ_SIR_CODE_L2		13
50
51#define FIQ_CNT_INT_00		14
52#define FIQ_CNT_INT_KEY		15
53#define FIQ_CNT_INT_MDM		16
54#define FIQ_CNT_INT_03		17
55#define FIQ_CNT_INT_HSW		18
56#define FIQ_CNT_INT_05		19
57#define FIQ_CNT_INT_06		20
58#define FIQ_CNT_INT_07		21
59#define FIQ_CNT_INT_08		22
60#define FIQ_CNT_INT_09		23
61#define FIQ_CNT_INT_10		24
62#define FIQ_CNT_INT_11		25
63#define FIQ_CNT_INT_12		26
64#define FIQ_CNT_INT_13		27
65#define FIQ_CNT_INT_14		28
66#define FIQ_CNT_INT_15		29
67
68#define FIQ_CIRC_BUFF		30      /*Start of circular buffer */
69
70#ifndef __ASSEMBLER__
71extern unsigned int fiq_buffer[];
72extern unsigned char qwerty_fiqin_start, qwerty_fiqin_end;
73
74extern void __init ams_delta_init_fiq(void);
75#endif
76
77#endif
78