Home | History | Annotate | Line # | Download | only in broadcom
bcm53xx_intr.h revision 1.1.8.1
      1  1.1.8.1  rmind /* $NetBSD: bcm53xx_intr.h,v 1.1.8.1 2014/05/18 17:44:57 rmind Exp $ */
      2      1.1   matt /*-
      3      1.1   matt  * Copyright (c) 2012 The NetBSD Foundation, Inc.
      4      1.1   matt  * All rights reserved.
      5      1.1   matt  *
      6      1.1   matt  * This code is derived from software contributed to The NetBSD Foundation
      7      1.1   matt  * by Matt Thomas of 3am Software Foundry.
      8      1.1   matt  *
      9      1.1   matt  * Redistribution and use in source and binary forms, with or without
     10      1.1   matt  * modification, are permitted provided that the following conditions
     11      1.1   matt  * are met:
     12      1.1   matt  * 1. Redistributions of source code must retain the above copyright
     13      1.1   matt  *    notice, this list of conditions and the following disclaimer.
     14      1.1   matt  * 2. Redistributions in binary form must reproduce the above copyright
     15      1.1   matt  *    notice, this list of conditions and the following disclaimer in the
     16      1.1   matt  *    documentation and/or other materials provided with the distribution.
     17      1.1   matt  *
     18      1.1   matt  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     19      1.1   matt  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     20      1.1   matt  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     21      1.1   matt  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     22      1.1   matt  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     23      1.1   matt  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     24      1.1   matt  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     25      1.1   matt  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     26      1.1   matt  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     27      1.1   matt  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     28      1.1   matt  * POSSIBILITY OF SUCH DAMAGE.
     29      1.1   matt  */
     30      1.1   matt 
     31      1.1   matt #ifndef _ARM_BROADCOM_BCM53XX_INTR_H_
     32      1.1   matt #define _ARM_BROADCOM_BCM53XX_INTR_H_
     33      1.1   matt 
     34  1.1.8.1  rmind #ifdef _KERNEL_OPT
     35  1.1.8.1  rmind #include "opt_broadcom.h"
     36  1.1.8.1  rmind #endif
     37  1.1.8.1  rmind 
     38      1.1   matt #define	PIC_MAXSOURCES			256
     39      1.1   matt #define	PIC_MAXMAXSOURCES		280
     40      1.1   matt 
     41      1.1   matt /*
     42      1.1   matt  * The BCM53xx uses a generic interrupt controller so pull that stuff.
     43      1.1   matt  */
     44      1.1   matt #include <arm/cortex/gic_intr.h>
     45      1.1   matt #include <arm/cortex/a9tmr_intr.h>	/* A9 Timer PPIs */
     46      1.1   matt 
     47      1.1   matt #define	IRQ_L2CC			32
     48      1.1   matt #define	IRQ_PWRWDOG			33
     49      1.1   matt #define	IRQ_TRAP8			34
     50      1.1   matt #define	IRQ_TRAP1			35
     51      1.1   matt #define	IRQ_COMMTX			36
     52      1.1   matt #define	IRQ__RSVD37			37
     53      1.1   matt #define	IRQ_COMMRX			38
     54      1.1   matt #define	IRQ__RSVD39			39
     55      1.1   matt #define	IRQ_PMU				40
     56      1.1   matt #define	IRQ__RSVD41			41
     57      1.1   matt #define	IRQ_CTI				42
     58      1.1   matt #define	IRQ__RSVD43			43
     59      1.1   matt #define	IRQ_DEFLAG_CPU0			44
     60      1.1   matt #define	IRQ_DEFLAG_CPU1			45
     61      1.1   matt #define	IRQ_ARMCORE_M1_PINS_BUS		46
     62      1.1   matt #define	IRQ_PCIE0_M0_PINS_BUS		47
     63      1.1   matt #define	IRQ_PCIE1_M0_PINS_BUS		48
     64      1.1   matt #define	IRQ_PCIE2_M0_PINS_BUS		49
     65      1.1   matt #define	IRQ_DMA_M0_PINS_BUS		50
     66      1.1   matt #define	IRQ_AMAC_M0_PINS_BUS		51
     67      1.1   matt #define	IRQ_AMAC_M1_PINS_BUS		52
     68      1.1   matt #define	IRQ_AMAC_M2_PINS_BUS		53
     69      1.1   matt #define	IRQ_AMAC_M3_PINS_BUS		54
     70      1.1   matt #define	IRQ_USBH_M0_PINS_BUS		55
     71      1.1   matt #define	IRQ_USBH_M1_PINS_BUS		56
     72      1.1   matt #define	IRQ_SDIO_M0_PINS_BUS		57
     73      1.1   matt #define	IRQ_I2S_M0_PINS_BUS		58
     74      1.1   matt #define	IRQ_A9JTAG_M0_PINS_BUS		59
     75      1.1   matt #define	IRQ_JTAG_M0_PINS_BUS		60
     76      1.1   matt #define	IRQ_ARMCORE_ACP_PINS_BUS	61
     77      1.1   matt #define	IRQ_ARMCORE_S0_PINS_BUS		62
     78      1.1   matt #define	IRQ_DDR_S1_PINS_BUS		63
     79      1.1   matt #define	IRQ_DDR_S2_PINS_BUS		64
     80      1.1   matt #define	IRQ_PCIE0_S0_PINS_BUS		65
     81      1.1   matt #define	IRQ_PCIE1_S0_PINS_BUS		66
     82      1.1   matt #define	IRQ_PCIE2_S0_PINS_BUS		67
     83      1.1   matt #define	IRQ_ROM_S0_PINS_BUS		68
     84      1.1   matt #define	IRQ_NAND_S0_PINS_BUS		69
     85      1.1   matt #define	IRQ_QSPI_S0_PINS_BUS		70
     86      1.1   matt #define	IRQ_A9JTAG_S0_PINS_BUS		71
     87      1.1   matt #define	IRQ_APBX_S0_PINS_BUS		72
     88  1.1.8.1  rmind 
     89  1.1.8.1  rmind #ifdef BCM5301X
     90  1.1.8.1  rmind #define	BCM53XXX_IRQ(a,c)		((a))
     91  1.1.8.1  rmind #elif defined(BCM563XX)
     92  1.1.8.1  rmind #define	BCM53XXX_IRQ(a,c)		((a) + (c))
     93  1.1.8.1  rmind #else
     94  1.1.8.1  rmind #error unknown iProc variant
     95  1.1.8.1  rmind #endif
     96  1.1.8.1  rmind 
     97  1.1.8.1  rmind #define	IRQ_DS_0_PINS_BUS		BCM53XXX_IRQ(73, 6)
     98  1.1.8.1  rmind #define	IRQ_DS_1_PINS_BUS		BCM53XXX_IRQ(74, 6)
     99  1.1.8.1  rmind #define	IRQ_DS_2_PINS_BUS		BCM53XXX_IRQ(75, 6)
    100  1.1.8.1  rmind #define	IRQ_DS_3_PINS_BUS		BCM53XXX_IRQ(76, 6)
    101  1.1.8.1  rmind #define	IRQ_DS_4_PINS_BUS		BCM53XXX_IRQ(77, 6)
    102  1.1.8.1  rmind #define	IRQ_DDR_CONTROLLER		BCM53XXX_IRQ(78, 6)
    103  1.1.8.1  rmind #define	IRQ_DMAC			BCM53XXX_IRQ(79, 6)	/* 16 */
    104  1.1.8.1  rmind #define	IRQ_DMAC_ABORT			BCM53XXX_IRQ(95, 6)
    105  1.1.8.1  rmind #define	IRQ_NAND_RD_MISS		BCM53XXX_IRQ(96, 6)
    106  1.1.8.1  rmind #define	IRQ_NAND_BLK_ERASE_COMP		BCM53XXX_IRQ(97, 6)
    107  1.1.8.1  rmind #define	IRQ_NAND_COPY_BACK_COMP		BCM53XXX_IRQ(98, 6)
    108  1.1.8.1  rmind #define	IRQ_NAND_PGM_PAGE_COMP		BCM53XXX_IRQ(99, 6)
    109  1.1.8.1  rmind #define	IRQ_NAND_RO_CTLR_READY		BCM53XXX_IRQ(100, 6)
    110  1.1.8.1  rmind #define	IRQ_NAND_RB_B			BCM53XXX_IRQ(101, 6)
    111  1.1.8.1  rmind #define	IRQ_NAND_ECC_MIPS_UNCORR	BCM53XXX_IRQ(102, 6)
    112  1.1.8.1  rmind #define	IRQ_NAND_ECC_MIPS_CORR		BCM53XXX_IRQ(103, 6)
    113  1.1.8.1  rmind 
    114  1.1.8.1  rmind #define	IRQ_SPI_FULLNESS_REACHED	BCM53XXX_IRQ(104, 6)
    115  1.1.8.1  rmind #define	IRQ_SPI_TRUNCATED		BCM53XXX_IRQ(105, 6)
    116  1.1.8.1  rmind #define	IRQ_SPI_IMPATIENT		BCM53XXX_IRQ(106, 6)
    117  1.1.8.1  rmind #define	IRQ_SPI_SESSION_DONE		BCM53XXX_IRQ(107, 6)
    118  1.1.8.1  rmind #define	IRQ_SPI_INTERRUPT_OVERREAD	BCM53XXX_IRQ(108, 6)
    119  1.1.8.1  rmind #define	IRQ_SPI_MSPI_INTERRUPT_DONE	BCM53XXX_IRQ(109, 6)
    120  1.1.8.1  rmind #define	IRQ_SPI_MSPI_INTERRUPT_HALT_SET_TRANSACTION_DONE \
    121  1.1.8.1  rmind 					BCM53XXX_IRQ(110, 6)
    122  1.1.8.1  rmind #define	IRQ_USB2			BCM53XXX_IRQ(111, 6)
    123  1.1.8.1  rmind 
    124  1.1.8.1  rmind #define	IRQ_CCA				BCM53XXX_IRQ(117, 6)
    125  1.1.8.1  rmind #define	IRQ_UART2			BCM53XXX_IRQ(118, 6)
    126  1.1.8.1  rmind #define	IRQ_GPIO			BCM53XXX_IRQ(119, 6)
    127  1.1.8.1  rmind #define	IRQ_I2S				BCM53XXX_IRQ(120, 6)
    128  1.1.8.1  rmind #define	IRQ_SMBUS1			BCM53XXX_IRQ(121, 6)
    129  1.1.8.1  rmind #define	IRQ_TIMER0_1			BCM53XXX_IRQ(122, 7)
    130  1.1.8.1  rmind #define	IRQ_TIMER0_2			BCM53XXX_IRQ(123, 7)
    131  1.1.8.1  rmind #define	IRQ_TIMER1_1			BCM53XXX_IRQ(124, 7)
    132  1.1.8.1  rmind #define	IRQ_TIMER1_2			BCM53XXX_IRQ(125, 7)
    133  1.1.8.1  rmind #define	IRQ_RNG				BCM53XXX_IRQ(126, 7)
    134  1.1.8.1  rmind #define	IRQ_SWITCH_SOC			BCM53XXX_IRQ(127, 7)	/* 32 */
    135  1.1.8.1  rmind #define	 IRQ_NETWORK_LINK_EVENT		BCM53XXX_IRQ(127, 7)	/* 8 */
    136  1.1.8.1  rmind #define	 IRQ_PHY			BCM53XXX_IRQ(135, 7)
    137  1.1.8.1  rmind #define	 IRQ_TIMESYNC			BCM53XXX_IRQ(136, 7)
    138  1.1.8.1  rmind #define	 IRQ_IMP_SLEEP_TIMER		BCM53XXX_IRQ(137, 7)	/* 3 */
    139  1.1.8.1  rmind #define	IRQ_PCIE_INT0			BCM53XXX_IRQ(159, 55)	/* 6 */
    140  1.1.8.1  rmind #define	IRQ_PCIE_INT1			BCM53XXX_IRQ(165, 55)	/* 6 */
    141  1.1.8.1  rmind #define	IRQ_PCIE_INT2			BCM53XXX_IRQ(171, 55)	/* 6 */
    142  1.1.8.1  rmind #define	IRQ_SDIO			BCM53XXX_IRQ(177, 55)
    143  1.1.8.1  rmind #define	IRQ_GMAC0			BCM53XXX_IRQ(179, 55)
    144  1.1.8.1  rmind #define	IRQ_GMAC1			BCM53XXX_IRQ(180, 55)
    145  1.1.8.1  rmind 
    146  1.1.8.1  rmind #ifdef BCM5301X
    147  1.1.8.1  rmind #define	IRQ_XHCI_0			(112)
    148  1.1.8.1  rmind #define	IRQ_XHCI_1			(113)
    149  1.1.8.1  rmind #define	IRQ_XHCI_2			(114)
    150  1.1.8.1  rmind #define	IRQ_XHCI_3			(115)
    151  1.1.8.1  rmind #define	IRQ_XHCI_HSE			(116)
    152  1.1.8.1  rmind #define	IRQ_FA				(178)
    153  1.1.8.1  rmind #define	IRQ_GMAC2			(181)
    154  1.1.8.1  rmind #define	IRQ_GMAC3			(182)
    155  1.1.8.1  rmind #endif
    156  1.1.8.1  rmind 
    157  1.1.8.1  rmind #ifdef BCM563XX
    158  1.1.8.1  rmind #define	IRQ_SATA_PINS_BUS		(73)
    159  1.1.8.1  rmind #define	IRQ_SRAM_PINS_BUS		(74)
    160  1.1.8.1  rmind #define	IRQ_APBW_PINS_BUS		(75)
    161  1.1.8.1  rmind #define	IRQ_APBX_PINS_BUS		(76)
    162  1.1.8.1  rmind #define	IRQ_APBY_PINS_BUS		(77)
    163  1.1.8.1  rmind #define	IRQ_APBZ_PINS_BUS		(78)
    164  1.1.8.1  rmind #define	IRQ_SMBUS2			(128)
    165  1.1.8.1  rmind #define	IRQ_SATA0			(190)
    166  1.1.8.1  rmind #define	IRQ_SATA1			(191)
    167  1.1.8.1  rmind #define	IRQ_I2S_INTR			(201)
    168  1.1.8.1  rmind #define	IRQ_MACSEC0			(202)
    169  1.1.8.1  rmind #define	IRQ_MACSEC1			(203)
    170  1.1.8.1  rmind #define	IRQ_USB2D			(238)
    171  1.1.8.1  rmind #define	IRQ_APBV_PINS_BUS		(239)
    172  1.1.8.1  rmind #define	IRQ_SRAM_MEM_CORRECTABLE	(240)
    173  1.1.8.1  rmind #define	IRQ_SRAM_MEM_UNCORRECTABLE	(241)
    174  1.1.8.1  rmind #define	IRQ_SRAM_MEM_ACCESS_VIO		(242)
    175  1.1.8.1  rmind #define	IRQ_SRAM_MEM_SBMA_MISMATCH	(243)
    176  1.1.8.1  rmind #define	IRQ_CCB_WDT			(244)
    177  1.1.8.1  rmind #endif /* BCM563XX */
    178      1.1   matt 
    179      1.1   matt #endif /* _ARM_BROADCOM_BC53XX_INTR_H_ */
    180