aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2016-04-11 04:57:55 -0400
committerThomas Gleixner <tglx@linutronix.de>2016-05-02 07:42:51 -0400
commit287e9357abcc0ef079bf4e439e098a3bd6246a05 (patch)
treea59e2b077a3195733a37c15839794e6f2c26c2c3
parente3825ba1af3a27d7522c9f5f929f5a13b8b138ae (diff)
DT/arm,gic-v3: Documment PPI partition support
Add a decription of the PPI partitioning support. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Acked-by: Rob Herring <robh+dt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: devicetree@vger.kernel.org Cc: Jason Cooper <jason@lakedaemon.net> Cc: Will Deacon <will.deacon@arm.com> Link: http://lkml.kernel.org/r/1460365075-7316-6-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt34
1 files changed, 32 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt
index 007a5b46256a..4c29cdab0ea5 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt
+++ b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt
@@ -11,6 +11,8 @@ Main node required properties:
11- interrupt-controller : Identifies the node as an interrupt controller 11- interrupt-controller : Identifies the node as an interrupt controller
12- #interrupt-cells : Specifies the number of cells needed to encode an 12- #interrupt-cells : Specifies the number of cells needed to encode an
13 interrupt source. Must be a single cell with a value of at least 3. 13 interrupt source. Must be a single cell with a value of at least 3.
14 If the system requires describing PPI affinity, then the value must
15 be at least 4.
14 16
15 The 1st cell is the interrupt type; 0 for SPI interrupts, 1 for PPI 17 The 1st cell is the interrupt type; 0 for SPI interrupts, 1 for PPI
16 interrupts. Other values are reserved for future use. 18 interrupts. Other values are reserved for future use.
@@ -24,7 +26,14 @@ Main node required properties:
24 1 = edge triggered 26 1 = edge triggered
25 4 = level triggered 27 4 = level triggered
26 28
27 Cells 4 and beyond are reserved for future use and must have a value 29 The 4th cell is a phandle to a node describing a set of CPUs this
30 interrupt is affine to. The interrupt must be a PPI, and the node
31 pointed must be a subnode of the "ppi-partitions" subnode. For
32 interrupt types other than PPI or PPIs that are not partitionned,
33 this cell must be zero. See the "ppi-partitions" node description
34 below.
35
36 Cells 5 and beyond are reserved for future use and must have a value
28 of 0 if present. 37 of 0 if present.
29 38
30- reg : Specifies base physical address(s) and size of the GIC 39- reg : Specifies base physical address(s) and size of the GIC
@@ -50,6 +59,11 @@ Optional
50 59
51Sub-nodes: 60Sub-nodes:
52 61
62PPI affinity can be expressed as a single "ppi-partitions" node,
63containing a set of sub-nodes, each with the following property:
64- affinity: Should be a list of phandles to CPU nodes (as described in
65Documentation/devicetree/bindings/arm/cpus.txt).
66
53GICv3 has one or more Interrupt Translation Services (ITS) that are 67GICv3 has one or more Interrupt Translation Services (ITS) that are
54used to route Message Signalled Interrupts (MSI) to the CPUs. 68used to route Message Signalled Interrupts (MSI) to the CPUs.
55 69
@@ -91,7 +105,7 @@ Examples:
91 105
92 gic: interrupt-controller@2c010000 { 106 gic: interrupt-controller@2c010000 {
93 compatible = "arm,gic-v3"; 107 compatible = "arm,gic-v3";
94 #interrupt-cells = <3>; 108 #interrupt-cells = <4>;
95 #address-cells = <2>; 109 #address-cells = <2>;
96 #size-cells = <2>; 110 #size-cells = <2>;
97 ranges; 111 ranges;
@@ -119,4 +133,20 @@ Examples:
119 #msi-cells = <1>; 133 #msi-cells = <1>;
120 reg = <0x0 0x2c400000 0 0x200000>; 134 reg = <0x0 0x2c400000 0 0x200000>;
121 }; 135 };
136
137 ppi-partitions {
138 part0: interrupt-partition-0 {
139 affinity = <&cpu0 &cpu2>;
140 };
141
142 part1: interrupt-partition-1 {
143 affinity = <&cpu1 &cpu3>;
144 };
145 };
146 };
147
148
149 device@0 {
150 reg = <0 0 0 4>;
151 interrupts = <1 1 4 &part0>;
122 }; 152 };