mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

The mapping of EXTI events to its parent interrupt controller is both SoC and instance dependent. The current implementation requires adding a new mapping table to the driver's code and a new compatible for each new EXTI instance. To avoid that use the interrupts-extended property to list, for each EXTI event, the associated parent interrupt. Co-developed-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com> Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com> Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://lore.kernel.org/r/20240415134926.1254428-3-antonio.borneo@foss.st.com
116 lines
2.5 KiB
YAML
116 lines
2.5 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/interrupt-controller/st,stm32-exti.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: STM32 External Interrupt Controller
|
|
|
|
maintainers:
|
|
- Alexandre Torgue <alexandre.torgue@foss.st.com>
|
|
- Ludovic Barre <ludovic.barre@foss.st.com>
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- items:
|
|
- enum:
|
|
- st,stm32-exti
|
|
- st,stm32h7-exti
|
|
- items:
|
|
- enum:
|
|
- st,stm32mp1-exti
|
|
- st,stm32mp13-exti
|
|
- const: syscon
|
|
|
|
"#interrupt-cells":
|
|
const: 2
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupt-controller: true
|
|
|
|
hwlocks:
|
|
maxItems: 1
|
|
description:
|
|
Reference to a phandle of a hardware spinlock provider node.
|
|
|
|
interrupts:
|
|
minItems: 1
|
|
maxItems: 96
|
|
description:
|
|
Interrupts references to primary interrupt controller
|
|
|
|
required:
|
|
- "#interrupt-cells"
|
|
- compatible
|
|
- reg
|
|
- interrupt-controller
|
|
|
|
allOf:
|
|
- $ref: /schemas/interrupt-controller.yaml#
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- st,stm32-exti
|
|
then:
|
|
properties:
|
|
interrupts:
|
|
minItems: 1
|
|
maxItems: 32
|
|
required:
|
|
- interrupts
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- st,stm32h7-exti
|
|
then:
|
|
properties:
|
|
interrupts:
|
|
minItems: 1
|
|
maxItems: 96
|
|
required:
|
|
- interrupts
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
//Example 1
|
|
exti1: interrupt-controller@5000d000 {
|
|
compatible = "st,stm32mp1-exti", "syscon";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
reg = <0x5000d000 0x400>;
|
|
};
|
|
|
|
- |
|
|
//Example 2
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
exti2: interrupt-controller@5000d000 {
|
|
compatible = "st,stm32mp1-exti", "syscon";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
reg = <0x5000d000 0x400>;
|
|
interrupts-extended =
|
|
<&intc GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
|
|
<0>,
|
|
<&intc GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
|
|
};
|
|
|
|
- |
|
|
//Example 3
|
|
exti3: interrupt-controller@40013c00 {
|
|
compatible = "st,stm32-exti";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
reg = <0x40013C00 0x400>;
|
|
interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
|
|
};
|
|
|
|
...
|