@@ -49,23 +49,50 @@ Optional
4949 occupied by the redistributors. Required if more than one such
5050 region is present.
5151
52+ Sub-nodes:
53+
54+ GICv3 has one or more Interrupt Translation Services (ITS) that are
55+ used to route Message Signalled Interrupts (MSI) to the CPUs.
56+
57+ These nodes must have the following properties:
58+ - compatible : Should at least contain "arm,gic-v3-its".
59+ - msi-controller : Boolean property. Identifies the node as an MSI controller
60+ - reg: Specifies the base physical address and size of the ITS
61+ registers.
62+
63+ The main GIC node must contain the appropriate #address-cells,
64+ #size-cells and ranges properties for the reg property of all ITS
65+ nodes.
66+
5267Examples:
5368
5469 gic: interrupt-controller@2cf00000 {
5570 compatible = "arm,gic-v3";
5671 #interrupt-cells = <3>;
72+ #address-cells = <2>;
73+ #size-cells = <2>;
74+ ranges;
5775 interrupt-controller;
5876 reg = <0x0 0x2f000000 0 0x10000>, // GICD
5977 <0x0 0x2f100000 0 0x200000>, // GICR
6078 <0x0 0x2c000000 0 0x2000>, // GICC
6179 <0x0 0x2c010000 0 0x2000>, // GICH
6280 <0x0 0x2c020000 0 0x2000>; // GICV
6381 interrupts = <1 9 4>;
82+
83+ gic-its@2c200000 {
84+ compatible = "arm,gic-v3-its";
85+ msi-controller;
86+ reg = <0x0 0x2c200000 0 0x200000>;
87+ };
6488 };
6589
6690 gic: interrupt-controller@2c010000 {
6791 compatible = "arm,gic-v3";
6892 #interrupt-cells = <3>;
93+ #address-cells = <2>;
94+ #size-cells = <2>;
95+ ranges;
6996 interrupt-controller;
7097 redistributor-stride = <0x0 0x40000>; // 256kB stride
7198 #redistributor-regions = <2>;
@@ -76,4 +103,16 @@ Examples:
76103 <0x0 0x2c060000 0 0x2000>, // GICH
77104 <0x0 0x2c080000 0 0x2000>; // GICV
78105 interrupts = <1 9 4>;
106+
107+ gic-its@2c200000 {
108+ compatible = "arm,gic-v3-its";
109+ msi-controller;
110+ reg = <0x0 0x2c200000 0 0x200000>;
111+ };
112+
113+ gic-its@2c400000 {
114+ compatible = "arm,gic-v3-its";
115+ msi-controller;
116+ reg = <0x0 0x2c400000 0 0x200000>;
117+ };
79118 };
0 commit comments