Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Marc Zyngier and committed by
Thomas Gleixner
287e9357 e3825ba1

+32 -2
+32 -2
Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt
··· 11 11 - interrupt-controller : Identifies the node as an interrupt controller 12 12 - #interrupt-cells : Specifies the number of cells needed to encode an 13 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 17 The 1st cell is the interrupt type; 0 for SPI interrupts, 1 for PPI 16 18 interrupts. Other values are reserved for future use. ··· 26 24 1 = edge triggered 27 25 4 = level triggered 28 26 29 - Cells 4 and beyond are reserved for future use and must have a value 27 + The 4th cell is a phandle to a node describing a set of CPUs this 28 + interrupt is affine to. The interrupt must be a PPI, and the node 29 + pointed must be a subnode of the "ppi-partitions" subnode. For 30 + interrupt types other than PPI or PPIs that are not partitionned, 31 + this cell must be zero. See the "ppi-partitions" node description 32 + below. 33 + 34 + Cells 5 and beyond are reserved for future use and must have a value 30 35 of 0 if present. 31 36 32 37 - reg : Specifies base physical address(s) and size of the GIC ··· 58 49 region is present. 59 50 60 51 Sub-nodes: 52 + 53 + PPI affinity can be expressed as a single "ppi-partitions" node, 54 + containing a set of sub-nodes, each with the following property: 55 + - affinity: Should be a list of phandles to CPU nodes (as described in 56 + Documentation/devicetree/bindings/arm/cpus.txt). 61 57 62 58 GICv3 has one or more Interrupt Translation Services (ITS) that are 63 59 used to route Message Signalled Interrupts (MSI) to the CPUs. ··· 105 91 106 92 gic: interrupt-controller@2c010000 { 107 93 compatible = "arm,gic-v3"; 108 - #interrupt-cells = <3>; 94 + #interrupt-cells = <4>; 109 95 #address-cells = <2>; 110 96 #size-cells = <2>; 111 97 ranges; ··· 133 119 #msi-cells = <1>; 134 120 reg = <0x0 0x2c400000 0 0x200000>; 135 121 }; 122 + 123 + ppi-partitions { 124 + part0: interrupt-partition-0 { 125 + affinity = <&cpu0 &cpu2>; 126 + }; 127 + 128 + part1: interrupt-partition-1 { 129 + affinity = <&cpu1 &cpu3>; 130 + }; 131 + }; 132 + }; 133 + 134 + 135 + device@0 { 136 + reg = <0 0 0 4>; 137 + interrupts = <1 1 4 &part0>; 136 138 };