mach-ux500: update SoC and board IRQ handling
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / arch / arm / mach-ux500 / include / mach / irqs-board-mop500.h
blob47969909836c9bb1441b7143dc5c4e156915267f
1 /*
2 * Copyright (C) ST-Ericsson SA 2010
4 * Author: Rabin Vincent <rabin.vincent@stericsson.com>
5 * License terms: GNU General Public License (GPL) version 2
6 */
8 #ifndef __MACH_IRQS_BOARD_MOP500_H
9 #define __MACH_IRQS_BOARD_MOP500_H
11 /* Number of AB8500 irqs is taken from header file */
12 #include <linux/mfd/ab8500.h>
14 #define MOP500_AB8500_IRQ_BASE IRQ_BOARD_START
15 #define MOP500_AB8500_IRQ_END (MOP500_AB8500_IRQ_BASE \
16 + AB8500_NR_IRQS)
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)
24 #define MOP500_EGPIO_NR_IRQS TC35892_NR_IRQS
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)
35 #define MOP500_STMPE1601_IRQBASE MOP500_EGPIO_IRQ_END
36 #define MOP500_STMPE1601_IRQ(x) (MOP500_STMPE1601_IRQBASE + (x))
38 #define MOP500_STMPE1601_IRQ_END \
39 MOP500_STMPE1601_IRQ(STMPE_NR_INTERNAL_IRQS)
41 /* AB8500 virtual gpio IRQ */
42 #define AB8500_VIR_GPIO_NR_IRQS 16
44 #define MOP500_AB8500_VIR_GPIO_IRQ_BASE \
45 MOP500_STMPE1601_IRQ_END
46 #define MOP500_AB8500_VIR_GPIO_IRQ_END \
47 (MOP500_AB8500_VIR_GPIO_IRQ_BASE + AB8500_VIR_GPIO_NR_IRQS)
49 #define MOP500_NR_IRQS MOP500_AB8500_VIR_GPIO_IRQ_END
51 #define MOP500_IRQ_END MOP500_NR_IRQS
54 * We may have several boards, but only one will run at a
55 * time, so the one with most IRQs will bump this ahead,
56 * but the IRQ_BOARD_START remains the same for either board.
58 #if MOP500_IRQ_END > IRQ_BOARD_END
59 #undef IRQ_BOARD_END
60 #define IRQ_BOARD_END MOP500_IRQ_END
61 #endif
63 #endif