xref: /freebsd-src/sys/contrib/device-tree/Bindings/interrupt-controller/arm,vic.yaml (revision 5956d97f4b3204318ceb6aa9c77bd0bc6ea87a41)
1*5956d97fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2*5956d97fSEmmanuel Vadot%YAML 1.2
3*5956d97fSEmmanuel Vadot---
4*5956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/arm,vic.yaml#
5*5956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5956d97fSEmmanuel Vadot
7*5956d97fSEmmanuel Vadottitle: ARM Vectored Interrupt Controller
8*5956d97fSEmmanuel Vadot
9*5956d97fSEmmanuel Vadotmaintainers:
10*5956d97fSEmmanuel Vadot  - Rob Herring <robh@kernel.org>
11*5956d97fSEmmanuel Vadot
12*5956d97fSEmmanuel Vadotdescription: |+
13*5956d97fSEmmanuel Vadot  One or more Vectored Interrupt Controllers (VIC's) can be connected in an
14*5956d97fSEmmanuel Vadot  ARM system for interrupt routing.  For multiple controllers they can either
15*5956d97fSEmmanuel Vadot  be nested or have the outputs wire-OR'd together.
16*5956d97fSEmmanuel Vadot
17*5956d97fSEmmanuel VadotallOf:
18*5956d97fSEmmanuel Vadot  - $ref: /schemas/interrupt-controller.yaml#
19*5956d97fSEmmanuel Vadot
20*5956d97fSEmmanuel Vadotproperties:
21*5956d97fSEmmanuel Vadot  compatible:
22*5956d97fSEmmanuel Vadot    enum:
23*5956d97fSEmmanuel Vadot      - arm,pl190-vic
24*5956d97fSEmmanuel Vadot      - arm,pl192-vic
25*5956d97fSEmmanuel Vadot      - arm,versatile-vic
26*5956d97fSEmmanuel Vadot
27*5956d97fSEmmanuel Vadot  interrupt-controller: true
28*5956d97fSEmmanuel Vadot
29*5956d97fSEmmanuel Vadot  "#interrupt-cells":
30*5956d97fSEmmanuel Vadot    const: 1
31*5956d97fSEmmanuel Vadot    description:
32*5956d97fSEmmanuel Vadot      The number of cells to define the interrupts.  It must be 1 as the
33*5956d97fSEmmanuel Vadot      VIC has no configuration options for interrupt sources. The single
34*5956d97fSEmmanuel Vadot      cell defines the interrupt number.
35*5956d97fSEmmanuel Vadot
36*5956d97fSEmmanuel Vadot  reg:
37*5956d97fSEmmanuel Vadot    maxItems: 1
38*5956d97fSEmmanuel Vadot
39*5956d97fSEmmanuel Vadot  interrupts:
40*5956d97fSEmmanuel Vadot    maxItems: 1
41*5956d97fSEmmanuel Vadot
42*5956d97fSEmmanuel Vadot  valid-mask:
43*5956d97fSEmmanuel Vadot    description:
44*5956d97fSEmmanuel Vadot      A one cell big bit mask of valid interrupt sources. Each bit
45*5956d97fSEmmanuel Vadot      represents single interrupt source, starting from source 0 at
46*5956d97fSEmmanuel Vadot      LSb and ending at source 31 at MSb. A bit that is set means
47*5956d97fSEmmanuel Vadot      that the source is wired and clear means otherwise. If unspecified,
48*5956d97fSEmmanuel Vadot      defaults to all valid.
49*5956d97fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
50*5956d97fSEmmanuel Vadot
51*5956d97fSEmmanuel Vadot  valid-wakeup-mask:
52*5956d97fSEmmanuel Vadot    description:
53*5956d97fSEmmanuel Vadot      A one cell big bit mask of interrupt sources that can be configured
54*5956d97fSEmmanuel Vadot      as wake up source for the system. Order of bits is the same as for
55*5956d97fSEmmanuel Vadot      valid-mask property. A set bit means that this interrupt source
56*5956d97fSEmmanuel Vadot      can be configured as a wake up source for the system. If unspecied,
57*5956d97fSEmmanuel Vadot      defaults to all interrupt sources configurable as wake up sources.
58*5956d97fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
59*5956d97fSEmmanuel Vadot
60*5956d97fSEmmanuel Vadotrequired:
61*5956d97fSEmmanuel Vadot  - compatible
62*5956d97fSEmmanuel Vadot  - reg
63*5956d97fSEmmanuel Vadot  - interrupt-controller
64*5956d97fSEmmanuel Vadot  - "#interrupt-cells"
65*5956d97fSEmmanuel Vadot
66*5956d97fSEmmanuel VadotadditionalProperties: false
67*5956d97fSEmmanuel Vadot
68*5956d97fSEmmanuel Vadotexamples:
69*5956d97fSEmmanuel Vadot  - |
70*5956d97fSEmmanuel Vadot    // PL192 VIC
71*5956d97fSEmmanuel Vadot    vic0: interrupt-controller@60000 {
72*5956d97fSEmmanuel Vadot      compatible = "arm,pl192-vic";
73*5956d97fSEmmanuel Vadot      interrupt-controller;
74*5956d97fSEmmanuel Vadot      #interrupt-cells = <1>;
75*5956d97fSEmmanuel Vadot      reg = <0x60000 0x1000>;
76*5956d97fSEmmanuel Vadot
77*5956d97fSEmmanuel Vadot      valid-mask = <0xffffff7f>;
78*5956d97fSEmmanuel Vadot      valid-wakeup-mask = <0x0000ff7f>;
79*5956d97fSEmmanuel Vadot    };
80*5956d97fSEmmanuel Vadot
81*5956d97fSEmmanuel Vadot...
82