[Linux-stm32] STM32MP1 level triggered interrupts

Alexandre Torgue alexandre.torgue at st.com
Tue Jan 21 17:12:49 UTC 2020


Hi Marek,

On 1/20/20 7:32 PM, Marek Vasut wrote:
> Hi,
> 
> I have a device connected to STM32MP157C which requires active-low
> level-triggered interrupt sink. The device interrupt line is connected
> to the SoC gpio-C bank, which has it's interrupt line routed into EXTI,
> which can only handle edge triggered interrupts to my understanding.

correct.

> 
> However, ARM GIC should be able to do both and EXTI has this irqmux /
> EXTImux functionality, which -- if my understanding is correct -- is
> capable of routing a select GPIO line directly into the GIC as an EXTIn
> interrupt signal. Thus, this might permit handling active low
> level-triggered interrupts. Is there some DT binding to configure this yet ?
> 
> Or is there some other, better, way ?
> 

For SPIs, GIC controller handles rising edge triggered interrupt and 
active high level-sensitive. GIC integration in STM32MP157c makes that 
only active high level-sensitive configuration for SPI interrupts is 
supported.

Concerning, your question:

Setting your gpioC interruption as "falling edge" should be enough. On 
gpioCx falling edge, a high-level signal is generated by exti and sent 
to GIC (which triggers GIC interrupt). This signal remains high until 
stm32_irq_ack is called.

So you only need: (ex for gpioc 1).

interrupt-parent = <&gpioc>;
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;


regards
Alex





More information about the Linux-stm32 mailing list