162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/interrupt-controller/st,stm32-exti.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: STM32 External Interrupt Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Alexandre Torgue <alexandre.torgue@foss.st.com>
1162306a36Sopenharmony_ci  - Ludovic Barre <ludovic.barre@foss.st.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciproperties:
1462306a36Sopenharmony_ci  compatible:
1562306a36Sopenharmony_ci    oneOf:
1662306a36Sopenharmony_ci      - items:
1762306a36Sopenharmony_ci          - enum:
1862306a36Sopenharmony_ci              - st,stm32-exti
1962306a36Sopenharmony_ci              - st,stm32h7-exti
2062306a36Sopenharmony_ci      - items:
2162306a36Sopenharmony_ci          - enum:
2262306a36Sopenharmony_ci              - st,stm32mp1-exti
2362306a36Sopenharmony_ci              - st,stm32mp13-exti
2462306a36Sopenharmony_ci          - const: syscon
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  "#interrupt-cells":
2762306a36Sopenharmony_ci    const: 2
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  reg:
3062306a36Sopenharmony_ci    maxItems: 1
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  interrupt-controller: true
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  hwlocks:
3562306a36Sopenharmony_ci    maxItems: 1
3662306a36Sopenharmony_ci    description:
3762306a36Sopenharmony_ci      Reference to a phandle of a hardware spinlock provider node.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  interrupts:
4062306a36Sopenharmony_ci    minItems: 1
4162306a36Sopenharmony_ci    maxItems: 96
4262306a36Sopenharmony_ci    description:
4362306a36Sopenharmony_ci      Interrupts references to primary interrupt controller
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cirequired:
4662306a36Sopenharmony_ci  - "#interrupt-cells"
4762306a36Sopenharmony_ci  - compatible
4862306a36Sopenharmony_ci  - reg
4962306a36Sopenharmony_ci  - interrupt-controller
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciallOf:
5262306a36Sopenharmony_ci  - $ref: /schemas/interrupt-controller.yaml#
5362306a36Sopenharmony_ci  - if:
5462306a36Sopenharmony_ci      properties:
5562306a36Sopenharmony_ci        compatible:
5662306a36Sopenharmony_ci          contains:
5762306a36Sopenharmony_ci            enum:
5862306a36Sopenharmony_ci              - st,stm32-exti
5962306a36Sopenharmony_ci    then:
6062306a36Sopenharmony_ci      properties:
6162306a36Sopenharmony_ci        interrupts:
6262306a36Sopenharmony_ci          minItems: 1
6362306a36Sopenharmony_ci          maxItems: 32
6462306a36Sopenharmony_ci      required:
6562306a36Sopenharmony_ci        - interrupts
6662306a36Sopenharmony_ci  - if:
6762306a36Sopenharmony_ci      properties:
6862306a36Sopenharmony_ci        compatible:
6962306a36Sopenharmony_ci          contains:
7062306a36Sopenharmony_ci            enum:
7162306a36Sopenharmony_ci              - st,stm32h7-exti
7262306a36Sopenharmony_ci    then:
7362306a36Sopenharmony_ci      properties:
7462306a36Sopenharmony_ci        interrupts:
7562306a36Sopenharmony_ci          minItems: 1
7662306a36Sopenharmony_ci          maxItems: 96
7762306a36Sopenharmony_ci      required:
7862306a36Sopenharmony_ci        - interrupts
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciadditionalProperties: false
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciexamples:
8362306a36Sopenharmony_ci  - |
8462306a36Sopenharmony_ci    //Example 1
8562306a36Sopenharmony_ci    exti1: interrupt-controller@5000d000 {
8662306a36Sopenharmony_ci        compatible = "st,stm32mp1-exti", "syscon";
8762306a36Sopenharmony_ci        interrupt-controller;
8862306a36Sopenharmony_ci        #interrupt-cells = <2>;
8962306a36Sopenharmony_ci        reg = <0x5000d000 0x400>;
9062306a36Sopenharmony_ci    };
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci    //Example 2
9362306a36Sopenharmony_ci    exti2: interrupt-controller@40013c00 {
9462306a36Sopenharmony_ci        compatible = "st,stm32-exti";
9562306a36Sopenharmony_ci        interrupt-controller;
9662306a36Sopenharmony_ci        #interrupt-cells = <2>;
9762306a36Sopenharmony_ci        reg = <0x40013C00 0x400>;
9862306a36Sopenharmony_ci        interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
9962306a36Sopenharmony_ci    };
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci...
102