124cd7ecbSFrank Li# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 224cd7ecbSFrank Li%YAML 1.2 324cd7ecbSFrank Li--- 424cd7ecbSFrank Li$id: http://devicetree.org/schemas/pci/fsl,layerscape-pcie.yaml# 524cd7ecbSFrank Li$schema: http://devicetree.org/meta-schemas/core.yaml# 624cd7ecbSFrank Li 724cd7ecbSFrank Lititle: Freescale Layerscape PCIe Root Complex(RC) controller 824cd7ecbSFrank Li 924cd7ecbSFrank Limaintainers: 1024cd7ecbSFrank Li - Frank Li <Frank.Li@nxp.com> 1124cd7ecbSFrank Li 1224cd7ecbSFrank Lidescription: 1324cd7ecbSFrank Li This PCIe RC controller is based on the Synopsys DesignWare PCIe IP 1424cd7ecbSFrank Li 1524cd7ecbSFrank Li This controller derives its clocks from the Reset Configuration Word (RCW) 1624cd7ecbSFrank Li which is used to describe the PLL settings at the time of chip-reset. 1724cd7ecbSFrank Li 1824cd7ecbSFrank Li Also as per the available Reference Manuals, there is no specific 'version' 1924cd7ecbSFrank Li register available in the Freescale PCIe controller register set, 2024cd7ecbSFrank Li which can allow determining the underlying DesignWare PCIe controller version 2124cd7ecbSFrank Li information. 2224cd7ecbSFrank Li 2324cd7ecbSFrank Liproperties: 2424cd7ecbSFrank Li compatible: 251a1bf588SFrank Li oneOf: 261a1bf588SFrank Li - enum: 271a1bf588SFrank Li - fsl,ls1012a-pcie 2824cd7ecbSFrank Li - fsl,ls1021a-pcie 291a1bf588SFrank Li - fsl,ls1028a-pcie 301a1bf588SFrank Li - fsl,ls1043a-pcie 311a1bf588SFrank Li - fsl,ls1046a-pcie 321a1bf588SFrank Li - fsl,ls1088a-pcie 3324cd7ecbSFrank Li - fsl,ls2080a-pcie 3424cd7ecbSFrank Li - fsl,ls2085a-pcie 3524cd7ecbSFrank Li - fsl,ls2088a-pcie 361a1bf588SFrank Li - items: 371a1bf588SFrank Li - const: fsl,lx2160ar2-pcie 381a1bf588SFrank Li - const: fsl,ls2088a-pcie 3924cd7ecbSFrank Li reg: 4024cd7ecbSFrank Li maxItems: 2 4124cd7ecbSFrank Li 4224cd7ecbSFrank Li reg-names: 4324cd7ecbSFrank Li items: 4424cd7ecbSFrank Li - const: regs 4524cd7ecbSFrank Li - const: config 4624cd7ecbSFrank Li 4724cd7ecbSFrank Li fsl,pcie-scfg: 48*f66b63efSFrank Li $ref: /schemas/types.yaml#/definitions/phandle-array 4924cd7ecbSFrank Li description: A phandle to the SCFG device node. The second entry is the 5024cd7ecbSFrank Li physical PCIe controller index starting from '0'. This is used to get 5124cd7ecbSFrank Li SCFG PEXN registers. 52*f66b63efSFrank Li items: 53*f66b63efSFrank Li items: 54*f66b63efSFrank Li - description: A phandle to the SCFG device node 55*f66b63efSFrank Li - description: PCIe controller index starting from '0' 56*f66b63efSFrank Li maxItems: 1 5724cd7ecbSFrank Li 5824cd7ecbSFrank Li big-endian: 5924cd7ecbSFrank Li $ref: /schemas/types.yaml#/definitions/flag 6024cd7ecbSFrank Li description: If the PEX_LUT and PF register block is in big-endian, specify 6124cd7ecbSFrank Li this property. 6224cd7ecbSFrank Li 6324cd7ecbSFrank Li dma-coherent: true 6424cd7ecbSFrank Li 6524cd7ecbSFrank Li msi-parent: true 6624cd7ecbSFrank Li 6724cd7ecbSFrank Li iommu-map: true 6824cd7ecbSFrank Li 6924cd7ecbSFrank Li interrupts: 7024cd7ecbSFrank Li minItems: 1 7124cd7ecbSFrank Li maxItems: 2 7224cd7ecbSFrank Li 7324cd7ecbSFrank Li interrupt-names: 7424cd7ecbSFrank Li minItems: 1 7524cd7ecbSFrank Li maxItems: 2 7624cd7ecbSFrank Li 77b9fe09a1SFrank Li num-viewport: 78b9fe09a1SFrank Li $ref: /schemas/types.yaml#/definitions/uint32 79b9fe09a1SFrank Li deprecated: true 80b9fe09a1SFrank Li description: 81b9fe09a1SFrank Li Number of outbound view ports configured in hardware. It's the same as 82b9fe09a1SFrank Li the number of outbound AT windows. 83b9fe09a1SFrank Li maximum: 256 84b9fe09a1SFrank Li 8524cd7ecbSFrank Lirequired: 8624cd7ecbSFrank Li - compatible 8724cd7ecbSFrank Li - reg 8824cd7ecbSFrank Li - reg-names 8924cd7ecbSFrank Li - "#address-cells" 9024cd7ecbSFrank Li - "#size-cells" 9124cd7ecbSFrank Li - device_type 9224cd7ecbSFrank Li - bus-range 9324cd7ecbSFrank Li - ranges 9424cd7ecbSFrank Li - interrupts 9524cd7ecbSFrank Li - interrupt-names 9624cd7ecbSFrank Li - "#interrupt-cells" 9724cd7ecbSFrank Li - interrupt-map-mask 9824cd7ecbSFrank Li - interrupt-map 9924cd7ecbSFrank Li 10024cd7ecbSFrank LiallOf: 10124cd7ecbSFrank Li - $ref: /schemas/pci/pci-bus.yaml# 10224cd7ecbSFrank Li 10324cd7ecbSFrank Li - if: 10424cd7ecbSFrank Li properties: 10524cd7ecbSFrank Li compatible: 10624cd7ecbSFrank Li enum: 10724cd7ecbSFrank Li - fsl,ls1028a-pcie 10824cd7ecbSFrank Li - fsl,ls1046a-pcie 10924cd7ecbSFrank Li - fsl,ls1043a-pcie 11024cd7ecbSFrank Li - fsl,ls1012a-pcie 11124cd7ecbSFrank Li then: 11224cd7ecbSFrank Li properties: 11324cd7ecbSFrank Li interrupts: 11424cd7ecbSFrank Li maxItems: 2 11524cd7ecbSFrank Li interrupt-names: 11624cd7ecbSFrank Li items: 11724cd7ecbSFrank Li - const: pme 11824cd7ecbSFrank Li - const: aer 11924cd7ecbSFrank Li 12024cd7ecbSFrank Li - if: 12124cd7ecbSFrank Li properties: 12224cd7ecbSFrank Li compatible: 12324cd7ecbSFrank Li enum: 12424cd7ecbSFrank Li - fsl,ls2080a-pcie 12524cd7ecbSFrank Li - fsl,ls2085a-pcie 12624cd7ecbSFrank Li - fsl,ls2088a-pcie 12724cd7ecbSFrank Li then: 12824cd7ecbSFrank Li properties: 12924cd7ecbSFrank Li interrupts: 13024cd7ecbSFrank Li maxItems: 1 13124cd7ecbSFrank Li interrupt-names: 13224cd7ecbSFrank Li items: 13324cd7ecbSFrank Li - const: intr 13424cd7ecbSFrank Li 13524cd7ecbSFrank Li - if: 13624cd7ecbSFrank Li properties: 13724cd7ecbSFrank Li compatible: 13824cd7ecbSFrank Li enum: 13924cd7ecbSFrank Li - fsl,ls1088a-pcie 14024cd7ecbSFrank Li then: 14124cd7ecbSFrank Li properties: 14224cd7ecbSFrank Li interrupts: 14324cd7ecbSFrank Li maxItems: 1 14424cd7ecbSFrank Li interrupt-names: 14524cd7ecbSFrank Li items: 14624cd7ecbSFrank Li - const: aer 14724cd7ecbSFrank Li 14824cd7ecbSFrank LiunevaluatedProperties: false 14924cd7ecbSFrank Li 15024cd7ecbSFrank Liexamples: 15124cd7ecbSFrank Li - | 15224cd7ecbSFrank Li #include <dt-bindings/interrupt-controller/arm-gic.h> 15324cd7ecbSFrank Li 15424cd7ecbSFrank Li soc { 15524cd7ecbSFrank Li #address-cells = <2>; 15624cd7ecbSFrank Li #size-cells = <2>; 15724cd7ecbSFrank Li 15824cd7ecbSFrank Li pcie@3400000 { 15924cd7ecbSFrank Li compatible = "fsl,ls1088a-pcie"; 16024cd7ecbSFrank Li reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */ 16124cd7ecbSFrank Li <0x20 0x00000000 0x0 0x00002000>; /* configuration space */ 16224cd7ecbSFrank Li reg-names = "regs", "config"; 16324cd7ecbSFrank Li interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */ 16424cd7ecbSFrank Li interrupt-names = "aer"; 16524cd7ecbSFrank Li #address-cells = <3>; 16624cd7ecbSFrank Li #size-cells = <2>; 16724cd7ecbSFrank Li dma-coherent; 16824cd7ecbSFrank Li device_type = "pci"; 16924cd7ecbSFrank Li bus-range = <0x0 0xff>; 17024cd7ecbSFrank Li ranges = <0x81000000 0x0 0x00000000 0x20 0x00010000 0x0 0x00010000 /* downstream I/O */ 17124cd7ecbSFrank Li 0x82000000 0x0 0x40000000 0x20 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ 17224cd7ecbSFrank Li msi-parent = <&its>; 17324cd7ecbSFrank Li #interrupt-cells = <1>; 17424cd7ecbSFrank Li interrupt-map-mask = <0 0 0 7>; 17524cd7ecbSFrank Li interrupt-map = <0000 0 0 1 &gic 0 0 0 109 IRQ_TYPE_LEVEL_HIGH>, 17624cd7ecbSFrank Li <0000 0 0 2 &gic 0 0 0 110 IRQ_TYPE_LEVEL_HIGH>, 17724cd7ecbSFrank Li <0000 0 0 3 &gic 0 0 0 111 IRQ_TYPE_LEVEL_HIGH>, 17824cd7ecbSFrank Li <0000 0 0 4 &gic 0 0 0 112 IRQ_TYPE_LEVEL_HIGH>; 17924cd7ecbSFrank Li iommu-map = <0 &smmu 0 1>; /* Fixed-up by bootloader */ 18024cd7ecbSFrank Li }; 18124cd7ecbSFrank Li }; 18224cd7ecbSFrank Li... 183