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