Yes, it looks like imx6/irq.h was originally put together for i.MX
6Quad, but IRQ definitions change based on what i.MX6 device variant
(6SoloLite, 6Solo/6DualLite, 6Dual/6Quad) you are building for. Digging
through IMX6SLRM(page 141), IMX6DLRM(page 219), and IMX6DQRM(page 49)
show the same IRQ number can be reserved, or used for two different
devices (e.g. IRQ67 is reserved on 6SoloLite, I2C4 on 6Solo/6DualLite,
and ECSPI5 on 6Dual/6Quad). As a result a common IRQ definition is
insufficient. I'm putting together a PR to use CONFIG_ARCH_CHIP_IMX6_6*
to selectively define (or reserve) IRQ numbers based on how the
interrupts are connected as specified in the TRMs. This change affects
definitions for IRQ numbers 35, 37-38, 40, 41, 43, 44-45, 47-50, 67, 71,
73, 82-83, 85, 108-111, 128, 129-130, 137-138, 141, 142-143, 146, and
147-158.
On 4/8/26 02:37, Maarten Zanders wrote:
Hi,
It seems that these definitions were taken from the imx6q reference
manual (or compatible derivative). The interrupt table there has three
columns: irq number, source (module/ip block) and
description(/function). Some sources have more than one interrupt line.
The definition in Nuttx uses only the source of the irq, not the
function. The description from the table went into the comment. So
instead of removing definitions, they should be extended with the info
from the comments to distinguish between them.
Note that this file is called imx6/irq.h but is not valid for all
devices in the imx6 line. It probably started with the first popular
one in the family (imx6q), but later additions (like imx6ul) have
different irq assignments.
You can create an account on the NXP website to download the reference
manuals.
Cheers,
Maarten
Op di 7 apr 2026 21:30 schreef Peter Barada <[email protected]>:
Looking through nuttx/arch/arm/include/imx.h, I see the following
symbols definitions that cause redefinition warnings:
#define IMX_IRQ_VPU 35 /* JPEG codec interrupt
request */
#define IMX_IRQ_VPU 44 /* VPU interrupt request */
...
#define IMX_IRQ_IPU2 39 /* IPU2 error interrupt
request */
#define IMX_IRQ_IPU2 40 /* IPU2 sync interrupt request */
...
#define IMX_IRQ_SNVS 36 /* PMIC power off request */
#define IMX_IRQ_SNVS 51 /* SRTC consolidated interrupt */
#define IMX_IRQ_SNVS 52 /* SRTC security interrupt */
Which single definitions should be removed, 35 for IMX_IRQ_VPU, 39
for
IMX_IRQ_IPU2, 36&51 for IMX_IRQ_SNVS?
--
Peter Barada
[email protected]
--
Peter Barada
[email protected]