/* $NetBSD: imx51_intr.h,v 1.4 2024/02/07 04:20:26 msaitoh Exp $ */ /*- * Copyright (c) 2009 SHIMIZU Ryo * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef _ARM_IMX_IMX51_INTR_H_ #define _ARM_IMX_IMX51_INTR_H_ #define IRQ_RSVD0 0 /* Reserved */ #define IRQ_ESDHC1 1 /* Enhanced SDHC Interrupt Request */ #define IRQ_ESDHC2 2 /* Enhanced SDHC Interrupt Request */ #define IRQ_ESDHC3 3 /* CE-ATA Interrupt Request based on eSDHC-3 */ #define IRQ_ESDHC4 4 /* Enhanced SDHC Interrupt Request */ #define IRQ_DAP 5 /* Power-up Request */ #define IRQ_SDMA 6 /* "AND" of all 48 interrupts from all the channels */ #define IRQ_IOMUX 7 /* POWER FAIL interrupt */ #define IRQ_EMI_NFC 8 /* nfc interrupt out */ #define IRQ_VPU 9 /* VPU Interrupt Request */ #define IRQ_IPUEXERR 10 /* IPUEX Error Interrupt */ #define IRQ_IPUEXSYNC 11 /* IPUEX Sync Interrupt */ #define IRQ_GPU3D 12 /* GPU3D Interrupt Request */ #define IRQ_RSVD13 13 /* Reserved */ #define IRQ_USBOH1 14 /* USB Host 1 */ #define IRQ_EMI 15 /* Consolidated EMI Interrupt */ #define IRQ_USBOH2 16 /* USB Host 2 */ #define IRQ_USBOH3 17 /* USB Host 3 */ #define IRQ_USBOH_OTG 18 /* USB OTG */ #define IRQ_SAHARA0 19 /* SAHARA host 0 (TrustZone) Intr */ #define IRQ_SAHARA1 20 /* SAHARA host 1 (non-TrustZone) Intr */ #define IRQ_SCC_HIGH 21 /* Security Monitor High Priority Interrupt Request. */ #define IRQ_SCC_SEC 22 /* Secure (TrustZone) Interrupt Request. */ #define IRQ_SCC 23 /* Regular (Non-Secure) Interrupt Request. */ #define IRQ_SRTC_CONS 24 /* SRTC Consolidated Interrupt. Non TZ. */ #define IRQ_SRTC_SEC 25 /* SRTC Security Interrupt. TZ. */ #define IRQ_RTIC 26 /* RTIC (Trust Zone) Interrupt Request. Indicates that the RTI selected memory block(s) during single-hash/boot mode. */ #define IRQ_CSU 27 /* CSU Interrupt Request 1. Indicates to the processor that on asserted */ #define IRQ_SLIMBUS 28 /* Slimbus Interrupt Request */ #define IRQ_SSI1 29 /* SSI-1 Interrupt Request */ #define IRQ_SSI2 30 /* SSI-2 Interrupt Request */ #define IRQ_UART1 31 /* UART-1 ORed interrupt */ #define IRQ_UART2 32 /* UART-2 ORed interrupt */ #define IRQ_UART3 33 /* UART-3 ORed interrupt */ #define IRQ_RSVD34 34 /* Reserved */ #define IRQ_RSVD35 35 /* Reserved */ #define IRQ_ECSPI1 36 /* eCSPI1 interrupt request line to the core. */ #define IRQ_ECSPI2 37 /* eCSPI2 interrupt request line to the core. */ #define IRQ_CSPI 38 /* CSPI interrupt request line to the core. */ #define IRQ_GPT 39 /* "OR" of GPT Rollover interrupt line, Input Capture 1 and 2 lin 3 Interrupt lines" */ #define IRQ_EPIT1 40 /* EPIT1 output compare interrupt */ #define IRQ_EPIT2 41 /* EPIT2 output compare interrupt */ #define IRQ_GPIO7 42 /* Active HIGH Interrupt from INT7 from GPIO */ #define IRQ_GPIO6 43 /* Active HIGH Interrupt from INT6 from GPIO */ #define IRQ_GPIO5 44 /* Active HIGH Interrupt from INT5 from GPIO */ #define IRQ_GPIO4 45 /* Active HIGH Interrupt from INT4 from GPIO */ #define IRQ_GPIO3 46 /* Active HIGH Interrupt from INT3 from GPIO */ #define IRQ_GPIO2 47 /* Active HIGH Interrupt from INT2 from GPIO */ #define IRQ_GPIO1 48 /* Active HIGH Interrupt from INT1 from GPIO */ #define IRQ_GPIO0 49 /* Active HIGH Interrupt from INT0 from GPIO */ #define IRQ_GPIO1_LOW 50 /* Combined interrupt indication for GPIO1 signal 0 throughout 15 */ #define IRQ_GPIO1_HIGH 51 /* Combined interrupt indication for GPIO1 signal 16 throughout 31 */ #define IRQ_GPIO2_LOW 52 /* Combined interrupt indication for GPIO2 signal 0 throughout 15 */ #define IRQ_GPIO2_HIGH 53 /* Combined interrupt indication for GPIO2 signal 16 throughout 31 */ #define IRQ_GPIO3_LOW 54 /* Combined interrupt indication for GPIO3 signal 0 throughout 15 */ #define IRQ_GPIO3_HIGH 55 /* Combined interrupt indication for GPIO3 signal 16 throughout 31 */ #define IRQ_GPIO4_LOW 56 /* Combined interrupt indication for GPIO4 signal 0 throughout 15 */ #define IRQ_GPIO4_HIGH 57 /* Combined interrupt indication for GPIO4 signal 16 throughout 31 */ #define IRQ_WDOG1 58 /* Watchdog Timer reset */ #define IRQ_WDOG2 59 /* Watchdog Timer reset */ #define IRQ_KPP 60 /* Keypad Interrupt */ #define IRQ_PWM1 61 /* "Cumulative interrupt line. "OR" of Rollover Interrupt line, Compare Interrupt line and FIFO Waterlevel crossing interrupt line." */ #define IRQ_I2C1 62 /* I2C-1 Interrupt */ #define IRQ_I2C2 63 /* I2C-2 Interrupt */ #define IRQ_HS_I2C 64 /* High Speed I2C Interrupt */ #define IRQ_RSVD65 65 /* Reserved */ #define IRQ_RSVD66 66 /* Reserved */ #define IRQ_SIM1 67 /* "SIM interrupt composed of oef, xte, sdi1, and sdi0" */ #define IRQ_SIM2 68 /* "SIM interrupt composed of tc, etc, tfe, and rdrf" */ #define IRQ_IIM 69 /* Interrupt request to the processor. Indicates to the processor that program or explicit sense cycle is completed successfully or in case of error. This signal is low-asserted. */ #define IRQ_PATA 70 /* Parallel ATA host controller interrupt request */ #define IRQ_CCM1 71 /* "CCM, Interrupt Request 1" */ #define IRQ_CCM2 72 /* "CCM, Interrupt Request 2" */ #define IRQ_GPC1 73 /* "GPC, Interrupt Request 1" */ #define IRQ_GPC2 74 /* "GPC, Interrupt Request 2" */ #define IRQ_SRC 75 /* SRC interrupt request */ #define IRQ_NEON 76 /* Neon Monitor Interrupt */ #define IRQ_PERFUNIT 77 /* Performance Unit Interrupt */ #define IRQ_CTI 78 /* CTI IRQ */ #define IRQ_DEBUG1 79 /* "Debug Interrupt, from Cross-Trigger Interface 1" */ #define IRQ_DEBUG1B 80 /* "Debug Interrupt, from Cross-Trigger Interface 1" */ #define IRQ_GPU2D 84 /* GPU2D (OpenVG) general interrupt */ #define IRQ_GPU2D_BUSY 85 /* GPU2D (OpenVG) busy signal (for S/W power gating feasibility) */ #define IRQ_RSVD86 86 /* Reserved */ #define IRQ_FEC 87 /* Fast Ethernet Controller Interrupt request (OR of 13 interrupt sources) */ #define IRQ_OWIRE 88 /* 1-Wire Interrupt Request */ #define IRQ_DEBUG2 89 /* "Debug Interrupt, from Cross-Trigger Interface 2" */ #define IRQ_SJC 90 /* SJC */ #define IRQ_SPDIF 91 /* SPDIF */ #define IRQ_TVE 92 /* TVE */ #define IRQ_FIRI 93 /* FIRI Intr (OR of all 4 interrupt sources) */ #define IRQ_PWM2 94 /* "Cumulative interrupt line. "OR" of Rollover Interrupt line, Compare Interrupt line and FIFO" */ #define IRQ_SLIMBUS_E 95 /* Slimbus Interrupt Request (Exceptional cases) */ #define IRQ_SSI3 96 /* SSI-3 Interrupt Request */ #define IRQ_EMI_BOOT 97 /* Boot sequence completed interrupt */ #define IRQ_DEBUG3 98 /* "Debug Interrupt, from Cross-Trigger Interface 3" */ #define IRQ_RXSMC 99 /* Rx SMC receive interrupt (Generated whenever SLM receives a shared channel message) */ #define IRQ_VPU_IDLE 100 /* Idle interrupt from VPU (for S/W power gating) */ #define IRQ_EMI_TRNSFER 101 /* Indicates all pages have been transferred to NFC during an auto program operation. */ #define IRQ_GPU3D_IDLE 102 /* Idle interrupt from GPU3D (for S/W power gating) */ #define IRQ_RSVD103 103 /* Reserved */ #define IRQ_RSVD104 104 /* Reserved */ #define IRQ_RSVD105 105 /* Reserved */ #define IRQ_RSVD106 106 /* Reserved */ #define IRQ_RSVD107 107 /* Reserved */ #define IRQ_RSVD108 108 /* Reserved */ #define IRQ_RSVD109 109 /* Reserved */ #define IRQ_RSVD110 110 /* Reserved */ #define IRQ_RSVD111 111 /* Reserved */ #define IRQ_RSVD112 112 /* Reserved */ #define IRQ_RSVD113 113 /* Reserved */ #define IRQ_RSVD114 114 /* Reserved */ #define IRQ_RSVD115 115 /* Reserved */ #define IRQ_RSVD116 116 /* Reserved */ #define IRQ_RSVD117 117 /* Reserved */ #define IRQ_RSVD118 118 /* Reserved */ #define IRQ_RSVD119 119 /* Reserved */ #define IRQ_RSVD120 120 /* Reserved */ #define IRQ_RSVD121 121 /* Reserved */ #define IRQ_RSVD122 122 /* Reserved */ #define IRQ_RSVD123 123 /* Reserved */ #define IRQ_RSVD124 124 /* Reserved */ #define IRQ_RSVD125 125 /* Reserved */ #define IRQ_RSVD126 126 /* Reserved */ #define IRQ_RSVD127 127 /* Reserved */ #ifdef _LOCORE #define ARM_IRQ_HANDLER _C_LABEL(imx51_irq_handler) #else #define TZIC_INTR_SOURCE_NAMES \ { "rsvd0", /* IRQ0 */ \ "esdhc1", /* IRQ1 */ \ "esdhc2", /* IRQ2 */ \ "esdhc3", /* IRQ3 */ \ "esdhc4", /* IRQ4 */ \ "dap", /* IRQ5 */ \ "sdma", /* IRQ6 */ \ "iomux", /* IRQ7 */ \ "emi", /* IRQ8 */ \ "vpu", /* IRQ9 */ \ "ipuexerr", /* IRQ10 */ \ "ipuexsync", /* IRQ11 */ \ "gpu3d", /* IRQ12 */ \ "rsvd13", /* IRQ13 */ \ "usboh1", /* IRQ14 */ \ "emi", /* IRQ15 */ \ "usboh2", /* IRQ16 */ \ "usboh3", /* IRQ17 */ \ "usboh3", /* IRQ18 */ \ "sahara0", /* IRQ19 */ \ "sahara1", /* IRQ20 */ \ "scc_high", /* IRQ21 */ \ "scc_sec", /* IRQ22 */ \ "scc", /* IRQ23 */ \ "srtc_cons", /* IRQ24 */ \ "srtc_sec", /* IRQ25 */ \ "rtic", /* IRQ26 */ \ "csu", /* IRQ27 */ \ "slimbus", /* IRQ28 */ \ "ssi1", /* IRQ29 */ \ "ssi2", /* IRQ30 */ \ "uart1", /* IRQ31 */ \ "uart2", /* IRQ32 */ \ "uart3", /* IRQ33 */ \ "rsvd34", /* IRQ34 */ \ "rsvd35", /* IRQ35 */ \ "ecspi1", /* IRQ36 */ \ "ecspi2", /* IRQ37 */ \ "cspi", /* IRQ38 */ \ "gpt", /* IRQ39 */ \ "epit1", /* IRQ40 */ \ "epit2", /* IRQ41 */ \ "gpio7", /* IRQ42 */ \ "gpio6", /* IRQ43 */ \ "gpio5", /* IRQ44 */ \ "gpio4", /* IRQ45 */ \ "gpio3", /* IRQ46 */ \ "gpio2", /* IRQ47 */ \ "gpio1", /* IRQ48 */ \ "gpio0", /* IRQ49 */ \ "gpio1_low", /* IRQ50 */ \ "gpio1_high", /* IRQ51 */ \ "gpio2_low", /* IRQ52 */ \ "gpio2_high", /* IRQ53 */ \ "gpio3_low", /* IRQ54 */ \ "gpio3_high", /* IRQ55 */ \ "gpio4_low", /* IRQ56 */ \ "gpio4_high", /* IRQ57 */ \ "wdog1", /* IRQ58 */ \ "wdog2", /* IRQ59 */ \ "kpp", /* IRQ60 */ \ "pwm1", /* IRQ61 */ \ "i2c1", /* IRQ62 */ \ "i2c2", /* IRQ63 */ \ "hs_i2c", /* IRQ64 */ \ "rsvd65", /* IRQ65 */ \ "rsvd66", /* IRQ66 */ \ "sim1", /* IRQ67 */ \ "sim2", /* IRQ68 */ \ "iim", /* IRQ69 */ \ "pata", /* IRQ70 */ \ "ccm1", /* IRQ71 */ \ "ccm2", /* IRQ72 */ \ "gpc1", /* IRQ73 */ \ "gpc2", /* IRQ74 */ \ "src", /* IRQ75 */ \ "neon", /* IRQ76 */ \ "perfunit", /* IRQ77 */ \ "cti", /* IRQ78 */ \ "debug1", /* IRQ79 */ \ "debug1", /* IRQ80 */ \ "gpu2d", /* IRQ84 */ \ "gpu2d_busy", /* IRQ85 */ \ "rsvd86", /* IRQ86 */ \ "fec", /* IRQ87 */ \ "owire", /* IRQ88 */ \ "debug2", /* IRQ89 */ \ "sjc", /* IRQ90 */ \ "spdif", /* IRQ91 */ \ "tve", /* IRQ92 */ \ "firi", /* IRQ93 */ \ "pwm2", /* IRQ94 */ \ "slimbus_e", /* IRQ95 */ \ "ssi3", /* IRQ96 */ \ "emi_boot", /* IRQ97 */ \ "debug3", /* IRQ98 */ \ "rxsmc", /* IRQ99 */ \ "vpu_idle", /* IRQ100 */ \ "emi_nfc", /* IRQ101 */ \ "gpu3d_idle", /* IRQ102 */ \ "rsvd103", /* IRQ103 */ \ "rsvd104", /* IRQ104 */ \ "rsvd105", /* IRQ105 */ \ "rsvd106", /* IRQ106 */ \ "rsvd107", /* IRQ107 */ \ "rsvd108", /* IRQ108 */ \ "rsvd109", /* IRQ109 */ \ "rsvd110", /* IRQ110 */ \ "rsvd111", /* IRQ111 */ \ "rsvd112", /* IRQ112 */ \ "rsvd113", /* IRQ113 */ \ "rsvd114", /* IRQ114 */ \ "rsvd115", /* IRQ115 */ \ "rsvd116", /* IRQ116 */ \ "rsvd117", /* IRQ117 */ \ "rsvd118", /* IRQ118 */ \ "rsvd119", /* IRQ119 */ \ "rsvd120", /* IRQ120 */ \ "rsvd121", /* IRQ121 */ \ "rsvd122", /* IRQ122 */ \ "rsvd123", /* IRQ123 */ \ "rsvd124", /* IRQ124 */ \ "rsvd125", /* IRQ125 */ \ "rsvd126", /* IRQ126 */ \ "rsvd127" /* IRQ127 */ \ } #define PIC_MAXSOURCES 128 #define PIC_MAXMAXSOURCES (PIC_MAXSOURCES+128) #include const char *intr_typename(int); void imx51_irq_handler(void *); #endif /* !_LOCORE */ #endif /* _ARM_IMX_IMX51_INTR_H_ */