xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/arm,gic-v5-iwb.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*833e5d42SEmmanuel Vadot%YAML 1.2
3*833e5d42SEmmanuel Vadot---
4*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/arm,gic-v5-iwb.yaml#
5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadottitle: ARM Generic Interrupt Controller, version 5 Interrupt Wire Bridge (IWB)
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadotmaintainers:
10*833e5d42SEmmanuel Vadot  - Lorenzo Pieralisi <lpieralisi@kernel.org>
11*833e5d42SEmmanuel Vadot  - Marc Zyngier <maz@kernel.org>
12*833e5d42SEmmanuel Vadot
13*833e5d42SEmmanuel Vadotdescription: |
14*833e5d42SEmmanuel Vadot  The GICv5 architecture defines the guidelines to implement GICv5
15*833e5d42SEmmanuel Vadot  compliant interrupt controllers for AArch64 systems.
16*833e5d42SEmmanuel Vadot
17*833e5d42SEmmanuel Vadot  The GICv5 specification can be found at
18*833e5d42SEmmanuel Vadot  https://developer.arm.com/documentation/aes0070
19*833e5d42SEmmanuel Vadot
20*833e5d42SEmmanuel Vadot  GICv5 has zero or more Interrupt Wire Bridges (IWB) that are responsible
21*833e5d42SEmmanuel Vadot  for translating wire signals into interrupt messages to the GICv5 ITS.
22*833e5d42SEmmanuel Vadot
23*833e5d42SEmmanuel VadotallOf:
24*833e5d42SEmmanuel Vadot  - $ref: /schemas/interrupt-controller.yaml#
25*833e5d42SEmmanuel Vadot
26*833e5d42SEmmanuel Vadotproperties:
27*833e5d42SEmmanuel Vadot  compatible:
28*833e5d42SEmmanuel Vadot    const: arm,gic-v5-iwb
29*833e5d42SEmmanuel Vadot
30*833e5d42SEmmanuel Vadot  reg:
31*833e5d42SEmmanuel Vadot    items:
32*833e5d42SEmmanuel Vadot      - description: IWB control frame
33*833e5d42SEmmanuel Vadot
34*833e5d42SEmmanuel Vadot  "#address-cells":
35*833e5d42SEmmanuel Vadot    const: 0
36*833e5d42SEmmanuel Vadot
37*833e5d42SEmmanuel Vadot  "#interrupt-cells":
38*833e5d42SEmmanuel Vadot    description: |
39*833e5d42SEmmanuel Vadot      The 1st cell corresponds to the IWB wire.
40*833e5d42SEmmanuel Vadot
41*833e5d42SEmmanuel Vadot      The 2nd cell is the flags, encoded as follows:
42*833e5d42SEmmanuel Vadot      bits[3:0] trigger type and level flags.
43*833e5d42SEmmanuel Vadot
44*833e5d42SEmmanuel Vadot      1 = low-to-high edge triggered
45*833e5d42SEmmanuel Vadot      2 = high-to-low edge triggered
46*833e5d42SEmmanuel Vadot      4 = active high level-sensitive
47*833e5d42SEmmanuel Vadot      8 = active low level-sensitive
48*833e5d42SEmmanuel Vadot
49*833e5d42SEmmanuel Vadot    const: 2
50*833e5d42SEmmanuel Vadot
51*833e5d42SEmmanuel Vadot  interrupt-controller: true
52*833e5d42SEmmanuel Vadot
53*833e5d42SEmmanuel Vadot  msi-parent:
54*833e5d42SEmmanuel Vadot    maxItems: 1
55*833e5d42SEmmanuel Vadot
56*833e5d42SEmmanuel Vadotrequired:
57*833e5d42SEmmanuel Vadot  - compatible
58*833e5d42SEmmanuel Vadot  - reg
59*833e5d42SEmmanuel Vadot  - "#interrupt-cells"
60*833e5d42SEmmanuel Vadot  - interrupt-controller
61*833e5d42SEmmanuel Vadot  - msi-parent
62*833e5d42SEmmanuel Vadot
63*833e5d42SEmmanuel VadotadditionalProperties: false
64*833e5d42SEmmanuel Vadot
65*833e5d42SEmmanuel Vadotexamples:
66*833e5d42SEmmanuel Vadot  - |
67*833e5d42SEmmanuel Vadot    interrupt-controller@2f000000 {
68*833e5d42SEmmanuel Vadot      compatible = "arm,gic-v5-iwb";
69*833e5d42SEmmanuel Vadot      reg = <0x2f000000 0x10000>;
70*833e5d42SEmmanuel Vadot
71*833e5d42SEmmanuel Vadot      #address-cells = <0>;
72*833e5d42SEmmanuel Vadot
73*833e5d42SEmmanuel Vadot      #interrupt-cells = <2>;
74*833e5d42SEmmanuel Vadot      interrupt-controller;
75*833e5d42SEmmanuel Vadot
76*833e5d42SEmmanuel Vadot      msi-parent = <&its0 64>;
77*833e5d42SEmmanuel Vadot    };
78*833e5d42SEmmanuel Vadot...
79