diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2016-04-11 04:57:55 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-05-02 07:42:51 -0400 |
commit | 287e9357abcc0ef079bf4e439e098a3bd6246a05 (patch) | |
tree | a59e2b077a3195733a37c15839794e6f2c26c2c3 | |
parent | e3825ba1af3a27d7522c9f5f929f5a13b8b138ae (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.txt | 34 |
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 | ||
51 | Sub-nodes: | 60 | Sub-nodes: |
52 | 61 | ||
62 | PPI affinity can be expressed as a single "ppi-partitions" node, | ||
63 | containing a set of sub-nodes, each with the following property: | ||
64 | - affinity: Should be a list of phandles to CPU nodes (as described in | ||
65 | Documentation/devicetree/bindings/arm/cpus.txt). | ||
66 | |||
53 | GICv3 has one or more Interrupt Translation Services (ITS) that are | 67 | GICv3 has one or more Interrupt Translation Services (ITS) that are |
54 | used to route Message Signalled Interrupts (MSI) to the CPUs. | 68 | used 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 | }; |