[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