• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) ST-Ericsson SA 2010
3  *
4  * Author: Rabin Vincent <rabin.vincent@stericsson.com>
5  * License terms: GNU General Public License (GPL) version 2
6  */
7 
8 #ifndef __MACH_IRQS_BOARD_MOP500_H
9 #define __MACH_IRQS_BOARD_MOP500_H
10 
11 /* Number of AB8500 irqs is taken from header file */
12 #include <linux/mfd/abx500/ab8500.h>
13 
14 #define MOP500_AB8500_IRQ_BASE		IRQ_BOARD_START
15 #define MOP500_AB8500_IRQ_END		(MOP500_AB8500_IRQ_BASE \
16 					 + AB8500_MAX_NR_IRQS)
17 
18 /* TC35892 */
19 #define TC35892_NR_INTERNAL_IRQS	8
20 #define TC35892_INT_GPIO(x)		(TC35892_NR_INTERNAL_IRQS + (x))
21 #define TC35892_NR_GPIOS		24
22 #define TC35892_NR_IRQS			TC35892_INT_GPIO(TC35892_NR_GPIOS)
23 
24 #define MOP500_EGPIO_NR_IRQS		TC35892_NR_IRQS
25 
26 #define MOP500_EGPIO_IRQ_BASE		MOP500_AB8500_IRQ_END
27 #define MOP500_EGPIO_IRQ_END		(MOP500_EGPIO_IRQ_BASE \
28 					 + MOP500_EGPIO_NR_IRQS)
29 /* STMPE1601 irqs */
30 #define STMPE_NR_INTERNAL_IRQS          9
31 #define STMPE_INT_GPIO(x)               (STMPE_NR_INTERNAL_IRQS + (x))
32 #define STMPE_NR_GPIOS                  24
33 #define STMPE_NR_IRQS                   STMPE_INT_GPIO(STMPE_NR_GPIOS)
34 
35 #define MOP500_STMPE1601_IRQBASE        MOP500_EGPIO_IRQ_END
36 #define MOP500_STMPE1601_IRQ(x)         (MOP500_STMPE1601_IRQBASE + (x))
37 
38 #define MOP500_STMPE1601_IRQ_END	\
39 	MOP500_STMPE1601_IRQ(STMPE_NR_INTERNAL_IRQS)
40 
41 #define MOP500_NR_IRQS		MOP500_STMPE1601_IRQ_END
42 
43 #define MOP500_IRQ_END		MOP500_NR_IRQS
44 
45 /*
46  * We may have several boards, but only one will run at a
47  * time, so the one with most IRQs will bump this ahead,
48  * but the IRQ_BOARD_START remains the same for either board.
49  */
50 #if MOP500_IRQ_END > IRQ_BOARD_END
51 #undef IRQ_BOARD_END
52 #define IRQ_BOARD_END	MOP500_IRQ_END
53 #endif
54 
55 #endif
56