1b9da2fccSAlexandre Torgue# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b9da2fccSAlexandre Torgue%YAML 1.2
3b9da2fccSAlexandre Torgue---
4b9da2fccSAlexandre Torgue$id: http://devicetree.org/schemas/interrupt-controller/st,stm32-exti.yaml#
5b9da2fccSAlexandre Torgue$schema: http://devicetree.org/meta-schemas/core.yaml#
6b9da2fccSAlexandre Torgue
7*dd3cb467SAndrew Lunntitle: STM32 External Interrupt Controller
8b9da2fccSAlexandre Torgue
9b9da2fccSAlexandre Torguemaintainers:
10f4eedebdSPatrice Chotard  - Alexandre Torgue <alexandre.torgue@foss.st.com>
11f4eedebdSPatrice Chotard  - Ludovic Barre <ludovic.barre@foss.st.com>
12b9da2fccSAlexandre Torgue
13b9da2fccSAlexandre Torgueproperties:
14b9da2fccSAlexandre Torgue  compatible:
15b9da2fccSAlexandre Torgue    oneOf:
16b9da2fccSAlexandre Torgue      - items:
17b9da2fccSAlexandre Torgue          - enum:
18b9da2fccSAlexandre Torgue              - st,stm32-exti
19b9da2fccSAlexandre Torgue              - st,stm32h7-exti
20b9da2fccSAlexandre Torgue      - items:
21b9da2fccSAlexandre Torgue          - enum:
22b9da2fccSAlexandre Torgue              - st,stm32mp1-exti
23d3350929SAlexandre Torgue              - st,stm32mp13-exti
24b9da2fccSAlexandre Torgue          - const: syscon
25b9da2fccSAlexandre Torgue
26b9da2fccSAlexandre Torgue  "#interrupt-cells":
27b9da2fccSAlexandre Torgue    const: 2
28b9da2fccSAlexandre Torgue
29b9da2fccSAlexandre Torgue  reg:
30b9da2fccSAlexandre Torgue    maxItems: 1
31b9da2fccSAlexandre Torgue
32b9da2fccSAlexandre Torgue  interrupt-controller: true
33b9da2fccSAlexandre Torgue
34b9da2fccSAlexandre Torgue  hwlocks:
35b9da2fccSAlexandre Torgue    maxItems: 1
36b9da2fccSAlexandre Torgue    description:
37b9da2fccSAlexandre Torgue      Reference to a phandle of a hardware spinlock provider node.
38b9da2fccSAlexandre Torgue
39b9da2fccSAlexandre Torgue  interrupts:
400499220dSRob Herring    minItems: 1
410499220dSRob Herring    maxItems: 96
42b9da2fccSAlexandre Torgue    description:
43b9da2fccSAlexandre Torgue      Interrupts references to primary interrupt controller
44b9da2fccSAlexandre Torgue
45b9da2fccSAlexandre Torguerequired:
46b9da2fccSAlexandre Torgue  - "#interrupt-cells"
47b9da2fccSAlexandre Torgue  - compatible
48b9da2fccSAlexandre Torgue  - reg
49b9da2fccSAlexandre Torgue  - interrupt-controller
50b9da2fccSAlexandre Torgue
51b9da2fccSAlexandre TorgueallOf:
52b9da2fccSAlexandre Torgue  - $ref: /schemas/interrupt-controller.yaml#
53b9da2fccSAlexandre Torgue  - if:
54b9da2fccSAlexandre Torgue      properties:
55b9da2fccSAlexandre Torgue        compatible:
56b9da2fccSAlexandre Torgue          contains:
57b9da2fccSAlexandre Torgue            enum:
58b9da2fccSAlexandre Torgue              - st,stm32-exti
59b9da2fccSAlexandre Torgue    then:
60b9da2fccSAlexandre Torgue      properties:
61b9da2fccSAlexandre Torgue        interrupts:
62b9da2fccSAlexandre Torgue          minItems: 1
63b9da2fccSAlexandre Torgue          maxItems: 32
64b9da2fccSAlexandre Torgue      required:
65b9da2fccSAlexandre Torgue        - interrupts
66b9da2fccSAlexandre Torgue  - if:
67b9da2fccSAlexandre Torgue      properties:
68b9da2fccSAlexandre Torgue        compatible:
69b9da2fccSAlexandre Torgue          contains:
70b9da2fccSAlexandre Torgue            enum:
71b9da2fccSAlexandre Torgue              - st,stm32h7-exti
72b9da2fccSAlexandre Torgue    then:
73b9da2fccSAlexandre Torgue      properties:
74b9da2fccSAlexandre Torgue        interrupts:
75b9da2fccSAlexandre Torgue          minItems: 1
76b9da2fccSAlexandre Torgue          maxItems: 96
77b9da2fccSAlexandre Torgue      required:
78b9da2fccSAlexandre Torgue        - interrupts
79b9da2fccSAlexandre Torgue
80b9da2fccSAlexandre TorgueadditionalProperties: false
81b9da2fccSAlexandre Torgue
82b9da2fccSAlexandre Torgueexamples:
83b9da2fccSAlexandre Torgue  - |
84b9da2fccSAlexandre Torgue    //Example 1
85b9da2fccSAlexandre Torgue    exti1: interrupt-controller@5000d000 {
86b9da2fccSAlexandre Torgue        compatible = "st,stm32mp1-exti", "syscon";
87b9da2fccSAlexandre Torgue        interrupt-controller;
88b9da2fccSAlexandre Torgue        #interrupt-cells = <2>;
89b9da2fccSAlexandre Torgue        reg = <0x5000d000 0x400>;
90b9da2fccSAlexandre Torgue    };
91b9da2fccSAlexandre Torgue
92b9da2fccSAlexandre Torgue    //Example 2
93b9da2fccSAlexandre Torgue    exti2: interrupt-controller@40013c00 {
94b9da2fccSAlexandre Torgue        compatible = "st,stm32-exti";
95b9da2fccSAlexandre Torgue        interrupt-controller;
96b9da2fccSAlexandre Torgue        #interrupt-cells = <2>;
97b9da2fccSAlexandre Torgue        reg = <0x40013C00 0x400>;
98b9da2fccSAlexandre Torgue        interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
99b9da2fccSAlexandre Torgue    };
100b9da2fccSAlexandre Torgue
101b9da2fccSAlexandre Torgue...
102