The datasheet specifies, that the IRQ_B pin is pulled low when any unmasked interrupt bit status is changed, and it is released high once the application processor reads the INT1 register. As it specifies a level-low behavior, it should not force a falling-edge interrupt. Remove the IRQF_TRIGGER_FALLING to not force the falling-edge interrupt and instead rely on the flag from the device tree.
Unified · Split
| @@ -809,7 +809,7 @@ static int pf9453_i2c_probe(struct i2c_client *i2c) · 808 unmodified lines | |||
| 809 | } | 809 | } |
| 810 | 810 | ||
| 811 | ret = devm_request_threaded_irq(pf9453->dev, pf9453->irq, NULL, pf9453_irq_handler, | 811 | ret = devm_request_threaded_irq(pf9453->dev, pf9453->irq, NULL, pf9453_irq_handler, |
| 812 | (IRQF_TRIGGER_FALLING | IRQF_ONESHOT), | 812 | IRQF_ONESHOT, |
| 813 | "pf9453-irq", pf9453); | 813 | "pf9453-irq", pf9453); |
| 814 | if (ret) | 814 | if (ret) |
| 815 | return dev_err_probe(pf9453->dev, ret, "Failed to request IRQ: %d\n", pf9453->irq); | 815 | return dev_err_probe(pf9453->dev, ret, "Failed to request IRQ: %d\n", pf9453->irq); |