pinctrl: cy8c95x0: Respect IRQ trigger settings from firmware
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 17 Jan 2025 14:21:45 +0000 (16:21 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 3 Feb 2025 20:51:35 +0000 (21:51 +0100)
Some of the platforms may connect the INT pin via inversion logic
effectively make the triggering to be active-low.
Remove explicit trigger flag to respect the settings from firmware.

Without this change even idling chip produces spurious interrupts
and kernel disables the line in the result:

  irq 33: nobody cared (try booting with the "irqpoll" option)
  CPU: 0 UID: 0 PID: 125 Comm: irq/33-i2c-INT3 Not tainted 6.12.0-00236-g8b874ed11dae #64
  Hardware name: Intel Corp. QUARK/Galileo, BIOS 0x01000900 01/01/2014
  ...
  handlers:
  [<86e86bea>] irq_default_primary_handler threaded [<d153e44a>] cy8c95x0_irq_handler [pinctrl_cy8c95x0]
  Disabling IRQ #33

Fixes: e6cbbe42944d ("pinctrl: Add Cypress cy8c95x0 support")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/20250117142304.596106-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-cy8c95x0.c

index 75100a9fb8e4cee80372d3bb08233528c587bb12..d73004b4a45e701aa21af3b81a5eb7d128bd308b 100644 (file)
@@ -1355,7 +1355,7 @@ static int cy8c95x0_irq_setup(struct cy8c95x0_pinctrl *chip, int irq)
 
        ret = devm_request_threaded_irq(chip->dev, irq,
                                        NULL, cy8c95x0_irq_handler,
-                                       IRQF_ONESHOT | IRQF_SHARED | IRQF_TRIGGER_HIGH,
+                                       IRQF_ONESHOT | IRQF_SHARED,
                                        dev_name(chip->dev), chip);
        if (ret) {
                dev_err(chip->dev, "failed to request irq %d\n", irq);