xref: /linux/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.yaml (revision 6af91e3d2cfc8bb579b1aa2d22cd91f8c34acdf6)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/interrupt-controller/st,stm32-exti.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: STM32 External Interrupt Controller
8
9maintainers:
10  - Alexandre Torgue <alexandre.torgue@foss.st.com>
11  - Ludovic Barre <ludovic.barre@foss.st.com>
12
13properties:
14  compatible:
15    oneOf:
16      - items:
17          - enum:
18              - st,stm32-exti
19              - st,stm32h7-exti
20      - items:
21          - enum:
22              - st,stm32mp1-exti
23              - st,stm32mp13-exti
24          - const: syscon
25
26  "#interrupt-cells":
27    const: 2
28
29  reg:
30    maxItems: 1
31
32  interrupt-controller: true
33
34  hwlocks:
35    maxItems: 1
36    description:
37      Reference to a phandle of a hardware spinlock provider node.
38
39  interrupts:
40    minItems: 1
41    maxItems: 96
42    description:
43      Interrupts references to primary interrupt controller
44
45required:
46  - "#interrupt-cells"
47  - compatible
48  - reg
49  - interrupt-controller
50
51allOf:
52  - $ref: /schemas/interrupt-controller.yaml#
53  - if:
54      properties:
55        compatible:
56          contains:
57            enum:
58              - st,stm32-exti
59    then:
60      properties:
61        interrupts:
62          minItems: 1
63          maxItems: 32
64      required:
65        - interrupts
66  - if:
67      properties:
68        compatible:
69          contains:
70            enum:
71              - st,stm32h7-exti
72    then:
73      properties:
74        interrupts:
75          minItems: 1
76          maxItems: 96
77      required:
78        - interrupts
79
80additionalProperties: false
81
82examples:
83  - |
84    //Example 1
85    exti1: interrupt-controller@5000d000 {
86        compatible = "st,stm32mp1-exti", "syscon";
87        interrupt-controller;
88        #interrupt-cells = <2>;
89        reg = <0x5000d000 0x400>;
90    };
91
92  - |
93    //Example 2
94    #include <dt-bindings/interrupt-controller/arm-gic.h>
95    exti2: interrupt-controller@5000d000 {
96        compatible = "st,stm32mp1-exti", "syscon";
97        interrupt-controller;
98        #interrupt-cells = <2>;
99        reg = <0x5000d000 0x400>;
100        interrupts-extended =
101            <&intc GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
102            <0>,
103            <&intc GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
104    };
105
106  - |
107    //Example 3
108    exti3: interrupt-controller@40013c00 {
109        compatible = "st,stm32-exti";
110        interrupt-controller;
111        #interrupt-cells = <2>;
112        reg = <0x40013C00 0x400>;
113        interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
114    };
115
116...
117