On Wed, Apr 4, 2018 at 10:00 PM, H. Nikolaus Schaller <hns@xxxxxxxxxxxxx> wrote: > in driver code. Therefore, the pca953x driver rejects the > setup of the irq because it can only handle EDGE interrupts > so far. > > This hack translates level interrupts to edge interrupts > for the pca953x chips. This is enough for initial testing, > but not a good solution since interrupts may be lost. > > If for example the connected chip requests a IRQ_TYPE_LEVEL_LOW > this may have the reason that there may be multiple different > interrupt sources in the chip - wired-or together to the > input of the pca953x. Now if we do edge detecion only, > the first interrupt will generate an EDGE_FALLING, but a > second one won't ever if the first interrupt wasn't already > processed. > > IMHO a better solution would be to make the pca953x interrupt > handler check if the irq input is still in the active > level and run the device specific handler again. What I thought about is to enable such exclusively for "L" variants of the chips and check latched values. -- With Best Regards, Andy Shevchenko -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html