mfd: sec-irq: Do not enforce (incorrect) interrupt trigger type
authorKrzysztof Kozlowski <krzk@kernel.org>
Wed, 2 Jun 2021 11:04:42 +0000 (13:04 +0200)
committerLee Jones <lee.jones@linaro.org>
Fri, 5 Nov 2021 14:40:06 +0000 (14:40 +0000)
Interrupt line can be configured on different hardware in different way,
even inverted.  Therefore driver should not enforce specific trigger
type - edge falling - but instead rely on Devicetree to configure it.

The Samsung PMIC drivers are used only on Devicetree boards.

Additionally, the PMIC datasheets describe the interrupt line as active
low with a requirement of acknowledge from the CPU therefore the edge
falling is not correct.

Marek Szyprowski reports that together with DTS change (proper level in
DTS) it fixes RTC alarm failure that he observed from time to time on
TM2e board.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20210602110445.33536-1-krzysztof.kozlowski@canonical.com
drivers/mfd/sec-irq.c

index e473c2fb42d5e8d43a50bddcc825c4cf5988b249..f5f59fdc72fec6ffa5fabd8e3e8e7fd646aec895 100644 (file)
@@ -479,8 +479,7 @@ int sec_irq_init(struct sec_pmic_dev *sec_pmic)
        }
 
        ret = devm_regmap_add_irq_chip(sec_pmic->dev, sec_pmic->regmap_pmic,
-                                      sec_pmic->irq,
-                                      IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
+                                      sec_pmic->irq, IRQF_ONESHOT,
                                       0, sec_irq_chip, &sec_pmic->irq_data);
        if (ret != 0) {
                dev_err(sec_pmic->dev, "Failed to register IRQ chip: %d\n", ret);