/*  *********************************************************************
    *  SB1250 Board Support Package
    *
    *  Interrupt Mapper definitions		File: sb1250_int.h
    *
    *  This module contains constants for manipulating the SB1250's
    *  interrupt mapper and definitions for the interrupt sources.
    *
    *  SB1250 specification level:  User's manual 1/02/02
    *
    *********************************************************************
    *
    *  Copyright 2000, 2001, 2002, 2003
    *  Broadcom Corporation. All rights reserved.
    *
    *  This program is free software; you can redistribute it and/or
    *  modify it under the terms of the GNU General Public License as
    *  published by the Free Software Foundation; either version 2 of
    *  the License, or (at your option) any later version.
    *
    *  This program is distributed in the hope that it will be useful,
    *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    *  GNU General Public License for more details.
    *
    *  You should have received a copy of the GNU General Public License
    *  along with this program; if not, write to the Free Software
    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    *  MA 02111-1307 USA
    ********************************************************************* */


#ifndef _SB1250_INT_H
#define _SB1250_INT_H

#include <asm/sibyte/sb1250_defs.h>

/*  *********************************************************************
    *  Interrupt Mapper Constants
    ********************************************************************* */

/*
 * Interrupt sources (Table 4-8, UM 0.2)
 *
 * First, the interrupt numbers.
 */

#define K_INT_SOURCES		    64

#define K_INT_WATCHDOG_TIMER_0	    0
#define K_INT_WATCHDOG_TIMER_1	    1
#define K_INT_TIMER_0		    2
#define K_INT_TIMER_1		    3
#define K_INT_TIMER_2		    4
#define K_INT_TIMER_3		    5
#define K_INT_SMB_0		    6
#define K_INT_SMB_1		    7
#define K_INT_UART_0		    8
#define K_INT_UART_1		    9
#define K_INT_SER_0		    10
#define K_INT_SER_1		    11
#define K_INT_PCMCIA		    12
#define K_INT_ADDR_TRAP		    13
#define K_INT_PERF_CNT		    14
#define K_INT_TRACE_FREEZE	    15
#define K_INT_BAD_ECC		    16
#define K_INT_COR_ECC		    17
#define K_INT_IO_BUS		    18
#define K_INT_MAC_0		    19
#define K_INT_MAC_1		    20
#define K_INT_MAC_2		    21
#define K_INT_DM_CH_0		    22
#define K_INT_DM_CH_1		    23
#define K_INT_DM_CH_2		    24
#define K_INT_DM_CH_3		    25
#define K_INT_MBOX_0		    26
#define K_INT_MBOX_1		    27
#define K_INT_MBOX_2		    28
#define K_INT_MBOX_3		    29
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
#define K_INT_CYCLE_CP0_INT	    30
#define K_INT_CYCLE_CP1_INT	    31
#endif /* 1250 PASS2 || 112x PASS1 */
#define K_INT_GPIO_0		    32
#define K_INT_GPIO_1		    33
#define K_INT_GPIO_2		    34
#define K_INT_GPIO_3		    35
#define K_INT_GPIO_4		    36
#define K_INT_GPIO_5		    37
#define K_INT_GPIO_6		    38
#define K_INT_GPIO_7		    39
#define K_INT_GPIO_8		    40
#define K_INT_GPIO_9		    41
#define K_INT_GPIO_10		    42
#define K_INT_GPIO_11		    43
#define K_INT_GPIO_12		    44
#define K_INT_GPIO_13		    45
#define K_INT_GPIO_14		    46
#define K_INT_GPIO_15		    47
#define K_INT_LDT_FATAL		    48
#define K_INT_LDT_NONFATAL	    49
#define K_INT_LDT_SMI		    50
#define K_INT_LDT_NMI		    51
#define K_INT_LDT_INIT		    52
#define K_INT_LDT_STARTUP	    53
#define K_INT_LDT_EXT		    54
#define K_INT_PCI_ERROR		    55
#define K_INT_PCI_INTA		    56
#define K_INT_PCI_INTB		    57
#define K_INT_PCI_INTC		    58
#define K_INT_PCI_INTD		    59
#define K_INT_SPARE_2		    60
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
#define K_INT_MAC_0_CH1		    61
#define K_INT_MAC_1_CH1		    62
#define K_INT_MAC_2_CH1		    63
#endif /* 1250 PASS2 || 112x PASS1 */

/*
 * Mask values for each interrupt
 */

