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

dt-bindings: arm: fsl: Add msi-map device-tree binding for fsl-mc bus

The existing bindings cannot be used to specify the relationship
between fsl-mc devices and GIC ITSes.
Add a generic binding for mapping fsl-mc devices to GIC ITSes, using
msi-map property.
In addition, deprecate msi-parent property which no longer makes sense
now that we support translating the MSIs.

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Signed-off-by: Diana Craciun <diana.craciun@oss.nxp.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>
Link: https://lore.kernel.org/r/20200619082013.13661-9-lorenzo.pieralisi@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>

authored by

Laurentiu Tudor and committed by
Catalin Marinas
5bda70c6 a081bd4a

+44 -6
+44 -6
Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
··· 28 28 For arm-smmu binding, see: 29 29 Documentation/devicetree/bindings/iommu/arm,smmu.yaml. 30 30 31 + The MSI writes are accompanied by sideband data which is derived from the ICID. 32 + The msi-map property is used to associate the devices with both the ITS 33 + controller and the sideband data which accompanies the writes. 34 + 35 + For generic MSI bindings, see 36 + Documentation/devicetree/bindings/interrupt-controller/msi.txt. 37 + 38 + For GICv3 and GIC ITS bindings, see: 39 + Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml. 40 + 31 41 Required properties: 32 42 33 43 - compatible ··· 58 48 -the second region is the MC control registers. This 59 49 region may not be present in some scenarios, such 60 50 as in the device tree presented to a virtual machine. 61 - 62 - - msi-parent 63 - Value type: <phandle> 64 - Definition: Must be present and point to the MSI controller node 65 - handling message interrupts for the MC. 66 51 67 52 - ranges 68 53 Value type: <prop-encoded-array> ··· 124 119 associated with the listed IOMMU, with the iommu-specifier 125 120 (i - icid-base + iommu-base). 126 121 122 + - msi-map: Maps an ICID to a GIC ITS and associated msi-specifier 123 + data. 124 + 125 + The property is an arbitrary number of tuples of 126 + (icid-base,gic-its,msi-base,length). 127 + 128 + Any ICID in the interval [icid-base, icid-base + length) is 129 + associated with the listed GIC ITS, with the msi-specifier 130 + (i - icid-base + msi-base). 131 + 132 + Deprecated properties: 133 + 134 + - msi-parent 135 + Value type: <phandle> 136 + Definition: Describes the MSI controller node handling message 137 + interrupts for the MC. When there is no translation 138 + between the ICID and deviceID this property can be used 139 + to describe the MSI controller used by the devices on the 140 + mc-bus. 141 + The use of this property for mc-bus is deprecated. Please 142 + use msi-map. 143 + 127 144 Example: 128 145 129 146 smmu: iommu@5000000 { ··· 155 128 ... 156 129 }; 157 130 131 + gic: interrupt-controller@6000000 { 132 + compatible = "arm,gic-v3"; 133 + ... 134 + } 135 + its: gic-its@6020000 { 136 + compatible = "arm,gic-v3-its"; 137 + msi-controller; 138 + ... 139 + }; 140 + 158 141 fsl_mc: fsl-mc@80c000000 { 159 142 compatible = "fsl,qoriq-mc"; 160 143 reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */ 161 144 <0x00000000 0x08340000 0 0x40000>; /* MC control reg */ 162 - msi-parent = <&its>; 163 145 /* define map for ICIDs 23-64 */ 164 146 iommu-map = <23 &smmu 23 41>; 147 + /* define msi map for ICIDs 23-64 */ 148 + msi-map = <23 &its 23 41>; 165 149 #address-cells = <3>; 166 150 #size-cells = <1>; 167 151