Re: [PATCH v2 1/5] dt-bindings: interrupt-controller: Update STM32 EXTI interrupt controller

From: Alexandre TORGUE
Date: Tue Jan 04 2022 - 12:14:49 EST


Hi Marc

On 12/20/21 1:34 PM, Marc Zyngier wrote:
On Fri, 17 Dec 2021 13:39:11 +0000,
Alexandre TORGUE <alexandre.torgue@xxxxxxxxxxx> wrote:

On 12/16/21 9:15 PM, Rob Herring wrote:
On Wed, Dec 15, 2021 at 11:58:43AM +0100, Alexandre Torgue wrote:
Document new entry "st,exti-mapping" which links EXTI lines with GIC
interrupt lines and add an include file to define EXTI interrupt type.

Signed-off-by: Alexandre Torgue <alexandre.torgue@xxxxxxxxxxx>

diff --git a/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.yaml b/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.yaml
index d19c881b4abc..e08bb51e97a8 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.yaml
@@ -41,6 +41,17 @@ properties:
description:
Interrupts references to primary interrupt controller
+ st,exti-mapping:
+ $ref: "/schemas/types.yaml#/definitions/uint32-matrix"
+ description: |
+ Define mapping between EXTI lines and GIC irq lines. Should be:
+ st,exti-mapping = <EXTI_LINE GIC_IRQ EXTI_TYPE>, ...;
+ With:
+ - EXTI_LINE: EXTI line number.
+ - GIC_IRQ: GIC IRQ associated to the EXTI line.
+ - EXTI_TYPE: STM32_EXTI_TYPE_CONFIGURABLE or STM32_EXTI_TYPE_DIRECT.
+ Defined in include/dt-bindings/interrupt-controller/stm32-exti.h

No custom properties for this. See[1][2][3].


Thanks for inputs. In my case the mapping consists to map an EXTI line
with a GIC irq line which could be done using interrupt-map (avoiding
to parse it in my driver).

The problem is that 'interrupt-map' defines an interrupt mapping
between an input and an output, and that mentioning the GIC in such a
table will only result in your EXTI to be bypassed.

'interrupt-map' really is a dispatch table for targeting an interrupt
controller (or multiple controllers, even), but really isn't the
correct tool to carry configuration informations to an interrupt
controller driver.

Ok so let's forget "interrupt-map"

But for each EXTI/GIC association I would
like also to describe the EXTI_TYPE (which actually describe the well
irqchip to use inside my exti driver) . This property is not generic
and so I assume I can't use a generic binding such "interrupt-map".

If the solution consists to use a common binding (i.e. interrupt-map)
plus a conversion table in exti driver to affect the well irq_chip to
the well EXTI line then we could envisage to keep the whole mapping
inside the driver (even if it's not the best solution).

A possible solution would be to have:

- A set of standard 'interrupts' properties describing the output
signals

- A set of properties describing the input to output mapping (if
relevant) and additional configuration information that for the
interrupt controller driver.

Does it means to have my own description of "interrupt" property using xlate function in EXTI driver ?

something like that:

interrupt = <GIC_SPI 6 EXTI_LINE EXTI_TYPE>, ...

regards
Alex

M.