#define M_INT_WATCHDOG_TIMER_0	    _SB_MAKEMASK1(K_INT_WATCHDOG_TIMER_0)
#define M_INT_WATCHDOG_TIMER_1	    _SB_MAKEMASK1(K_INT_WATCHDOG_TIMER_1)
#define M_INT_TIMER_0		    _SB_MAKEMASK1(K_INT_TIMER_0)
#define M_INT_TIMER_1		    _SB_MAKEMASK1(K_INT_TIMER_1)
#define M_INT_TIMER_2		    _SB_MAKEMASK1(K_INT_TIMER_2)
#define M_INT_TIMER_3		    _SB_MAKEMASK1(K_INT_TIMER_3)
#define M_INT_SMB_0		    _SB_MAKEMASK1(K_INT_SMB_0)
#define M_INT_SMB_1		    _SB_MAKEMASK1(K_INT_SMB_1)
#define M_INT_UART_0		    _SB_MAKEMASK1(K_INT_UART_0)
#define M_INT_UART_1		    _SB_MAKEMASK1(K_INT_UART_1)
#define M_INT_SER_0		    _SB_MAKEMASK1(K_INT_SER_0)
#define M_INT_SER_1		    _SB_MAKEMASK1(K_INT_SER_1)
#define M_INT_PCMCIA		    _SB_MAKEMASK1(K_INT_PCMCIA)
#define M_INT_ADDR_TRAP		    _SB_MAKEMASK1(K_INT_ADDR_TRAP)
#define M_INT_PERF_CNT		    _SB_MAKEMASK1(K_INT_PERF_CNT)
#define M_INT_TRACE_FREEZE	    _SB_MAKEMASK1(K_INT_TRACE_FREEZE)
#define M_INT_BAD_ECC		    _SB_MAKEMASK1(K_INT_BAD_ECC)
#define M_INT_COR_ECC		    _SB_MAKEMASK1(K_INT_COR_ECC)
#define M_INT_IO_BUS		    _SB_MAKEMASK1(K_INT_IO_BUS)
#define M_INT_MAC_0		    _SB_MAKEMASK1(K_INT_MAC_0)
#define M_INT_MAC_1		    _SB_MAKEMASK1(K_INT_MAC_1)
#define M_INT_MAC_2		    _SB_MAKEMASK1(K_INT_MAC_2)
#define M_INT_DM_CH_0		    _SB_MAKEMASK1(K_INT_DM_CH_0)
#define M_INT_DM_CH_1		    _SB_MAKEMASK1(K_INT_DM_CH_1)
#define M_INT_DM_CH_2		    _SB_MAKEMASK1(K_INT_DM_CH_2)
#define M_INT_DM_CH_3		    _SB_MAKEMASK1(K_INT_DM_CH_3)
#define M_INT_MBOX_0		    _SB_MAKEMASK1(K_INT_MBOX_0)
#define M_INT_MBOX_1		    _SB_MAKEMASK1(K_INT_MBOX_1)
#define M_INT_MBOX_2		    _SB_MAKEMASK1(K_INT_MBOX_2)
#define M_INT_MBOX_3		    _SB_MAKEMASK1(K_INT_MBOX_3)
#define M_INT_MBOX_ALL		    _SB_MAKEMASK(4, K_INT_MBOX_0)
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
#define M_INT_CYCLE_CP0_INT	    _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT)
#define M_INT_CYCLE_CP1_INT	    _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT)
#endif /* 1250 PASS2 || 112x PASS1 */
#define M_INT_GPIO_0		    _SB_MAKEMASK1(K_INT_GPIO_0)
#define M_INT_GPIO_1		    _SB_MAKEMASK1(K_INT_GPIO_1)
#define M_INT_GPIO_2		    _SB_MAKEMASK1(K_INT_GPIO_2)
#define M_INT_GPIO_3		    _SB_MAKEMASK1(K_INT_GPIO_3)
#define M_INT_GPIO_4		    _SB_MAKEMASK1(K_INT_GPIO_4)
#define M_INT_GPIO_5		    _SB_MAKEMASK1(K_INT_GPIO_5)
#define M_INT_GPIO_6		    _SB_MAKEMASK1(K_INT_GPIO_6)
#define M_INT_GPIO_7		    _SB_MAKEMASK1(K_INT_GPIO_7)
#define M_INT_GPIO_8		    _SB_MAKEMASK1(K_INT_GPIO_8)
#define M_INT_GPIO_9		    _SB_MAKEMASK1(K_INT_GPIO_9)
#define M_INT_GPIO_10		    _SB_MAKEMASK1(K_INT_GPIO_10)
#define M_INT_GPIO_11		    _SB_MAKEMASK1(K_INT_GPIO_11)
#define M_INT_GPIO_12		    _SB_MAKEMASK1(K_INT_GPIO_12)
#define M_INT_GPIO_13		    _SB_MAKEMASK1(K_INT_GPIO_13)
#define M_INT_GPIO_14		    _SB_MAKEMASK1(K_INT_GPIO_14)
#define M_INT_GPIO_15		    _SB_MAKEMASK1(K_INT_GPIO_15)
#define M_INT_LDT_FATAL		    _SB_MAKEMASK1(K_INT_LDT_FATAL)
#define M_INT_LDT_NONFATAL	    _SB_MAKEMASK1(K_INT_LDT_NONFATAL)
#define M_INT_LDT_SMI		    _SB_MAKEMASK1(K_INT_LDT_SMI)
#define M_INT_LDT_NMI		    _SB_MAKEMASK1(K_INT_LDT_NMI)
#define M_INT_LDT_INIT		    _SB_MAKEMASK1(K_INT_LDT_INIT)
#define M_INT_LDT_STARTUP	    _SB_MAKEMASK1(K_INT_LDT_STARTUP)
#define M_INT_LDT_EXT		    _SB_MAKEMASK1(K_INT_LDT_EXT)
#define M_INT_PCI_ERROR		    _SB_MAKEMASK1(K_INT_PCI_ERROR)
#define M_INT_PCI_INTA		    _SB_MAKEMASK1(K_INT_PCI_INTA)
#define M_INT_PCI_INTB		    _SB_MAKEMASK1(K_INT_PCI_INTB)
#define M_INT_PCI_INTC		    _SB_MAKEMASK1(K_INT_PCI_INTC)
#define M_INT_PCI_INTD		    _SB_MAKEMASK1(K_INT_PCI_INTD)
#define M_INT_SPARE_2		    _SB_MAKEMASK1(K_INT_SPARE_2)
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
#define M_INT_MAC_0_CH1		    _SB_MAKEMASK1(K_INT_MAC_0_CH1)
#define M_INT_MAC_1_CH1		    _SB_MAKEMASK1(K_INT_MAC_1_CH1)
#define M_INT_MAC_2_CH1		    _SB_MAKEMASK1(K_INT_MAC_2_CH1)
#endif /* 1250 PASS2 || 112x PASS1 */

