openwrt/target/linux/layerscape/patches-5.4/901-fix_irq_type_of_pca953x...

29 lines
1.0 KiB
Diff

From 12de4b5e7cbcd193d5abb753ca511fe8f2236846 Mon Sep 17 00:00:00 2001
From: Pawel Dembicki <paweldembicki@gmail.com>
Date: Fri, 13 Nov 2020 07:30:03 +0100
Subject: [PATCH 1/1] gpio-pca953x: hack: Allow to use falling trigger
Gpio-mpc8xxx driver of Layerscape gpio support only edge interrupts.
Gpio-pca953x allow only low state trigger. This hack fix the problem.
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
---
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -881,10 +881,12 @@ static int pca953x_irq_setup(struct pca9
for (i = 0; i < NBANK(chip); i++)
chip->irq_stat[i] &= reg_direction[i];
mutex_init(&chip->irq_lock);
-
+ /* gpio-mpc8xxx driver of Layerscape gpio support only edge interrupts.
+ * This hack fix the problem.
+ */
ret = devm_request_threaded_irq(&client->dev, client->irq,
NULL, pca953x_irq_handler,
- IRQF_TRIGGER_LOW | IRQF_ONESHOT |
+ IRQF_TRIGGER_FALLING | IRQF_ONESHOT |
IRQF_SHARED,
dev_name(&client->dev), chip);
if (ret) {