Re: [PATCH v2] nfc: nxp-nci: remove interrupt trigger type

From: Carl Lee

Date: Wed Mar 11 2026 - 05:59:29 EST


On Mon, Mar 09, 2026 at 07:13:18PM +0100, Luca Stefani wrote:
>
> On 05/02/2026 12:11, Carl Lee wrote:
> > For NXP NCI devices (e.g. PN7150), the interrupt is level-triggered and
> > active high, not edge-triggered.
> >
> > Using IRQF_TRIGGER_RISING in the driver can cause interrupts to fail
> > to trigger correctly.
> >
> > Remove IRQF_TRIGGER_RISING and rely on the IRQ trigger type configured
> > via Device Tree.
> >
> > Signed-off-by: Carl Lee <carl.lee@xxxxxxx>
> > ---
> > This v2 of the series includes Krzysztof Kozlowski in the review list
> > for NXP-NCI NFC.
> >
> > This series removes IRQF_TRIGGER_RISING in nxp-nci driver,
> > relying on the IRQ trigger type specified via Device Tree.
> > ---
> > Changes in v2:
> > - Include Krzysztof Kozlowski in the review list for NXP-NCI NFC.
> > - Link to v1: https://lore.kernel.org/r/20260204-fc-nxp-nci-remove-interrupt-trigger-type-v1-1-3bde91593173@xxxxxxx
> > ---
> > drivers/nfc/nxp-nci/i2c.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c
> > index 049662ffdf97..6a5ce8ff91f0 100644
> > --- a/drivers/nfc/nxp-nci/i2c.c
> > +++ b/drivers/nfc/nxp-nci/i2c.c
> > @@ -305,7 +305,7 @@ static int nxp_nci_i2c_probe(struct i2c_client *client)
> > r = request_threaded_irq(client->irq, NULL,
> > nxp_nci_i2c_irq_thread_fn,
> > - IRQF_TRIGGER_RISING | IRQF_ONESHOT,
> > + IRQF_ONESHOT,
>
> This is causing an IRQ storm on my ACPI device that eats away a core of my
> cpu...
>
> I'm not sure how this should be fixed but by looking at other drivers they
> all use irq_get_trigger_type() and then apply extra bits on top.
>
> If there's no clear path that handles both ACPI+DT I'll upload a revert.
>

Thanks for the report.

I’ve sent a follow-up patch series that restores a fallback to the
historically used rising-edge trigger when the firmware does not provide
a trigger type. This should prevent the IRQ storm on ACPI platforms
while keeping proper behavior on DT-based systems.

Patch series link: https://lore.kernel.org/all/20260311-nfc-nxp-nci-i2c-restore-irq-trigger-fallback-v1-1-9e20714411d7@xxxxxxx/

> > NXP_NCI_I2C_DRIVER_NAME, phy);
> > if (r < 0)
> > nfc_err(&client->dev, "Unable to register IRQ handler\n");
> >
> > ---
> > base-commit: 4c87cdd0328495759f6e9f9f4e1e53ef8032a76f
> > change-id: 20260204-fc-nxp-nci-remove-interrupt-trigger-type-d778323b3b81
> >
> > Best regards,