/*
 * Interrupt mappings
 */

#define K_INT_MAP_I0	0		/* interrupt pins on processor */
#define K_INT_MAP_I1	1
#define K_INT_MAP_I2	2
#define K_INT_MAP_I3	3
#define K_INT_MAP_I4	4
#define K_INT_MAP_I5	5
#define K_INT_MAP_NMI	6		/* nonmaskable */
#define K_INT_MAP_DINT	7		/* debug interrupt */

/*
 * LDT Interrupt Set Register (table 4-5)
 */

#define S_INT_LDT_INTMSG	      0
#define M_INT_LDT_INTMSG	      _SB_MAKEMASK(3, S_INT_LDT_INTMSG)
#define V_INT_LDT_INTMSG(x)	      _SB_MAKEVALUE(x, S_INT_LDT_INTMSG)
#define G_INT_LDT_INTMSG(x)	      _SB_GETVALUE(x, S_INT_LDT_INTMSG, M_INT_LDT_INTMSG)

#define K_INT_LDT_INTMSG_FIXED	      0
#define K_INT_LDT_INTMSG_ARBITRATED   1
#define K_INT_LDT_INTMSG_SMI	      2
#define K_INT_LDT_INTMSG_NMI	      3
#define K_INT_LDT_INTMSG_INIT	      4
#define K_INT_LDT_INTMSG_STARTUP      5
#define K_INT_LDT_INTMSG_EXTINT	      6
#define K_INT_LDT_INTMSG_RESERVED     7

#define M_INT_LDT_EDGETRIGGER	      0
#define M_INT_LDT_LEVELTRIGGER	      _SB_MAKEMASK1(3)

#define M_INT_LDT_PHYSICALDEST	      0
#define M_INT_LDT_LOGICALDEST	      _SB_MAKEMASK1(4)

#define S_INT_LDT_INTDEST	      5
#define M_INT_LDT_INTDEST	      _SB_MAKEMASK(10, S_INT_LDT_INTDEST)
#define V_INT_LDT_INTDEST(x)	      _SB_MAKEVALUE(x, S_INT_LDT_INTDEST)
#define G_INT_LDT_INTDEST(x)	      _SB_GETVALUE(x, S_INT_LDT_INTDEST, M_INT_LDT_INTDEST)

#define S_INT_LDT_VECTOR	      13
#define M_INT_LDT_VECTOR	      _SB_MAKEMASK(8, S_INT_LDT_VECTOR)
#define V_INT_LDT_VECTOR(x)	      _SB_MAKEVALUE(x, S_INT_LDT_VECTOR)
#define G_INT_LDT_VECTOR(x)	      _SB_GETVALUE(x, S_INT_LDT_VECTOR, M_INT_LDT_VECTOR)

/*
 * Vector format (Table 4-6)
 */

#define M_LDTVECT_RAISEINT		0x00
#define M_LDTVECT_RAISEMBOX		0x40


#endif	/* 1250/112x */
