1*a24ea603Sjmcneill /* $NetBSD: imx31_intr.h,v 1.6 2022/06/25 13:24:35 jmcneill Exp $ */ 2825088edSmatt /*- 3825088edSmatt * Copyright (c) 2007 The NetBSD Foundation, Inc. 4825088edSmatt * All rights reserved. 5825088edSmatt * 6825088edSmatt * This code is derived from software contributed to The NetBSD Foundation 7825088edSmatt * by Matt Thomas. 8825088edSmatt * 9825088edSmatt * Redistribution and use in source and binary forms, with or without 10825088edSmatt * modification, are permitted provided that the following conditions 11825088edSmatt * are met: 12825088edSmatt * 1. Redistributions of source code must retain the above copyright 13825088edSmatt * notice, this list of conditions and the following disclaimer. 14825088edSmatt * 2. Redistributions in binary form must reproduce the above copyright 15825088edSmatt * notice, this list of conditions and the following disclaimer in the 16825088edSmatt * documentation and/or other materials provided with the distribution. 17825088edSmatt * 18825088edSmatt * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19825088edSmatt * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20825088edSmatt * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21825088edSmatt * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22825088edSmatt * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23825088edSmatt * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24825088edSmatt * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25825088edSmatt * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26825088edSmatt * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27825088edSmatt * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28825088edSmatt * POSSIBILITY OF SUCH DAMAGE. 29825088edSmatt */ 30825088edSmatt #ifndef _ARM_IMX_IMX31_INTR_H_ 31825088edSmatt #define _ARM_IMX_IMX31_INTR_H_ 32825088edSmatt 33825088edSmatt #define IRQ__RSVD0 0 34825088edSmatt #define IRQ__RSVD1 1 35825088edSmatt #define IRQ__RSVD2 2 36825088edSmatt #define IRQ_I2C3 3 /* I2C 3 */ 37825088edSmatt #define IRQ_I2C2 4 /* I2C 2 */ 38825088edSmatt #define IRQ_MPEG4_ENC 5 /* MPEG-4 Encoder */ 39825088edSmatt #define IRQ_RTIC 6 /* RTIC */ 40825088edSmatt #define IRQ_FIR 7 /* Fast Infrared */ 41825088edSmatt #define IRQ_MMSD_HC2 8 /* MultiMedia/Secure Data Host Controller 2 */ 42825088edSmatt #define IRQ_MMSD_HC1 9 /* MultiMedia/Secure Data Host Controller 1 */ 43825088edSmatt #define IRQ_I2C1 10 /* i2c 1 */ 44825088edSmatt #define IRQ_SSI2 11 /* Synchronous Serial Interface 1 */ 45825088edSmatt #define IRQ_SSI1 12 /* Synchronous Serial Interface 2 */ 46825088edSmatt #define IRQ_CSPI2 13 /* Configurable Serial Peripheral Intf 2 */ 47825088edSmatt #define IRQ_CSPI1 14 /* Configurable Serial Peripheral Intf 1 */ 48825088edSmatt #define IRQ_ATA 15 /* Hard Drive (ATA) Controller */ 49825088edSmatt #define IRQ_MBX_RS 16 /* Graphics Accelerator */ 50825088edSmatt #define IRQ_CSPI3 17 /* Configurable Serial Peripheral Intf 3 */ 51825088edSmatt #define IRQ_UART3 18 /* UART3 (rx,tx,mint) */ 52825088edSmatt #define IRQ_I2C_ID 19 /* IC identification */ 53825088edSmatt #define IRQ_SIM1 20 /* Subscriber Identification Module */ 54825088edSmatt #define IRQ_SIM2 21 /* Subscriber Identification Module */ 55825088edSmatt #define IRQ_RNGA 22 /* Random Number Generator Accelerator */ 56825088edSmatt #define IRQ_EVTMON 23 /* event monitor + pmu */ 57825088edSmatt #define IRQ_KPP 24 /* Keyboard Port Port */ 58825088edSmatt #define IRQ_RTC 25 /* Real Time Clock */ 59825088edSmatt #define IRQ_PWM 26 /* Pulse Width Modulator */ 60825088edSmatt #define IRQ_EPIT2 27 /* Enhanced Periodic Timer 2 */ 61825088edSmatt #define IRQ_EPIT1 28 /* Enhanced Periodic Timer 1 */ 62825088edSmatt #define IRQ_GPT 29 /* General Purpose Timer */ 63825088edSmatt #define IRQ_PWRFAIL 30 /* Power Fail */ 64825088edSmatt #define IRQ_CCM_DVFS 31 /* Configurable Serial Peripheral Intf 3 */ 65825088edSmatt #define IRQ_UART2 32 /* UART2 (rx,tx,mint) */ 66825088edSmatt #define IRQ_NANDFC 33 /* NAND Flash Controller */ 67825088edSmatt #define IRQ_SDMA 34 /* Smart Direct Memory Access */ 68825088edSmatt #define IRQ_USB_H1 35 /* USB Host 1 */ 69825088edSmatt #define IRQ_USB_H2 36 /* USB Host 2 */ 70825088edSmatt #define IRQ_USB_OTG 37 /* USB OTG */ 71825088edSmatt #define IRQ__RSVD38 38 /* */ 72825088edSmatt #define IRQ_MS_HC1 39 /* Memory Stick Host Controller 1 */ 73825088edSmatt #define IRQ_MS_HC2 40 /* Memory Stick Host Controller 2 */ 74825088edSmatt #define IRQ_IPU_ERR 41 /* */ 75825088edSmatt #define IRQ_IPU 42 /* */ 76825088edSmatt #define IRQ__RSVD43 43 /* */ 77825088edSmatt #define IRQ__RSVD44 44 /* */ 78825088edSmatt #define IRQ_UART1 45 /* UART1 (rx,tx,mint) */ 79825088edSmatt #define IRQ_UART4 46 /* UART4 (rx,tx,mint) */ 80825088edSmatt #define IRQ_UART5 47 /* UART5 (rx,tx,mint) */ 81825088edSmatt #define IRQ_ECT 48 /* */ 82825088edSmatt #define IRQ_SCC_SCM 49 /* SCM interrupt */ 83825088edSmatt #define IRQ_SCC_SMN 50 /* SMN interrupt */ 84825088edSmatt #define IRQ_GPIO2 51 /* General Purpose I/O 2 */ 85825088edSmatt #define IRQ_GPIO1 52 /* General Purpose I/O 1 */ 86825088edSmatt #define IRQ_CCM 53 /* Clock Controller */ 87825088edSmatt #define IRQ_PCMCIA 54 /* PCMCIA Controller 3 */ 88825088edSmatt #define IRQ_WDOG 55 /* Watchdog Timer */ 89825088edSmatt #define IRQ_GPIO3 56 /* General Purpose I/O 3 */ 90825088edSmatt #define IRQ__RSVD57 57 91c54cdfdcSandvar #define IRQ_EXT_PWRMGT 58 /* External (power management) */ 92c54cdfdcSandvar #define IRQ_EXT_TEMP 59 /* External (Temperature) */ 93825088edSmatt #define IRQ_EXT_SENS2 60 /* External (sensor) */ 94825088edSmatt #define IRQ_EXT_SENS1 61 /* External (sensor) */ 95825088edSmatt #define IRQ_EXT_WDOG 62 /* External (WDOG) */ 96825088edSmatt #define IRQ_EXT_TV 63 /* External (TV) 3 */ 97825088edSmatt 98825088edSmatt #ifdef _LOCORE 99825088edSmatt 100825088edSmatt #define ARM_IRQ_HANDLER _C_LABEL(imx31_irq_handler) 101825088edSmatt 102825088edSmatt #else 103825088edSmatt 104825088edSmatt #define AVIC_INTR_SOURCE_NAMES \ 105825088edSmatt { "reserved 0", "reserved 1", "reserved 2", "i2c #3", \ 106825088edSmatt "i2c #2", "mpeg4 enc", "rtic", "fir", \ 107825088edSmatt "mm/sd hc #2", "mm/sd hc #1", "i2c #1", "ssi #2", \ 108825088edSmatt "ssi #1", "cspi #2", "cspi #1", "ata", \ 109825088edSmatt "mbx rs", "cspi #3", "uart #3", "i2c id", \ 110825088edSmatt "sim #1", "sim #2", "rnga", "evtmon", \ 111825088edSmatt "kpp", "rtc", "pwm", "epit #2", \ 112825088edSmatt "epit #1", "gpt", "pwrfail", "ccm dvfs", \ 113825088edSmatt "uart #2", "nandfc", "sdma", "usb hc #1", \ 114825088edSmatt "usb hc #2", "usb otg", "reserved 38", "ms hc #1", \ 115825088edSmatt "ms hc#2", "ipu err", "ipu", "reserved 43", \ 116825088edSmatt "reserved 44", "uart #1", "uart #4", "uart #5", \ 117825088edSmatt "ect", "scc scm", "scc smn", "gpio #2", \ 118825088edSmatt "gpio #1", "ccm", "pcmcia", "wdog", \ 119825088edSmatt "gpio #3", "reserved 57", "ext pwrmgt", "ext temp", \ 120825088edSmatt "ext sens #2", "ext sens #1", "ext wdog", "ext tv", } 121825088edSmatt 122825088edSmatt #define PIC_MAXMAXSOURCES (64+3*32+128) 123825088edSmatt 124825088edSmatt #include <arm/pic/picvar.h> 125825088edSmatt 126825088edSmatt const char * 127825088edSmatt intr_typename(int); 128825088edSmatt 129825088edSmatt void imx31_irq_handler(void *); 130825088edSmatt 131825088edSmatt #endif /* !_LOCORE */ 132825088edSmatt 133825088edSmatt #endif /* _ARM_IMX_IMX31_INTR_H_ */ 134