This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit caa09a6557cbac74b37e10c9432ca9275d88c0dc
Author: Jukka Laitinen <[email protected]>
AuthorDate: Tue Sep 1 15:30:06 2026 +0300

    arch/arm/imxrt: Add imxrt118x irq definitions
    
    Add interrupt numbering for imxrt118x in imxrt118x_irq.h, and support
    for more interrupts in imxrt_irq.c and imxrt_clrpend.c.
    
    The interrupt numbers are generated from the Reference Manual by AI
    
    Assisted-by: Claude Code:claude-opus-4-7
    Signed-off-by: Jukka Laitinen <[email protected]>
---
 arch/arm/include/imxrt/imxrt118x_irq.h | 293 +++++++++++++++++++++++++++++++++
 arch/arm/include/imxrt/irq.h           |   2 +
 arch/arm/src/imxrt/imxrt_clrpend.c     |  21 +++
 arch/arm/src/imxrt/imxrt_irq.c         |  26 ++-
 4 files changed, 337 insertions(+), 5 deletions(-)

diff --git a/arch/arm/include/imxrt/imxrt118x_irq.h 
b/arch/arm/include/imxrt/imxrt118x_irq.h
new file mode 100644
index 00000000000..5b3ffc27385
--- /dev/null
+++ b/arch/arm/include/imxrt/imxrt118x_irq.h
@@ -0,0 +1,293 @@
+/****************************************************************************
+ * arch/arm/include/imxrt/imxrt118x_irq.h
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/* This file should never be included directly but, rather,
+ * only indirectly through nuttx/irq.h
+ */
+
+#ifndef __ARCH_ARM_INCLUDE_IMXRT_IMXRT118X_IRQ_H
+#define __ARCH_ARM_INCLUDE_IMXRT_IMXRT118X_IRQ_H
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* External interrupts (from IMXRT1180RM Ch. 4 Interrupts, Table 11).
+ * Names extracted from the NXP MCUXpresso SDK IRQn_Type enumeration.
+ */
+
+#define IMXRT_IRQ_TMR1                                (IMXRT_IRQ_EXTINT + 0)
+#define IMXRT_IRQ_DAP                                 (IMXRT_IRQ_EXTINT + 1)
+#define IMXRT_IRQ_M7_CTI_TRIGGER_OUTPUT               (IMXRT_IRQ_EXTINT + 2)
+#define IMXRT_IRQ_M33_CTI_TRIGGER_OUTPUT              (IMXRT_IRQ_EXTINT + 3)
+#define IMXRT_IRQ_TMR5                                (IMXRT_IRQ_EXTINT + 4)
+#define IMXRT_IRQ_TMR6                                (IMXRT_IRQ_EXTINT + 5)
+#define IMXRT_IRQ_TMR7                                (IMXRT_IRQ_EXTINT + 6)
+#define IMXRT_IRQ_TMR8                                (IMXRT_IRQ_EXTINT + 7)
+#define IMXRT_IRQ_CAN1                                (IMXRT_IRQ_EXTINT + 8)
+#define IMXRT_IRQ_CAN1_ERROR                          (IMXRT_IRQ_EXTINT + 9)
+#define IMXRT_IRQ_GPIO1_0                             (IMXRT_IRQ_EXTINT + 10)
+#define IMXRT_IRQ_GPIO1_1                             (IMXRT_IRQ_EXTINT + 11)
+#define IMXRT_IRQ_I3C1                                (IMXRT_IRQ_EXTINT + 12)
+#define IMXRT_IRQ_LPI2C1                              (IMXRT_IRQ_EXTINT + 13)
+#define IMXRT_IRQ_LPI2C2                              (IMXRT_IRQ_EXTINT + 14)
+#define IMXRT_IRQ_LPIT1                               (IMXRT_IRQ_EXTINT + 15)
+#define IMXRT_IRQ_LPSPI1                              (IMXRT_IRQ_EXTINT + 16)
+#define IMXRT_IRQ_LPSPI2                              (IMXRT_IRQ_EXTINT + 17)
+#define IMXRT_IRQ_LPTMR1                              (IMXRT_IRQ_EXTINT + 18)
+#define IMXRT_IRQ_LPUART1                             (IMXRT_IRQ_EXTINT + 19)
+#define IMXRT_IRQ_LPUART2                             (IMXRT_IRQ_EXTINT + 20)
+#define IMXRT_IRQ_MU1                                 (IMXRT_IRQ_EXTINT + 21)
+#define IMXRT_IRQ_MU2                                 (IMXRT_IRQ_EXTINT + 22)
+#define IMXRT_IRQ_PWM1_FAULT                          (IMXRT_IRQ_EXTINT + 23)
+#define IMXRT_IRQ_PWM1_0                              (IMXRT_IRQ_EXTINT + 24)
+#define IMXRT_IRQ_PWM1_1                              (IMXRT_IRQ_EXTINT + 25)
+#define IMXRT_IRQ_PWM1_2                              (IMXRT_IRQ_EXTINT + 26)
+#define IMXRT_IRQ_PWM1_3                              (IMXRT_IRQ_EXTINT + 27)
+#define IMXRT_IRQ_EDGELOCK_TRUST_MUA_RX_FULL          (IMXRT_IRQ_EXTINT + 28)
+#define IMXRT_IRQ_EDGELOCK_TRUST_MUA_TX_EMPTY         (IMXRT_IRQ_EXTINT + 29)
+#define IMXRT_IRQ_EDGELOCK_APPS_CORE_MUA_RX_FULL      (IMXRT_IRQ_EXTINT + 30)
+#define IMXRT_IRQ_EDGELOCK_APPS_CORE_MUA_TX_EMPTY     (IMXRT_IRQ_EXTINT + 31)
+#define IMXRT_IRQ_EDGELOCK_REALTIME_CORE_MUA_RX_FULL  (IMXRT_IRQ_EXTINT + 32)
+#define IMXRT_IRQ_EDGELOCK_REALTIME_CORE_MUA_TX_EMPTY (IMXRT_IRQ_EXTINT + 33)
+#define IMXRT_IRQ_EDGELOCK_SECURE                     (IMXRT_IRQ_EXTINT + 34)
+#define IMXRT_IRQ_EDGELOCK_NONSECURE                  (IMXRT_IRQ_EXTINT + 35)
+#define IMXRT_IRQ_TPM1                                (IMXRT_IRQ_EXTINT + 36)
+#define IMXRT_IRQ_TPM2                                (IMXRT_IRQ_EXTINT + 37)
+#define IMXRT_IRQ_RTWDOG1                             (IMXRT_IRQ_EXTINT + 38)
+#define IMXRT_IRQ_RTWDOG2                             (IMXRT_IRQ_EXTINT + 39)
+#define IMXRT_IRQ_TRDC_MGR_AON                        (IMXRT_IRQ_EXTINT + 40)
+#define IMXRT_IRQ_PDM_HWVAD_EVENT                     (IMXRT_IRQ_EXTINT + 41)
+#define IMXRT_IRQ_PDM_HWVAD_ERROR                     (IMXRT_IRQ_EXTINT + 42)
+#define IMXRT_IRQ_PDM_EVENT                           (IMXRT_IRQ_EXTINT + 43)
+#define IMXRT_IRQ_PDM_ERROR                           (IMXRT_IRQ_EXTINT + 44)
+#define IMXRT_IRQ_SAI1                                (IMXRT_IRQ_EXTINT + 45)
+#define IMXRT_IRQ_CM33_PS                             (IMXRT_IRQ_EXTINT + 46)
+#define IMXRT_IRQ_CM33_TCM_ECC                        (IMXRT_IRQ_EXTINT + 47)
+#define IMXRT_IRQ_CM33_TCM_ERROR                      (IMXRT_IRQ_EXTINT + 48)
+#define IMXRT_IRQ_CM7_TCM_ECC                         (IMXRT_IRQ_EXTINT + 49)
+#define IMXRT_IRQ_CM7_TCM_ERROR                       (IMXRT_IRQ_EXTINT + 50)
+#define IMXRT_IRQ_CAN2                                (IMXRT_IRQ_EXTINT + 51)
+#define IMXRT_IRQ_CAN2_ERROR                          (IMXRT_IRQ_EXTINT + 52)
+#define IMXRT_IRQ_FLEXIO1                             (IMXRT_IRQ_EXTINT + 53)
+#define IMXRT_IRQ_FLEXIO2                             (IMXRT_IRQ_EXTINT + 54)
+#define IMXRT_IRQ_FLEXSPI1                            (IMXRT_IRQ_EXTINT + 55)
+#define IMXRT_IRQ_FLEXSPI2                            (IMXRT_IRQ_EXTINT + 56)
+#define IMXRT_IRQ_GPIO2_0                             (IMXRT_IRQ_EXTINT + 57)
+#define IMXRT_IRQ_GPIO2_1                             (IMXRT_IRQ_EXTINT + 58)
+#define IMXRT_IRQ_GPIO3_0                             (IMXRT_IRQ_EXTINT + 59)
+#define IMXRT_IRQ_GPIO3_1                             (IMXRT_IRQ_EXTINT + 60)
+#define IMXRT_IRQ_I3C2                                (IMXRT_IRQ_EXTINT + 61)
+#define IMXRT_IRQ_LPI2C3                              (IMXRT_IRQ_EXTINT + 62)
+#define IMXRT_IRQ_LPI2C4                              (IMXRT_IRQ_EXTINT + 63)
+#define IMXRT_IRQ_LPIT2                               (IMXRT_IRQ_EXTINT + 64)
+#define IMXRT_IRQ_LPSPI3                              (IMXRT_IRQ_EXTINT + 65)
+#define IMXRT_IRQ_LPSPI4                              (IMXRT_IRQ_EXTINT + 66)
+#define IMXRT_IRQ_LPTMR2                              (IMXRT_IRQ_EXTINT + 67)
+#define IMXRT_IRQ_LPUART3                             (IMXRT_IRQ_EXTINT + 68)
+#define IMXRT_IRQ_LPUART4                             (IMXRT_IRQ_EXTINT + 69)
+#define IMXRT_IRQ_LPUART5                             (IMXRT_IRQ_EXTINT + 70)
+#define IMXRT_IRQ_LPUART6                             (IMXRT_IRQ_EXTINT + 71)
+#define IMXRT_IRQ_Reserved88                          (IMXRT_IRQ_EXTINT + 72)
+#define IMXRT_IRQ_BBNSM                               (IMXRT_IRQ_EXTINT + 73)
+#define IMXRT_IRQ_SYS_CTR1                            (IMXRT_IRQ_EXTINT + 74)
+#define IMXRT_IRQ_TPM3                                (IMXRT_IRQ_EXTINT + 75)
+#define IMXRT_IRQ_TPM4                                (IMXRT_IRQ_EXTINT + 76)
+#define IMXRT_IRQ_TPM5                                (IMXRT_IRQ_EXTINT + 77)
+#define IMXRT_IRQ_TPM6                                (IMXRT_IRQ_EXTINT + 78)
+#define IMXRT_IRQ_RTWDOG3                             (IMXRT_IRQ_EXTINT + 79)
+#define IMXRT_IRQ_RTWDOG4                             (IMXRT_IRQ_EXTINT + 80)
+#define IMXRT_IRQ_RTWDOG5                             (IMXRT_IRQ_EXTINT + 81)
+#define IMXRT_IRQ_TRDC_MGR_WKUP                       (IMXRT_IRQ_EXTINT + 82)
+#define IMXRT_IRQ_TMPSNS_INT                          (IMXRT_IRQ_EXTINT + 83)
+#define IMXRT_IRQ_BBSM                                (IMXRT_IRQ_EXTINT + 84)
+#define IMXRT_IRQ_LDO_AON_ANA                         (IMXRT_IRQ_EXTINT + 85)
+#define IMXRT_IRQ_USDHC1                              (IMXRT_IRQ_EXTINT + 86)
+#define IMXRT_IRQ_USDHC2                              (IMXRT_IRQ_EXTINT + 87)
+#define IMXRT_IRQ_TRDC_MGR_MEGA                       (IMXRT_IRQ_EXTINT + 88)
+#define IMXRT_IRQ_SFA                                 (IMXRT_IRQ_EXTINT + 89)
+#define IMXRT_IRQ_LDO_AON_DIG                         (IMXRT_IRQ_EXTINT + 90)
+#define IMXRT_IRQ_MECC1                               (IMXRT_IRQ_EXTINT + 91)
+#define IMXRT_IRQ_MECC2                               (IMXRT_IRQ_EXTINT + 92)
+#define IMXRT_IRQ_ADC1                                (IMXRT_IRQ_EXTINT + 93)
+#define IMXRT_IRQ_DMA_ERROR                           (IMXRT_IRQ_EXTINT + 94)
+#define IMXRT_IRQ_DMA3_CH0                            (IMXRT_IRQ_EXTINT + 95)
+#define IMXRT_IRQ_DMA3_CH1                            (IMXRT_IRQ_EXTINT + 96)
+#define IMXRT_IRQ_DMA3_CH2                            (IMXRT_IRQ_EXTINT + 97)
+#define IMXRT_IRQ_DMA3_CH3                            (IMXRT_IRQ_EXTINT + 98)
+#define IMXRT_IRQ_DMA3_CH4                            (IMXRT_IRQ_EXTINT + 99)
+#define IMXRT_IRQ_DMA3_CH5                            (IMXRT_IRQ_EXTINT + 100)
+#define IMXRT_IRQ_DMA3_CH6                            (IMXRT_IRQ_EXTINT + 101)
+#define IMXRT_IRQ_DMA3_CH7                            (IMXRT_IRQ_EXTINT + 102)
+#define IMXRT_IRQ_DMA3_CH8                            (IMXRT_IRQ_EXTINT + 103)
+#define IMXRT_IRQ_DMA3_CH9                            (IMXRT_IRQ_EXTINT + 104)
+#define IMXRT_IRQ_DMA3_CH10                           (IMXRT_IRQ_EXTINT + 105)
+#define IMXRT_IRQ_DMA3_CH11                           (IMXRT_IRQ_EXTINT + 106)
+#define IMXRT_IRQ_DMA3_CH12                           (IMXRT_IRQ_EXTINT + 107)
+#define IMXRT_IRQ_DMA3_CH13                           (IMXRT_IRQ_EXTINT + 108)
+#define IMXRT_IRQ_DMA3_CH14                           (IMXRT_IRQ_EXTINT + 109)
+#define IMXRT_IRQ_DMA3_CH15                           (IMXRT_IRQ_EXTINT + 110)
+#define IMXRT_IRQ_DMA3_CH16                           (IMXRT_IRQ_EXTINT + 111)
+#define IMXRT_IRQ_DMA3_CH17                           (IMXRT_IRQ_EXTINT + 112)
+#define IMXRT_IRQ_DMA3_CH18                           (IMXRT_IRQ_EXTINT + 113)
+#define IMXRT_IRQ_DMA3_CH19                           (IMXRT_IRQ_EXTINT + 114)
+#define IMXRT_IRQ_DMA3_CH20                           (IMXRT_IRQ_EXTINT + 115)
+#define IMXRT_IRQ_DMA3_CH21                           (IMXRT_IRQ_EXTINT + 116)
+#define IMXRT_IRQ_DMA3_CH22                           (IMXRT_IRQ_EXTINT + 117)
+#define IMXRT_IRQ_DMA3_CH23                           (IMXRT_IRQ_EXTINT + 118)
+#define IMXRT_IRQ_DMA3_CH24                           (IMXRT_IRQ_EXTINT + 119)
+#define IMXRT_IRQ_DMA3_CH25                           (IMXRT_IRQ_EXTINT + 120)
+#define IMXRT_IRQ_DMA3_CH26                           (IMXRT_IRQ_EXTINT + 121)
+#define IMXRT_IRQ_DMA3_CH27                           (IMXRT_IRQ_EXTINT + 122)
+#define IMXRT_IRQ_DMA3_CH28                           (IMXRT_IRQ_EXTINT + 123)
+#define IMXRT_IRQ_DMA3_CH29                           (IMXRT_IRQ_EXTINT + 124)
+#define IMXRT_IRQ_DMA3_CH30                           (IMXRT_IRQ_EXTINT + 125)
+#define IMXRT_IRQ_DMA3_CH31                           (IMXRT_IRQ_EXTINT + 126)
+#define IMXRT_IRQ_DMA4_ERROR                          (IMXRT_IRQ_EXTINT + 127)
+#define IMXRT_IRQ_DMA4_CH0_CH1_CH32_CH33              (IMXRT_IRQ_EXTINT + 128)
+#define IMXRT_IRQ_DMA4_CH2_CH3_CH34_CH35              (IMXRT_IRQ_EXTINT + 129)
+#define IMXRT_IRQ_DMA4_CH4_CH5_CH36_CH37              (IMXRT_IRQ_EXTINT + 130)
+#define IMXRT_IRQ_DMA4_CH6_CH7_CH38_CH39              (IMXRT_IRQ_EXTINT + 131)
+#define IMXRT_IRQ_DMA4_CH8_CH9_CH40_CH41              (IMXRT_IRQ_EXTINT + 132)
+#define IMXRT_IRQ_DMA4_CH10_CH11_CH42_CH43            (IMXRT_IRQ_EXTINT + 133)
+#define IMXRT_IRQ_DMA4_CH12_CH13_CH44_CH45            (IMXRT_IRQ_EXTINT + 134)
+#define IMXRT_IRQ_DMA4_CH14_CH15_CH46_CH47            (IMXRT_IRQ_EXTINT + 135)
+#define IMXRT_IRQ_DMA4_CH16_CH17_CH48_CH49            (IMXRT_IRQ_EXTINT + 136)
+#define IMXRT_IRQ_DMA4_CH18_CH19_CH50_CH51            (IMXRT_IRQ_EXTINT + 137)
+#define IMXRT_IRQ_DMA4_CH20_CH21_CH52_CH53            (IMXRT_IRQ_EXTINT + 138)
+#define IMXRT_IRQ_DMA4_CH22_CH23_CH54_CH55            (IMXRT_IRQ_EXTINT + 139)
+#define IMXRT_IRQ_DMA4_CH24_CH25_CH56_CH57            (IMXRT_IRQ_EXTINT + 140)
+#define IMXRT_IRQ_DMA4_CH26_CH27_CH58_CH59            (IMXRT_IRQ_EXTINT + 141)
+#define IMXRT_IRQ_DMA4_CH28_CH29_CH60_CH61            (IMXRT_IRQ_EXTINT + 142)
+#define IMXRT_IRQ_DMA4_CH30_CH31_CH62_CH63            (IMXRT_IRQ_EXTINT + 143)
+#define IMXRT_IRQ_XBAR1_CH0_CH1                       (IMXRT_IRQ_EXTINT + 144)
+#define IMXRT_IRQ_XBAR1_CH2_CH3                       (IMXRT_IRQ_EXTINT + 145)
+#define IMXRT_IRQ_SINC3_CH0_CH1_CH2_CH3               (IMXRT_IRQ_EXTINT + 146)
+#define IMXRT_IRQ_EWM                                 (IMXRT_IRQ_EXTINT + 147)
+#define IMXRT_IRQ_SEMC                                (IMXRT_IRQ_EXTINT + 148)
+#define IMXRT_IRQ_LPIT3                               (IMXRT_IRQ_EXTINT + 149)
+#define IMXRT_IRQ_LPTMR3                              (IMXRT_IRQ_EXTINT + 150)
+#define IMXRT_IRQ_TMR4                                (IMXRT_IRQ_EXTINT + 151)
+#define IMXRT_IRQ_LPI2C5                              (IMXRT_IRQ_EXTINT + 152)
+#define IMXRT_IRQ_LPI2C6                              (IMXRT_IRQ_EXTINT + 153)
+#define IMXRT_IRQ_SAI4                                (IMXRT_IRQ_EXTINT + 154)
+#define IMXRT_IRQ_SPDIF                               (IMXRT_IRQ_EXTINT + 155)
+#define IMXRT_IRQ_LPUART9                             (IMXRT_IRQ_EXTINT + 156)
+#define IMXRT_IRQ_LPUART10                            (IMXRT_IRQ_EXTINT + 157)
+#define IMXRT_IRQ_LPUART11                            (IMXRT_IRQ_EXTINT + 158)
+#define IMXRT_IRQ_LPUART12                            (IMXRT_IRQ_EXTINT + 159)
+#define IMXRT_IRQ_INTG_BOOTROM_DEBUG_CTRL             (IMXRT_IRQ_EXTINT + 160)
+#define IMXRT_IRQ_EDGELOCK_REQ1                       (IMXRT_IRQ_EXTINT + 161)
+#define IMXRT_IRQ_EDGELOCK_REQ2                       (IMXRT_IRQ_EXTINT + 162)
+#define IMXRT_IRQ_EDGELOCK_REQ3                       (IMXRT_IRQ_EXTINT + 163)
+#define IMXRT_IRQ_TMR3                                (IMXRT_IRQ_EXTINT + 164)
+#define IMXRT_IRQ_JTAGC                               (IMXRT_IRQ_EXTINT + 165)
+#define IMXRT_IRQ_M33_SYSRESET_REQ                    (IMXRT_IRQ_EXTINT + 166)
+#define IMXRT_IRQ_M33_LOCKUP                          (IMXRT_IRQ_EXTINT + 167)
+#define IMXRT_IRQ_M7_SYSRESET_REQ                     (IMXRT_IRQ_EXTINT + 168)
+#define IMXRT_IRQ_M7_LOCKUP                           (IMXRT_IRQ_EXTINT + 169)
+#define IMXRT_IRQ_PWM2_FAULT                          (IMXRT_IRQ_EXTINT + 170)
+#define IMXRT_IRQ_PWM2_0                              (IMXRT_IRQ_EXTINT + 171)
+#define IMXRT_IRQ_PWM2_1                              (IMXRT_IRQ_EXTINT + 172)
+#define IMXRT_IRQ_PWM2_2                              (IMXRT_IRQ_EXTINT + 173)
+#define IMXRT_IRQ_PWM2_3                              (IMXRT_IRQ_EXTINT + 174)
+#define IMXRT_IRQ_PWM3_FAULT                          (IMXRT_IRQ_EXTINT + 175)
+#define IMXRT_IRQ_PWM3_0                              (IMXRT_IRQ_EXTINT + 176)
+#define IMXRT_IRQ_PWM3_1                              (IMXRT_IRQ_EXTINT + 177)
+#define IMXRT_IRQ_PWM3_2                              (IMXRT_IRQ_EXTINT + 178)
+#define IMXRT_IRQ_PWM3_3                              (IMXRT_IRQ_EXTINT + 179)
+#define IMXRT_IRQ_PWM4_FAULT                          (IMXRT_IRQ_EXTINT + 180)
+#define IMXRT_IRQ_PWM4_0                              (IMXRT_IRQ_EXTINT + 181)
+#define IMXRT_IRQ_PWM4_1                              (IMXRT_IRQ_EXTINT + 182)
+#define IMXRT_IRQ_PWM4_2                              (IMXRT_IRQ_EXTINT + 183)
+#define IMXRT_IRQ_PWM4_3                              (IMXRT_IRQ_EXTINT + 184)
+#define IMXRT_IRQ_EQDC1                               (IMXRT_IRQ_EXTINT + 185)
+#define IMXRT_IRQ_EQDC2                               (IMXRT_IRQ_EXTINT + 186)
+#define IMXRT_IRQ_EQDC3                               (IMXRT_IRQ_EXTINT + 187)
+#define IMXRT_IRQ_EQDC4                               (IMXRT_IRQ_EXTINT + 188)
+#define IMXRT_IRQ_ADC2                                (IMXRT_IRQ_EXTINT + 189)
+#define IMXRT_IRQ_DCDC                                (IMXRT_IRQ_EXTINT + 190)
+#define IMXRT_IRQ_CAN3                                (IMXRT_IRQ_EXTINT + 191)
+#define IMXRT_IRQ_CAN3_ERROR                          (IMXRT_IRQ_EXTINT + 192)
+#define IMXRT_IRQ_DAC                                 (IMXRT_IRQ_EXTINT + 193)
+#define IMXRT_IRQ_LPSPI5                              (IMXRT_IRQ_EXTINT + 194)
+#define IMXRT_IRQ_LPSPI6                              (IMXRT_IRQ_EXTINT + 195)
+#define IMXRT_IRQ_LPUART7                             (IMXRT_IRQ_EXTINT + 196)
+#define IMXRT_IRQ_LPUART8                             (IMXRT_IRQ_EXTINT + 197)
+#define IMXRT_IRQ_SAI2                                (IMXRT_IRQ_EXTINT + 198)
+#define IMXRT_IRQ_SAI3                                (IMXRT_IRQ_EXTINT + 199)
+#define IMXRT_IRQ_ACMP1                               (IMXRT_IRQ_EXTINT + 200)
+#define IMXRT_IRQ_ACMP2                               (IMXRT_IRQ_EXTINT + 201)
+#define IMXRT_IRQ_ACMP3                               (IMXRT_IRQ_EXTINT + 202)
+#define IMXRT_IRQ_ACMP4                               (IMXRT_IRQ_EXTINT + 203)
+#define IMXRT_IRQ_CM7_PS                              (IMXRT_IRQ_EXTINT + 204)
+#define IMXRT_IRQ_CM7_MCM                             (IMXRT_IRQ_EXTINT + 205)
+#define IMXRT_IRQ_CM33_MCM                            (IMXRT_IRQ_EXTINT + 206)
+#define IMXRT_IRQ_ECAT_INT                            (IMXRT_IRQ_EXTINT + 207)
+#define IMXRT_IRQ_SAFETY_CLK_MON                      (IMXRT_IRQ_EXTINT + 208)
+#define IMXRT_IRQ_GPT1                                (IMXRT_IRQ_EXTINT + 209)
+#define IMXRT_IRQ_GPT2                                (IMXRT_IRQ_EXTINT + 210)
+#define IMXRT_IRQ_KPP                                 (IMXRT_IRQ_EXTINT + 211)
+#define IMXRT_IRQ_USBPHY1                             (IMXRT_IRQ_EXTINT + 212)
+#define IMXRT_IRQ_USBPHY2                             (IMXRT_IRQ_EXTINT + 213)
+#define IMXRT_IRQ_USB_OTG2                            (IMXRT_IRQ_EXTINT + 214)
+#define IMXRT_IRQ_USBOTG1                             (IMXRT_IRQ_EXTINT + 215)
+#define IMXRT_IRQ_FLEXSPI_SLV                         (IMXRT_IRQ_EXTINT + 216)
+#define IMXRT_IRQ_NETC                                (IMXRT_IRQ_EXTINT + 217)
+#define IMXRT_IRQ_MSGINTR1                            (IMXRT_IRQ_EXTINT + 218)
+#define IMXRT_IRQ_MSGINTR2                            (IMXRT_IRQ_EXTINT + 219)
+#define IMXRT_IRQ_MSGINTR3                            (IMXRT_IRQ_EXTINT + 220)
+#define IMXRT_IRQ_MSGINTR4                            (IMXRT_IRQ_EXTINT + 221)
+#define IMXRT_IRQ_MSGINTR5                            (IMXRT_IRQ_EXTINT + 222)
+#define IMXRT_IRQ_MSGINTR6                            (IMXRT_IRQ_EXTINT + 223)
+#define IMXRT_IRQ_SINC1_CH0                           (IMXRT_IRQ_EXTINT + 224)
+#define IMXRT_IRQ_SINC1_CH1                           (IMXRT_IRQ_EXTINT + 225)
+#define IMXRT_IRQ_SINC1_CH2                           (IMXRT_IRQ_EXTINT + 226)
+#define IMXRT_IRQ_SINC1_CH3                           (IMXRT_IRQ_EXTINT + 227)
+#define IMXRT_IRQ_SINC2_CH0                           (IMXRT_IRQ_EXTINT + 228)
+#define IMXRT_IRQ_SINC2_CH1                           (IMXRT_IRQ_EXTINT + 229)
+#define IMXRT_IRQ_SINC2_CH2                           (IMXRT_IRQ_EXTINT + 230)
+#define IMXRT_IRQ_SINC2_CH3                           (IMXRT_IRQ_EXTINT + 231)
+#define IMXRT_IRQ_GPIO4                               (IMXRT_IRQ_EXTINT + 232)
+#define IMXRT_IRQ_TMR2                                (IMXRT_IRQ_EXTINT + 233)
+#define IMXRT_IRQ_GPIO5                               (IMXRT_IRQ_EXTINT + 234)
+#define IMXRT_IRQ_ASRC                                (IMXRT_IRQ_EXTINT + 235)
+#define IMXRT_IRQ_GPIO6                               (IMXRT_IRQ_EXTINT + 236)
+#define IMXRT_IRQ_DBG_TRACE                           (IMXRT_IRQ_EXTINT + 237)
+
+/* Total number of external interrupts (matches the SDK IRQn_Type range). */
+
+#define IMXRT_IRQ_NEXTINT        (238)
+
+/* Interrupt count for the M33 core on imxrt118x. */
+
+#define ARMV8M_PERIPHERAL_INTERRUPTS IMXRT_IRQ_NEXTINT
+
+/* No GPIO interrupts are wired up in the minimal port. */
+
+#define IMXRT_GPIO_IRQ_FIRST     (IMXRT_IRQ_EXTINT + IMXRT_IRQ_NEXTINT)
+#define IMXRT_GPIO_NIRQS         (0)
+
+#define NR_IRQS                  (IMXRT_IRQ_EXTINT + IMXRT_IRQ_NEXTINT + \
+                                  IMXRT_GPIO_NIRQS)
+
+#endif /* __ARCH_ARM_INCLUDE_IMXRT_IMXRT118X_IRQ_H */
diff --git a/arch/arm/include/imxrt/irq.h b/arch/arm/include/imxrt/irq.h
index 8778e34f326..d858df5f070 100644
--- a/arch/arm/include/imxrt/irq.h
+++ b/arch/arm/include/imxrt/irq.h
@@ -42,6 +42,8 @@
 #  include <arch/imxrt/imxrt106x_irq.h>
 #elif defined(CONFIG_ARCH_FAMILY_IMXRT117x)
 #  include <arch/imxrt/imxrt117x_irq.h>
