Thread (6 messages) 6 messages, 6 authors, 28d ago

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,
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help