xref: /linux/Documentation/devicetree/bindings/interrupt-controller/st,stm32-exti.yaml (revision 02680c23d7b3febe45ea3d4f9818c2b2dc89020a)
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 Device Tree Bindings
8
9maintainers:
10  - Alexandre Torgue <alexandre.torgue@st.com>
11  - Ludovic Barre <ludovic.barre@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          - const: syscon
24
25  "#interrupt-cells":
26    const: 2
27
28  reg:
29    maxItems: 1
30
31  interrupt-controller: true
32
33  hwlocks:
34    maxItems: 1
35    description:
36      Reference to a phandle of a hardware spinlock provider node.
37
38  interrupts:
39    minItems: 1
40    maxItems: 96
41    description:
42      Interrupts references to primary interrupt controller
43
44required:
45  - "#interrupt-cells"
46  - compatible
47  - reg
48  - interrupt-controller
49
50allOf:
51  - $ref: /schemas/interrupt-controller.yaml#
52  - if:
53      properties:
54        compatible:
55          contains:
56            enum:
57              - st,stm32-exti
58    then:
59      properties:
60        interrupts:
61          minItems: 1
62          maxItems: 32
63      required:
64        - interrupts
65  - if:
66      properties:
67        compatible:
68          contains:
69            enum:
70              - st,stm32h7-exti
71    then:
72      properties:
73        interrupts:
74          minItems: 1
75          maxItems: 96
76      required:
77        - interrupts
78
79additionalProperties: false
80
81examples:
82  - |
83    //Example 1
84    exti1: interrupt-controller@5000d000 {
85        compatible = "st,stm32mp1-exti", "syscon";
86        interrupt-controller;
87        #interrupt-cells = <2>;
88        reg = <0x5000d000 0x400>;
89    };
90
91    //Example 2
92    exti2: interrupt-controller@40013c00 {
93        compatible = "st,stm32-exti";
94        interrupt-controller;
95        #interrupt-cells = <2>;
96        reg = <0x40013C00 0x400>;
97        interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
98    };
99
100...
101