1 1.2 matt /* $NetBSD: bcm53xx_intr.h,v 1.2 2013/10/28 22:51:16 matt 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.2 matt #ifdef _KERNEL_OPT 35 1.2 matt #include "opt_broadcom.h" 36 1.2 matt #endif 37 1.2 matt 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.2 matt 89 1.2 matt #ifdef BCM5301X 90 1.2 matt #define BCM53XXX_IRQ(a,c) ((a)) 91 1.2 matt #elif defined(BCM563XX) 92 1.2 matt #define BCM53XXX_IRQ(a,c) ((a) + (c)) 93 1.2 matt #else 94 1.2 matt #error unknown iProc variant 95 1.2 matt #endif 96 1.2 matt 97 1.2 matt #define IRQ_DS_0_PINS_BUS BCM53XXX_IRQ(73, 6) 98 1.2 matt #define IRQ_DS_1_PINS_BUS BCM53XXX_IRQ(74, 6) 99 1.2 matt #define IRQ_DS_2_PINS_BUS BCM53XXX_IRQ(75, 6) 100 1.2 matt #define IRQ_DS_3_PINS_BUS BCM53XXX_IRQ(76, 6) 101 1.2 matt #define IRQ_DS_4_PINS_BUS BCM53XXX_IRQ(77, 6) 102 1.2 matt #define IRQ_DDR_CONTROLLER BCM53XXX_IRQ(78, 6) 103 1.2 matt #define IRQ_DMAC BCM53XXX_IRQ(79, 6) /* 16 */ 104 1.2 matt #define IRQ_DMAC_ABORT BCM53XXX_IRQ(95, 6) 105 1.2 matt #define IRQ_NAND_RD_MISS BCM53XXX_IRQ(96, 6) 106 1.2 matt #define IRQ_NAND_BLK_ERASE_COMP BCM53XXX_IRQ(97, 6) 107 1.2 matt #define IRQ_NAND_COPY_BACK_COMP BCM53XXX_IRQ(98, 6) 108 1.2 matt #define IRQ_NAND_PGM_PAGE_COMP BCM53XXX_IRQ(99, 6) 109 1.2 matt #define IRQ_NAND_RO_CTLR_READY BCM53XXX_IRQ(100, 6) 110 1.2 matt #define IRQ_NAND_RB_B BCM53XXX_IRQ(101, 6) 111 1.2 matt #define IRQ_NAND_ECC_MIPS_UNCORR BCM53XXX_IRQ(102, 6) 112 1.2 matt #define IRQ_NAND_ECC_MIPS_CORR BCM53XXX_IRQ(103, 6) 113 1.2 matt 114 1.2 matt #define IRQ_SPI_FULLNESS_REACHED BCM53XXX_IRQ(104, 6) 115 1.2 matt #define IRQ_SPI_TRUNCATED BCM53XXX_IRQ(105, 6) 116 1.2 matt #define IRQ_SPI_IMPATIENT BCM53XXX_IRQ(106, 6) 117 1.2 matt #define IRQ_SPI_SESSION_DONE BCM53XXX_IRQ(107, 6) 118 1.2 matt #define IRQ_SPI_INTERRUPT_OVERREAD BCM53XXX_IRQ(108, 6) 119 1.2 matt #define IRQ_SPI_MSPI_INTERRUPT_DONE BCM53XXX_IRQ(109, 6) 120 1.2 matt #define IRQ_SPI_MSPI_INTERRUPT_HALT_SET_TRANSACTION_DONE \ 121 1.2 matt BCM53XXX_IRQ(110, 6) 122 1.2 matt #define IRQ_USB2 BCM53XXX_IRQ(111, 6) 123 1.2 matt 124 1.2 matt #define IRQ_CCA BCM53XXX_IRQ(117, 6) 125 1.2 matt #define IRQ_UART2 BCM53XXX_IRQ(118, 6) 126 1.2 matt #define IRQ_GPIO BCM53XXX_IRQ(119, 6) 127 1.2 matt #define IRQ_I2S BCM53XXX_IRQ(120, 6) 128 1.2 matt #define IRQ_SMBUS1 BCM53XXX_IRQ(121, 6) 129 1.2 matt #define IRQ_TIMER0_1 BCM53XXX_IRQ(122, 7) 130 1.2 matt #define IRQ_TIMER0_2 BCM53XXX_IRQ(123, 7) 131 1.2 matt #define IRQ_TIMER1_1 BCM53XXX_IRQ(124, 7) 132 1.2 matt #define IRQ_TIMER1_2 BCM53XXX_IRQ(125, 7) 133 1.2 matt #define IRQ_RNG BCM53XXX_IRQ(126, 7) 134 1.2 matt #define IRQ_SWITCH_SOC BCM53XXX_IRQ(127, 7) /* 32 */ 135 1.2 matt #define IRQ_NETWORK_LINK_EVENT BCM53XXX_IRQ(127, 7) /* 8 */ 136 1.2 matt #define IRQ_PHY BCM53XXX_IRQ(135, 7) 137 1.2 matt #define IRQ_TIMESYNC BCM53XXX_IRQ(136, 7) 138 1.2 matt #define IRQ_IMP_SLEEP_TIMER BCM53XXX_IRQ(137, 7) /* 3 */ 139 1.2 matt #define IRQ_PCIE_INT0 BCM53XXX_IRQ(159, 55) /* 6 */ 140 1.2 matt #define IRQ_PCIE_INT1 BCM53XXX_IRQ(165, 55) /* 6 */ 141 1.2 matt #define IRQ_PCIE_INT2 BCM53XXX_IRQ(171, 55) /* 6 */ 142 1.2 matt #define IRQ_SDIO BCM53XXX_IRQ(177, 55) 143 1.2 matt #define IRQ_GMAC0 BCM53XXX_IRQ(179, 55) 144 1.2 matt #define IRQ_GMAC1 BCM53XXX_IRQ(180, 55) 145 1.2 matt 146 1.2 matt #ifdef BCM5301X 147 1.2 matt #define IRQ_XHCI_0 (112) 148 1.2 matt #define IRQ_XHCI_1 (113) 149 1.2 matt #define IRQ_XHCI_2 (114) 150 1.2 matt #define IRQ_XHCI_3 (115) 151 1.2 matt #define IRQ_XHCI_HSE (116) 152 1.2 matt #define IRQ_FA (178) 153 1.2 matt #define IRQ_GMAC2 (181) 154 1.2 matt #define IRQ_GMAC3 (182) 155 1.2 matt #endif 156 1.2 matt 157 1.2 matt #ifdef BCM563XX 158 1.2 matt #define IRQ_SATA_PINS_BUS (73) 159 1.2 matt #define IRQ_SRAM_PINS_BUS (74) 160 1.2 matt #define IRQ_APBW_PINS_BUS (75) 161 1.2 matt #define IRQ_APBX_PINS_BUS (76) 162 1.2 matt #define IRQ_APBY_PINS_BUS (77) 163 1.2 matt #define IRQ_APBZ_PINS_BUS (78) 164 1.2 matt #define IRQ_SMBUS2 (128) 165 1.2 matt #define IRQ_SATA0 (190) 166 1.2 matt #define IRQ_SATA1 (191) 167 1.2 matt #define IRQ_I2S_INTR (201) 168 1.2 matt #define IRQ_MACSEC0 (202) 169 1.2 matt #define IRQ_MACSEC1 (203) 170 1.2 matt #define IRQ_USB2D (238) 171 1.2 matt #define IRQ_APBV_PINS_BUS (239) 172 1.2 matt #define IRQ_SRAM_MEM_CORRECTABLE (240) 173 1.2 matt #define IRQ_SRAM_MEM_UNCORRECTABLE (241) 174 1.2 matt #define IRQ_SRAM_MEM_ACCESS_VIO (242) 175 1.2 matt #define IRQ_SRAM_MEM_SBMA_MISMATCH (243) 176 1.2 matt #define IRQ_CCB_WDT (244) 177 1.2 matt #endif /* BCM563XX */ 178 1.1 matt 179 1.1 matt #endif /* _ARM_BROADCOM_BC53XX_INTR_H_ */ 180