On Sun, Feb 21, 2021 at 12:11:44AM +0100, Marek BehĂșn wrote:
Use the `marvell,reg-init` DT property to configure the LED[2]/INTn pin of the Marvell 88E1514 ethernet PHY on Turris Omnia into interrupt mode.
Without this the pin is by default in LED[2] mode, and the Marvell PHY driver configures LED[2] into "On - Link, Blink - Activity" mode.
This fixes the issue where the pca9538 GPIO/interrupt controller (which can't mask interrupts in HW) received too many interrupts and after a time started ignoring the interrupt with error message: IRQ 71: nobody cared
Hi Marek
The pca9538 and alike are a poor choice for interrupts. As you said, you cannot mask interrupts, and input are interrupt sources.
With this change, does it actually work reliably? It looks like all the inputs you have support polling. And because this devices is so unreliable with interrupts, interrupt support is mostly not built. I would not expect a distribution kernel to enable interrupt support for this driver. Does all the code correctly fall back to polling when interrupts are not available?
So although the patch looks O.K, i'm just wonder if it is worth it, or the better fix is to remove the interrupt configuration from the pca9538 node.
Andrew