diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2017-10-06 12:39:19 -0400 |
---|---|---|
committer | Bjorn Helgaas <helgaas@kernel.org> | 2017-10-09 20:11:28 -0400 |
commit | 19f3f22aade704f9ce82a55c853381e672629a1d (patch) | |
tree | 8d368c12beaffbb7dd194a20196190dde6b565b8 | |
parent | 58fb207fb10074be48f51e514422dea7ce5fa048 (diff) |
dt-bindings: PCI: designware: Add binding for Designware PCIe in ECAM mode
Describe the binding for firmware-configured instances of the Synopsys
DesignWare PCIe controller in RC mode, that are almost but not quite ECAM
compliant.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
Acked-by: Rob Herring <robh@kernel.org>
-rw-r--r-- | Documentation/devicetree/bindings/pci/designware-pcie-ecam.txt | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/pci/designware-pcie-ecam.txt b/Documentation/devicetree/bindings/pci/designware-pcie-ecam.txt new file mode 100644 index 000000000000..515b2f9542e5 --- /dev/null +++ b/Documentation/devicetree/bindings/pci/designware-pcie-ecam.txt | |||
@@ -0,0 +1,42 @@ | |||
1 | * Synopsys DesignWare PCIe root complex in ECAM shift mode | ||
2 | |||
3 | In some cases, firmware may already have configured the Synopsys DesignWare | ||
4 | PCIe controller in RC mode with static ATU window mappings that cover all | ||
5 | config, MMIO and I/O spaces in a [mostly] ECAM compatible fashion. | ||
6 | In this case, there is no need for the OS to perform any low level setup | ||
7 | of clocks, PHYs or device registers, nor is there any reason for the driver | ||
8 | to reconfigure ATU windows for config and/or IO space accesses at runtime. | ||
9 | |||
10 | In cases where the IP was synthesized with a minimum ATU window size of | ||
11 | 64 KB, it cannot be supported by the generic ECAM driver, because it | ||
12 | requires special config space accessors that filter accesses to device #1 | ||
13 | and beyond on the first bus. | ||
14 | |||
15 | Required properties: | ||
16 | - compatible: "marvell,armada8k-pcie-ecam" or | ||
17 | "socionext,synquacer-pcie-ecam" or | ||
18 | "snps,dw-pcie-ecam" (must be preceded by a more specific match) | ||
19 | |||
20 | Please refer to the binding document of "pci-host-ecam-generic" in the | ||
21 | file host-generic-pci.txt for a description of the remaining required | ||
22 | and optional properties. | ||
23 | |||
24 | Example: | ||
25 | |||
26 | pcie1: pcie@7f000000 { | ||
27 | compatible = "socionext,synquacer-pcie-ecam", "snps,dw-pcie-ecam"; | ||
28 | device_type = "pci"; | ||
29 | reg = <0x0 0x7f000000 0x0 0xf00000>; | ||
30 | bus-range = <0x0 0xe>; | ||
31 | #address-cells = <3>; | ||
32 | #size-cells = <2>; | ||
33 | ranges = <0x1000000 0x00 0x00010000 0x00 0x7ff00000 0x0 0x00010000>, | ||
34 | <0x2000000 0x00 0x70000000 0x00 0x70000000 0x0 0x0f000000>, | ||
35 | <0x3000000 0x3f 0x00000000 0x3f 0x00000000 0x1 0x00000000>; | ||
36 | |||
37 | #interrupt-cells = <0x1>; | ||
38 | interrupt-map-mask = <0x0 0x0 0x0 0x0>; | ||
39 | interrupt-map = <0x0 0x0 0x0 0x0 &gic 0x0 0x0 0x0 182 0x4>; | ||
40 | msi-map = <0x0 &its 0x0 0x10000>; | ||
41 | dma-coherent; | ||
42 | }; | ||