162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public
362306a36Sopenharmony_ci * License.  See the file "COPYING" in the main directory of this archive
462306a36Sopenharmony_ci * for more details.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Copyright (C) 2004-2008 Cavium Networks
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci#ifndef __OCTEON_IRQ_H__
962306a36Sopenharmony_ci#define __OCTEON_IRQ_H__
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#define NR_IRQS OCTEON_IRQ_LAST
1262306a36Sopenharmony_ci#define MIPS_CPU_IRQ_BASE OCTEON_IRQ_SW0
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cienum octeon_irq {
1562306a36Sopenharmony_ci/* 1 - 8 represent the 8 MIPS standard interrupt sources */
1662306a36Sopenharmony_ci	OCTEON_IRQ_SW0 = 1,
1762306a36Sopenharmony_ci	OCTEON_IRQ_SW1,
1862306a36Sopenharmony_ci/* CIU0, CUI2, CIU4 are 3, 4, 5 */
1962306a36Sopenharmony_ci	OCTEON_IRQ_5 = 6,
2062306a36Sopenharmony_ci	OCTEON_IRQ_PERF,
2162306a36Sopenharmony_ci	OCTEON_IRQ_TIMER,
2262306a36Sopenharmony_ci/* sources in CIU_INTX_EN0 */
2362306a36Sopenharmony_ci	OCTEON_IRQ_WORKQ0,
2462306a36Sopenharmony_ci	OCTEON_IRQ_WDOG0 = OCTEON_IRQ_WORKQ0 + 64,
2562306a36Sopenharmony_ci	OCTEON_IRQ_MBOX0 = OCTEON_IRQ_WDOG0 + 32,
2662306a36Sopenharmony_ci	OCTEON_IRQ_MBOX1,
2762306a36Sopenharmony_ci	OCTEON_IRQ_MBOX2,
2862306a36Sopenharmony_ci	OCTEON_IRQ_MBOX3,
2962306a36Sopenharmony_ci	OCTEON_IRQ_PCI_INT0,
3062306a36Sopenharmony_ci	OCTEON_IRQ_PCI_INT1,
3162306a36Sopenharmony_ci	OCTEON_IRQ_PCI_INT2,
3262306a36Sopenharmony_ci	OCTEON_IRQ_PCI_INT3,
3362306a36Sopenharmony_ci	OCTEON_IRQ_PCI_MSI0,
3462306a36Sopenharmony_ci	OCTEON_IRQ_PCI_MSI1,
3562306a36Sopenharmony_ci	OCTEON_IRQ_PCI_MSI2,
3662306a36Sopenharmony_ci	OCTEON_IRQ_PCI_MSI3,
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	OCTEON_IRQ_TWSI,
3962306a36Sopenharmony_ci	OCTEON_IRQ_TWSI2,
4062306a36Sopenharmony_ci	OCTEON_IRQ_RML,
4162306a36Sopenharmony_ci	OCTEON_IRQ_TIMER0,
4262306a36Sopenharmony_ci	OCTEON_IRQ_TIMER1,
4362306a36Sopenharmony_ci	OCTEON_IRQ_TIMER2,
4462306a36Sopenharmony_ci	OCTEON_IRQ_TIMER3,
4562306a36Sopenharmony_ci#ifndef CONFIG_PCI_MSI
4662306a36Sopenharmony_ci	OCTEON_IRQ_LAST = 127
4762306a36Sopenharmony_ci#endif
4862306a36Sopenharmony_ci};
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci#ifdef CONFIG_PCI_MSI
5162306a36Sopenharmony_ci/* 256 - 511 represent the MSI interrupts 0-255 */
5262306a36Sopenharmony_ci#define OCTEON_IRQ_MSI_BIT0	(256)
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci#define OCTEON_IRQ_MSI_LAST	 (OCTEON_IRQ_MSI_BIT0 + 255)
5562306a36Sopenharmony_ci#define OCTEON_IRQ_LAST		 (OCTEON_IRQ_MSI_LAST + 1)
5662306a36Sopenharmony_ci#endif
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci#endif
59