+#elif defined(CONFIG_ARCH_FAMILY_IMXRT118x)
+#  include <arch/imxrt/imxrt118x_irq.h>
 #else
 #  error Unrecognized i.MX RT architecture
 #endif
diff --git a/arch/arm/src/imxrt/imxrt_clrpend.c 
b/arch/arm/src/imxrt/imxrt_clrpend.c
index fb874717c4e..b759b1e3d6d 100644
--- a/arch/arm/src/imxrt/imxrt_clrpend.c
+++ b/arch/arm/src/imxrt/imxrt_clrpend.c
@@ -89,6 +89,27 @@ void imxrt_clrpend(int irq)
           putreg32(1 << (irq - IMXRT_IRQ_EXTINT - 128),
                    NVIC_IRQ128_159_CLRPEND);
         }
+#endif
+#if IMXRT_IRQ_NEXTINT >= 192
+      else if (irq < (IMXRT_IRQ_EXTINT + 192))
+        {
+          putreg32(1 << (irq - IMXRT_IRQ_EXTINT - 160),
+                   NVIC_IRQ160_191_CLRPEND);
+        }
+#endif
+#if IMXRT_IRQ_NEXTINT >= 224
+      else if (irq < (IMXRT_IRQ_EXTINT + 224))
+        {
+          putreg32(1 << (irq - IMXRT_IRQ_EXTINT - 192),
+                   NVIC_IRQ192_223_CLRPEND);
+        }
+#endif
+#if IMXRT_IRQ_NEXTINT >= 240
+      else if (irq < (IMXRT_IRQ_EXTINT + 240))
+        {
+          putreg32(1 << (irq - IMXRT_IRQ_EXTINT - 224),
+                   NVIC_IRQ224_239_CLRPEND);
+        }
 #endif
       else
         {
diff --git a/arch/arm/src/imxrt/imxrt_irq.c b/arch/arm/src/imxrt/imxrt_irq.c
index 3a8a87059db..b311685cd71 100644
--- a/arch/arm/src/imxrt/imxrt_irq.c
+++ b/arch/arm/src/imxrt/imxrt_irq.c
@@ -200,12 +200,20 @@ static void imxrt_dumpnvic(const char *msg, int irq)
           getreg32(NVIC_IRQ204_207_PRIORITY));
 #endif
 #if IMXRT_IRQ_NEXTINT > 208
