xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/aspeed,ast2700-intc.yaml (revision 5f62a964e9f8abc6a05d8338273fadd154f0a206)
1*5f62a964SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2*5f62a964SEmmanuel Vadot%YAML 1.2
3*5f62a964SEmmanuel Vadot---
4*5f62a964SEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/aspeed,ast2700-intc.yaml#
5*5f62a964SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5f62a964SEmmanuel Vadot
7*5f62a964SEmmanuel Vadottitle: Aspeed AST2700 Interrupt Controller
8*5f62a964SEmmanuel Vadot
9*5f62a964SEmmanuel Vadotdescription:
10*5f62a964SEmmanuel Vadot  This interrupt controller hardware is second level interrupt controller that
11*5f62a964SEmmanuel Vadot  is hooked to a parent interrupt controller. It's useful to combine multiple
12*5f62a964SEmmanuel Vadot  interrupt sources into 1 interrupt to parent interrupt controller.
13*5f62a964SEmmanuel Vadot
14*5f62a964SEmmanuel Vadotmaintainers:
15*5f62a964SEmmanuel Vadot  - Kevin Chen <kevin_chen@aspeedtech.com>
16*5f62a964SEmmanuel Vadot
17*5f62a964SEmmanuel Vadotproperties:
18*5f62a964SEmmanuel Vadot  compatible:
19*5f62a964SEmmanuel Vadot    enum:
20*5f62a964SEmmanuel Vadot      - aspeed,ast2700-intc-ic
21*5f62a964SEmmanuel Vadot
22*5f62a964SEmmanuel Vadot  reg:
23*5f62a964SEmmanuel Vadot    maxItems: 1
24*5f62a964SEmmanuel Vadot
25*5f62a964SEmmanuel Vadot  interrupt-controller: true
26*5f62a964SEmmanuel Vadot
27*5f62a964SEmmanuel Vadot  '#interrupt-cells':
28*5f62a964SEmmanuel Vadot    const: 2
29*5f62a964SEmmanuel Vadot    description:
30*5f62a964SEmmanuel Vadot      The first cell is the IRQ number, the second cell is the trigger
31*5f62a964SEmmanuel Vadot      type as defined in interrupt.txt in this directory.
32*5f62a964SEmmanuel Vadot
33*5f62a964SEmmanuel Vadot  interrupts:
34*5f62a964SEmmanuel Vadot    maxItems: 6
35*5f62a964SEmmanuel Vadot    description: |
36*5f62a964SEmmanuel Vadot      Depend to which INTC0 or INTC1 used.
37*5f62a964SEmmanuel Vadot      INTC0 and INTC1 are two kinds of interrupt controller with enable and raw
38*5f62a964SEmmanuel Vadot      status registers for use.
39*5f62a964SEmmanuel Vadot      INTC0 is used to assert GIC if interrupt in INTC1 asserted.
40*5f62a964SEmmanuel Vadot      INTC1 is used to assert INTC0 if interrupt of modules asserted.
41*5f62a964SEmmanuel Vadot      +-----+   +-------+     +---------+---module0
42*5f62a964SEmmanuel Vadot      | GIC |---| INTC0 |--+--| INTC1_0 |---module2
43*5f62a964SEmmanuel Vadot      |     |   |       |  |  |         |---...
44*5f62a964SEmmanuel Vadot      +-----+   +-------+  |  +---------+---module31
45*5f62a964SEmmanuel Vadot                           |
46*5f62a964SEmmanuel Vadot                           |   +---------+---module0
47*5f62a964SEmmanuel Vadot                           +---| INTC1_1 |---module2
48*5f62a964SEmmanuel Vadot                           |   |         |---...
49*5f62a964SEmmanuel Vadot                           |   +---------+---module31
50*5f62a964SEmmanuel Vadot                          ...
51*5f62a964SEmmanuel Vadot                           |   +---------+---module0
52*5f62a964SEmmanuel Vadot                           +---| INTC1_5 |---module2
53*5f62a964SEmmanuel Vadot                               |         |---...
54*5f62a964SEmmanuel Vadot                               +---------+---module31
55*5f62a964SEmmanuel Vadot
56*5f62a964SEmmanuel Vadot
57*5f62a964SEmmanuel Vadotrequired:
58*5f62a964SEmmanuel Vadot  - compatible
59*5f62a964SEmmanuel Vadot  - reg
60*5f62a964SEmmanuel Vadot  - interrupt-controller
61*5f62a964SEmmanuel Vadot  - '#interrupt-cells'
62*5f62a964SEmmanuel Vadot  - interrupts
63*5f62a964SEmmanuel Vadot
64*5f62a964SEmmanuel VadotadditionalProperties: false
65*5f62a964SEmmanuel Vadot
66*5f62a964SEmmanuel Vadotexamples:
67*5f62a964SEmmanuel Vadot  - |
68*5f62a964SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
69*5f62a964SEmmanuel Vadot
70*5f62a964SEmmanuel Vadot    bus {
71*5f62a964SEmmanuel Vadot        #address-cells = <2>;
72*5f62a964SEmmanuel Vadot        #size-cells = <2>;
73*5f62a964SEmmanuel Vadot
74*5f62a964SEmmanuel Vadot        interrupt-controller@12101b00 {
75*5f62a964SEmmanuel Vadot            compatible = "aspeed,ast2700-intc-ic";
76*5f62a964SEmmanuel Vadot            reg = <0 0x12101b00 0 0x10>;
77*5f62a964SEmmanuel Vadot            #interrupt-cells = <2>;
78*5f62a964SEmmanuel Vadot            interrupt-controller;
79*5f62a964SEmmanuel Vadot            interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
80*5f62a964SEmmanuel Vadot                         <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>,
81*5f62a964SEmmanuel Vadot                         <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>,
82*5f62a964SEmmanuel Vadot                         <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>,
83*5f62a964SEmmanuel Vadot                         <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
84*5f62a964SEmmanuel Vadot                         <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
85*5f62a964SEmmanuel Vadot        };
86*5f62a964SEmmanuel Vadot    };
87