blob: d2d4131435a680b61fcb6f84f6b092affe72f5cd [file] [log] [blame]
Rabin Vincent39ae7022010-07-26 11:12:15 +01001/*
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
Mattias Wallina5de3dc2010-12-02 13:46:00 +010011/* Number of AB8500 irqs is taken from header file */
Linus Walleijee66e652011-12-02 14:16:33 +010012#include <linux/mfd/abx500/ab8500.h>
Rabin Vincent39ae7022010-07-26 11:12:15 +010013
14#define MOP500_AB8500_IRQ_BASE IRQ_BOARD_START
15#define MOP500_AB8500_IRQ_END (MOP500_AB8500_IRQ_BASE \
16 + AB8500_NR_IRQS)
Rabin Vincentb8410a12010-08-09 19:18:17 +053017
Sundar Iyer556fb032010-12-03 20:35:38 +053018/* TC35892 */
Rabin Vincentb8410a12010-08-09 19:18:17 +053019#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)
Sundar Iyer556fb032010-12-03 20:35:38 +053029/* 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)
Rabin Vincentb8410a12010-08-09 19:18:17 +053034
Sundar Iyer556fb032010-12-03 20:35:38 +053035#define MOP500_STMPE1601_IRQBASE MOP500_EGPIO_IRQ_END
36#define MOP500_STMPE1601_IRQ(x) (MOP500_STMPE1601_IRQBASE + (x))
37
Bibek Basu3ef374a2011-02-15 12:56:16 +053038#define MOP500_STMPE1601_IRQ_END \
39 MOP500_STMPE1601_IRQ(STMPE_NR_INTERNAL_IRQS)
Sundar Iyer556fb032010-12-03 20:35:38 +053040
Bibek Basu3ef374a2011-02-15 12:56:16 +053041/* AB8500 virtual gpio IRQ */
42#define AB8500_VIR_GPIO_NR_IRQS 16
43
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)
48
49#define MOP500_NR_IRQS MOP500_AB8500_VIR_GPIO_IRQ_END
50
51#define MOP500_IRQ_END MOP500_NR_IRQS
Rabin Vincent39ae7022010-07-26 11:12:15 +010052
Rabin Vincent06be2ef2011-03-29 21:59:51 +020053/*
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.
57 */
Rabin Vincent39ae7022010-07-26 11:12:15 +010058#if MOP500_IRQ_END > IRQ_BOARD_END
59#undef IRQ_BOARD_END
60#define IRQ_BOARD_END MOP500_IRQ_END
61#endif
62
63#endif