-  irqinfo("              %08x %08x %08x\n",
+  irqinfo("              %08x %08x %08x %08x\n",
           getreg32(NVIC_IRQ208_211_PRIORITY),
           getreg32(NVIC_IRQ212_215_PRIORITY),
-          getreg32(NVIC_IRQ216_219_PRIORITY));
+          getreg32(NVIC_IRQ216_219_PRIORITY),
+          getreg32(NVIC_IRQ220_223_PRIORITY));
+#endif
+#if IMXRT_IRQ_NEXTINT > 224
+  irqinfo("              %08x %08x %08x %08x\n",
+          getreg32(NVIC_IRQ224_227_PRIORITY),
+          getreg32(NVIC_IRQ228_231_PRIORITY),
+          getreg32(NVIC_IRQ232_235_PRIORITY),
+          getreg32(NVIC_IRQ236_239_PRIORITY));
 #endif
-#if IMXRT_IRQ_NEXTINT > 218
+#if IMXRT_IRQ_NEXTINT > 240
 #  warning Missing logic
 #endif
 
@@ -339,14 +347,22 @@ static int imxrt_irqinfo(int irq, uintptr_t *regaddr, 
uint32_t *bit,
       else
 #endif
 #if IMXRT_IRQ_NEXTINT > 192
-      if (extint < 219)
+      if (extint < 224)
         {
           *regaddr = (NVIC_IRQ192_223_ENABLE + offset);
           *bit = 1 << (extint - 192);
         }
       else
 #endif
-#if IMXRT_IRQ_NEXTINT > 218
+#if IMXRT_IRQ_NEXTINT > 224
+      if (extint < 240)
+        {
+          *regaddr = (NVIC_IRQ224_239_ENABLE + offset);
+          *bit     = 1 << (extint - 224);
+        }
+      else
+#endif
+#if IMXRT_IRQ_NEXTINT > 240
 #  error Missing logic
 #endif
         {

Reply via email to