xref: /freebsd/sys/contrib/device-tree/Bindings/interrupt-controller/marvell,cp110-icu.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ae5de77eSEmmanuel Vadot%YAML 1.2
3*ae5de77eSEmmanuel Vadot---
4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/marvell,cp110-icu.yaml#
5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ae5de77eSEmmanuel Vadot
7*ae5de77eSEmmanuel Vadotmaintainers:
8*ae5de77eSEmmanuel Vadot  - Miquel Raynal <miquel.raynal@bootlin.com>
9*ae5de77eSEmmanuel Vadot  - Thomas Petazzoni <thomas.petazzoni@bootlin.com>
10*ae5de77eSEmmanuel Vadot
11*ae5de77eSEmmanuel Vadottitle: Marvell ICU Interrupt Controller
12*ae5de77eSEmmanuel Vadot
13*ae5de77eSEmmanuel Vadotdescription:
14*ae5de77eSEmmanuel Vadot  The Marvell ICU (Interrupt Consolidation Unit) controller is responsible for
15*ae5de77eSEmmanuel Vadot  collecting all wired-interrupt sources in the CP and communicating them to the
16*ae5de77eSEmmanuel Vadot  GIC in the AP. The unit translates interrupt requests on input wires to MSG
17*ae5de77eSEmmanuel Vadot  memory mapped transactions to the GIC. These messages access different GIC
18*ae5de77eSEmmanuel Vadot  memory areas depending on their type (NSR, SR, SEI, REI, etc).
19*ae5de77eSEmmanuel Vadot
20*ae5de77eSEmmanuel Vadotproperties:
21*ae5de77eSEmmanuel Vadot  compatible:
22*ae5de77eSEmmanuel Vadot    const: marvell,cp110-icu
23*ae5de77eSEmmanuel Vadot
24*ae5de77eSEmmanuel Vadot  reg:
25*ae5de77eSEmmanuel Vadot    maxItems: 1
26*ae5de77eSEmmanuel Vadot
27*ae5de77eSEmmanuel Vadot  '#address-cells':
28*ae5de77eSEmmanuel Vadot    const: 1
29*ae5de77eSEmmanuel Vadot
30*ae5de77eSEmmanuel Vadot  '#size-cells':
31*ae5de77eSEmmanuel Vadot    const: 1
32*ae5de77eSEmmanuel Vadot
33*ae5de77eSEmmanuel Vadot  ranges: true
34*ae5de77eSEmmanuel Vadot
35*ae5de77eSEmmanuel VadotpatternProperties:
36*ae5de77eSEmmanuel Vadot  "^interrupt-controller@":
37*ae5de77eSEmmanuel Vadot    type: object
38*ae5de77eSEmmanuel Vadot    description: Interrupt group child nodes
39*ae5de77eSEmmanuel Vadot    additionalProperties: false
40*ae5de77eSEmmanuel Vadot
41*ae5de77eSEmmanuel Vadot    properties:
42*ae5de77eSEmmanuel Vadot      compatible:
43*ae5de77eSEmmanuel Vadot        enum:
44*ae5de77eSEmmanuel Vadot          - marvell,cp110-icu-nsr
45*ae5de77eSEmmanuel Vadot          - marvell,cp110-icu-sr
46*ae5de77eSEmmanuel Vadot          - marvell,cp110-icu-sei
47*ae5de77eSEmmanuel Vadot          - marvell,cp110-icu-rei
48*ae5de77eSEmmanuel Vadot
49*ae5de77eSEmmanuel Vadot      reg:
50*ae5de77eSEmmanuel Vadot        maxItems: 1
51*ae5de77eSEmmanuel Vadot
52*ae5de77eSEmmanuel Vadot      '#interrupt-cells':
53*ae5de77eSEmmanuel Vadot        const: 2
54*ae5de77eSEmmanuel Vadot
55*ae5de77eSEmmanuel Vadot      interrupt-controller: true
56*ae5de77eSEmmanuel Vadot
57*ae5de77eSEmmanuel Vadot      msi-parent:
58*ae5de77eSEmmanuel Vadot        maxItems: 1
59*ae5de77eSEmmanuel Vadot        description: Phandle to the GICP controller
60*ae5de77eSEmmanuel Vadot
61*ae5de77eSEmmanuel Vadot    required:
62*ae5de77eSEmmanuel Vadot      - compatible
63*ae5de77eSEmmanuel Vadot      - reg
64*ae5de77eSEmmanuel Vadot      - '#interrupt-cells'
65*ae5de77eSEmmanuel Vadot      - interrupt-controller
66*ae5de77eSEmmanuel Vadot      - msi-parent
67*ae5de77eSEmmanuel Vadot
68*ae5de77eSEmmanuel Vadotrequired:
69*ae5de77eSEmmanuel Vadot  - compatible
70*ae5de77eSEmmanuel Vadot  - reg
71*ae5de77eSEmmanuel Vadot
72*ae5de77eSEmmanuel VadotadditionalProperties: false
73*ae5de77eSEmmanuel Vadot
74*ae5de77eSEmmanuel Vadotexamples:
75*ae5de77eSEmmanuel Vadot  - |
76*ae5de77eSEmmanuel Vadot    interrupt-controller@1e0000 {
77*ae5de77eSEmmanuel Vadot        compatible = "marvell,cp110-icu";
78*ae5de77eSEmmanuel Vadot        reg = <0x1e0000 0x440>;
79*ae5de77eSEmmanuel Vadot        #address-cells = <1>;
80*ae5de77eSEmmanuel Vadot        #size-cells = <1>;
81*ae5de77eSEmmanuel Vadot        ranges;
82*ae5de77eSEmmanuel Vadot
83*ae5de77eSEmmanuel Vadot        interrupt-controller@10 {
84*ae5de77eSEmmanuel Vadot                compatible = "marvell,cp110-icu-nsr";
85*ae5de77eSEmmanuel Vadot                reg = <0x10 0x20>;
86*ae5de77eSEmmanuel Vadot                #interrupt-cells = <2>;
87*ae5de77eSEmmanuel Vadot                interrupt-controller;
88*ae5de77eSEmmanuel Vadot                msi-parent = <&gicp>;
89*ae5de77eSEmmanuel Vadot        };
90*ae5de77eSEmmanuel Vadot
91*ae5de77eSEmmanuel Vadot        interrupt-controller@50 {
92*ae5de77eSEmmanuel Vadot                compatible = "marvell,cp110-icu-sei";
93*ae5de77eSEmmanuel Vadot                reg = <0x50 0x10>;
94*ae5de77eSEmmanuel Vadot                #interrupt-cells = <2>;
95*ae5de77eSEmmanuel Vadot                interrupt-controller;
96*ae5de77eSEmmanuel Vadot                msi-parent = <&sei>;
97*ae5de77eSEmmanuel Vadot        };
98*ae5de77eSEmmanuel Vadot    };
99