xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/st,stm32-exti.yaml (revision c7046f76c2c027b00c0e6ba57cfd28f1a78f5e23)
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@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    //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...
102