[Letux-kernel] Dual-edge GPIO IRQs (Re: SMP issue between LX16 and LX20 found...)
Paul Boddie
paul at boddie.org.uk
Sun Jun 15 19:36:12 CEST 2025
On Sunday, 15 June 2025 18:53:34 CEST Paul Boddie wrote:
>
> Checking the GPIO registers would confirm whether the IRQs are
> misconfigured. I have tried to modify your jzgpio script to work with the
> X2000, complicated by the UART misbehaving again. This does seem to suggest
> that the GPIOs are indeed set to dual-edge triggering, which is a pretty
> bad default.
Looking more closely at the output and checking with the device tree, it seems
that the PE31 pin is set to being an IRQ pin with active level low and is not
dual-edge triggered. So, it looks like the pinctrl configuration is working,
and I suppose it doesn't really matter if the default is dual-edge triggering
if the pins are not configured for IRQs.
Thinking a bit more about it, shouldn't WKUP actually have an interrupt
associated with it using IRQ_TYPE_EDGE_FALLING? Maybe something like this:
interrupt-parent = <&gpe>;
interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
irq-gpios = <&gpe 31 GPIO_ACTIVE_HIGH>;
See: arch/mips/boot/dts/ingenic/halley5.dts
Paul
More information about the Letux-kernel
mailing list