xref: /linux/Documentation/devicetree/bindings/interrupt-controller/atmel,aic.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
1aaef9cdcSDharma Balasubiramani# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2aaef9cdcSDharma Balasubiramani%YAML 1.2
3aaef9cdcSDharma Balasubiramani---
4aaef9cdcSDharma Balasubiramani$id: http://devicetree.org/schemas/interrupt-controller/atmel,aic.yaml#
5aaef9cdcSDharma Balasubiramani$schema: http://devicetree.org/meta-schemas/core.yaml#
6aaef9cdcSDharma Balasubiramani
7aaef9cdcSDharma Balasubiramanititle: Advanced Interrupt Controller (AIC)
8aaef9cdcSDharma Balasubiramani
9aaef9cdcSDharma Balasubiramanimaintainers:
10aaef9cdcSDharma Balasubiramani  - Nicolas Ferre <nicolas.ferre@microchip.com>
11aaef9cdcSDharma Balasubiramani  - Dharma balasubiramani <dharma.b@microchip.com>
12aaef9cdcSDharma Balasubiramani
13aaef9cdcSDharma Balasubiramanidescription:
14aaef9cdcSDharma Balasubiramani  The Advanced Interrupt Controller (AIC) is an 8-level priority, individually
15aaef9cdcSDharma Balasubiramani  maskable, vectored interrupt controller providing handling of up to one
16aaef9cdcSDharma Balasubiramani  hundred and twenty-eight interrupt sources.
17aaef9cdcSDharma Balasubiramani
18aaef9cdcSDharma Balasubiramaniproperties:
19aaef9cdcSDharma Balasubiramani  compatible:
20aaef9cdcSDharma Balasubiramani    enum:
21aaef9cdcSDharma Balasubiramani      - atmel,at91rm9200-aic
22aaef9cdcSDharma Balasubiramani      - atmel,sama5d2-aic
23aaef9cdcSDharma Balasubiramani      - atmel,sama5d3-aic
24aaef9cdcSDharma Balasubiramani      - atmel,sama5d4-aic
25aaef9cdcSDharma Balasubiramani      - microchip,sam9x60-aic
26*5a5d6753SVarshini Rajendran      - microchip,sam9x7-aic
27aaef9cdcSDharma Balasubiramani
28aaef9cdcSDharma Balasubiramani  reg:
29aaef9cdcSDharma Balasubiramani    maxItems: 1
30aaef9cdcSDharma Balasubiramani
31aaef9cdcSDharma Balasubiramani  interrupt-controller: true
32aaef9cdcSDharma Balasubiramani
33aaef9cdcSDharma Balasubiramani  "#interrupt-cells":
34aaef9cdcSDharma Balasubiramani    const: 3
35aaef9cdcSDharma Balasubiramani    description: |
36aaef9cdcSDharma Balasubiramani      The 1st cell is the IRQ number (Peripheral IDentifier on datasheet).
37aaef9cdcSDharma Balasubiramani      The 2nd cell specifies flags:
38aaef9cdcSDharma Balasubiramani        bits[3:0] trigger type and level flags:
39aaef9cdcSDharma Balasubiramani          1 = low-to-high edge triggered.
40aaef9cdcSDharma Balasubiramani          2 = high-to-low edge triggered.
41aaef9cdcSDharma Balasubiramani          4 = active high level-sensitive.
42aaef9cdcSDharma Balasubiramani          8 = active low level-sensitive.
43aaef9cdcSDharma Balasubiramani        Valid combinations: 1, 2, 3, 4, 8.
44aaef9cdcSDharma Balasubiramani        Default for internal sources: 4 (active high).
45aaef9cdcSDharma Balasubiramani      The 3rd cell specifies irq priority from 0 (lowest) to 7 (highest).
46aaef9cdcSDharma Balasubiramani
47aaef9cdcSDharma Balasubiramani  interrupts:
48aaef9cdcSDharma Balasubiramani    maxItems: 1
49aaef9cdcSDharma Balasubiramani
50aaef9cdcSDharma Balasubiramani  atmel,external-irqs:
51aaef9cdcSDharma Balasubiramani    $ref: /schemas/types.yaml#/definitions/uint32-array
52aaef9cdcSDharma Balasubiramani    description: u32 array of external irqs.
53aaef9cdcSDharma Balasubiramani
54aaef9cdcSDharma BalasubiramaniallOf:
55aaef9cdcSDharma Balasubiramani  - $ref: /schemas/interrupt-controller.yaml#
56aaef9cdcSDharma Balasubiramani  - if:
57aaef9cdcSDharma Balasubiramani      properties:
58aaef9cdcSDharma Balasubiramani        compatible:
59aaef9cdcSDharma Balasubiramani          contains:
60aaef9cdcSDharma Balasubiramani            const: atmel,at91rm9200-aic
61aaef9cdcSDharma Balasubiramani    then:
62aaef9cdcSDharma Balasubiramani      properties:
63aaef9cdcSDharma Balasubiramani        atmel,external-irqs:
64aaef9cdcSDharma Balasubiramani          minItems: 1
65aaef9cdcSDharma Balasubiramani          maxItems: 7
66aaef9cdcSDharma Balasubiramani    else:
67aaef9cdcSDharma Balasubiramani      properties:
68aaef9cdcSDharma Balasubiramani        atmel,external-irqs:
69aaef9cdcSDharma Balasubiramani          minItems: 1
70aaef9cdcSDharma Balasubiramani          maxItems: 1
71aaef9cdcSDharma Balasubiramani
72aaef9cdcSDharma Balasubiramanirequired:
73aaef9cdcSDharma Balasubiramani  - compatible
74aaef9cdcSDharma Balasubiramani  - reg
75aaef9cdcSDharma Balasubiramani  - interrupt-controller
76aaef9cdcSDharma Balasubiramani  - "#interrupt-cells"
77aaef9cdcSDharma Balasubiramani  - atmel,external-irqs
78aaef9cdcSDharma Balasubiramani
79aaef9cdcSDharma BalasubiramaniunevaluatedProperties: false
80aaef9cdcSDharma Balasubiramani
81aaef9cdcSDharma Balasubiramaniexamples:
82aaef9cdcSDharma Balasubiramani  - |
83aaef9cdcSDharma Balasubiramani    interrupt-controller@fffff000 {
84aaef9cdcSDharma Balasubiramani      compatible = "atmel,at91rm9200-aic";
85aaef9cdcSDharma Balasubiramani      reg = <0xfffff000 0x200>;
86aaef9cdcSDharma Balasubiramani      interrupt-controller;
87aaef9cdcSDharma Balasubiramani      #interrupt-cells = <3>;
88aaef9cdcSDharma Balasubiramani      atmel,external-irqs = <31>;
89aaef9cdcSDharma Balasubiramani    };
90aaef9cdcSDharma Balasubiramani...
91