Re: [PATCH v2] nfc: nxp-nci: remove interrupt trigger type
From: Carl Lee <hidden>
Date: 2026-03-11 09:50:07
Also in:
lkml
On Mon, Mar 09, 2026 at 07:13:18PM +0100, Luca Stefani wrote:
On 05/02/2026 12:11, Carl Lee wrote:quoted
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 <redacted> --- 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@amd.com (local) --- 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@amd.com/ (local)
quoted
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,