blob: 987ff580466b8961225dbc934155ef44309b441b [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
Steven J. Hill0b271f52012-08-31 16:05:37 -05002 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
Linus Torvalds1da177e2005-04-16 15:20:36 -07005 *
Steven J. Hill0b271f52012-08-31 16:05:37 -05006 * Copyright (C) 2000,2012 MIPS Technologies, Inc. All rights reserved.
Ralf Baechle70342282013-01-22 12:59:30 +01007 * Carsten Langgaard <carstenl@mips.com>
8 * Steven J. Hill <sjhill@mips.com>
Linus Torvalds1da177e2005-04-16 15:20:36 -07009 */
10#ifndef _MIPS_MALTAINT_H
11#define _MIPS_MALTAINT_H
12
Andrew Bresticker4060bbe2014-10-20 12:03:53 -070013#include <linux/irqchip/mips-gic.h>
Andrew Brestickere9de6882014-09-18 14:47:27 -070014
Ralf Baechlee01402b2005-07-14 15:57:16 +000015/*
16 * Interrupts 0..15 are used for Malta ISA compatible interrupts
17 */
18#define MALTA_INT_BASE 0
Linus Torvalds1da177e2005-04-16 15:20:36 -070019
Ralf Baechlee01402b2005-07-14 15:57:16 +000020/* CPU interrupt offsets */
21#define MIPSCPU_INT_SW0 0
22#define MIPSCPU_INT_SW1 1
23#define MIPSCPU_INT_MB0 2
24#define MIPSCPU_INT_I8259A MIPSCPU_INT_MB0
Andrew Bresticker18743d22014-09-18 14:47:24 -070025#define MIPSCPU_INT_GIC MIPSCPU_INT_MB0 /* GIC chained interrupt */
Ralf Baechlee01402b2005-07-14 15:57:16 +000026#define MIPSCPU_INT_MB1 3
27#define MIPSCPU_INT_SMI MIPSCPU_INT_MB1
28#define MIPSCPU_INT_MB2 4
29#define MIPSCPU_INT_MB3 5
30#define MIPSCPU_INT_COREHI MIPSCPU_INT_MB3
31#define MIPSCPU_INT_MB4 6
32#define MIPSCPU_INT_CORELO MIPSCPU_INT_MB4
Ralf Baechlee01402b2005-07-14 15:57:16 +000033
34/*
Andrew Brestickeraa827b72014-09-18 14:47:17 -070035 * Interrupts 96..127 are used for Soc-it Classic interrupts
Ralf Baechlee01402b2005-07-14 15:57:16 +000036 */
Andrew Brestickeraa827b72014-09-18 14:47:17 -070037#define MSC01C_INT_BASE 96
Ralf Baechlee01402b2005-07-14 15:57:16 +000038
39/* SOC-it Classic interrupt offsets */
40#define MSC01C_INT_TMR 0
41#define MSC01C_INT_PCI 1
42
43/*
Andrew Brestickeraa827b72014-09-18 14:47:17 -070044 * Interrupts 96..127 are used for Soc-it EIC interrupts
Ralf Baechlee01402b2005-07-14 15:57:16 +000045 */
Andrew Brestickeraa827b72014-09-18 14:47:17 -070046#define MSC01E_INT_BASE 96
Ralf Baechlee01402b2005-07-14 15:57:16 +000047
48/* SOC-it EIC interrupt offsets */
49#define MSC01E_INT_SW0 1
50#define MSC01E_INT_SW1 2
51#define MSC01E_INT_MB0 3
52#define MSC01E_INT_I8259A MSC01E_INT_MB0
53#define MSC01E_INT_MB1 4
54#define MSC01E_INT_SMI MSC01E_INT_MB1
55#define MSC01E_INT_MB2 5
56#define MSC01E_INT_MB3 6
57#define MSC01E_INT_COREHI MSC01E_INT_MB3
58#define MSC01E_INT_MB4 7
59#define MSC01E_INT_CORELO MSC01E_INT_MB4
60#define MSC01E_INT_TMR 8
61#define MSC01E_INT_PCI 9
62#define MSC01E_INT_PERFCTR 10
63#define MSC01E_INT_CPUCTR 11
64
Andrew Bresticker18743d22014-09-18 14:47:24 -070065/* GIC external interrupts */
Andrew Brestickere9de6882014-09-18 14:47:27 -070066#define GIC_INT_I8259A GIC_SHARED_TO_HWIRQ(3)
Ralf Baechle39b8d522008-04-28 17:14:26 +010067
Linus Torvalds1da177e2005-04-16 15:20:36 -070068#endif /* !(_MIPS_MALTAINT_H) */