GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / interrupt-controller / st,stm32-exti.yaml
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
7 title: STM32 External Interrupt Controller
8
9 maintainers:
10   - Alexandre Torgue <alexandre.torgue@foss.st.com>
11   - Ludovic Barre <ludovic.barre@foss.st.com>
12
13 properties:
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
45 required:
46   - "#interrupt-cells"
47   - compatible
48   - reg
49   - interrupt-controller
50
51 allOf:
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
80 additionalProperties: false
81
82 examples:
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     //Example 2
93     exti2: interrupt-controller@40013c00 {
94         compatible = "st,stm32-exti";
95         interrupt-controller;
96         #interrupt-cells = <2>;
97         reg = <0x40013C00 0x400>;
98         interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
99     };
100
101 ...