1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/pci/fsl,layerscape-pcie.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Freescale Layerscape PCIe Root Complex(RC) controller
10 - Frank Li <Frank.Li@nxp.com>
13 This PCIe RC controller is based on the Synopsys DesignWare PCIe IP
15 This controller derives its clocks from the Reset Configuration Word (RCW)
16 which is used to describe the PLL settings at the time of chip-reset.
18 Also as per the available Reference Manuals, there is no specific 'version'
19 register available in the Freescale PCIe controller register set,
20 which can allow determining the underlying DesignWare PCIe controller version
37 - const: fsl,lx2160ar2-pcie
38 - const: fsl,ls2088a-pcie
48 $ref: /schemas/types.yaml#/definitions/phandle-array
49 description: A phandle to the SCFG device node. The second entry is the
50 physical PCIe controller index starting from '0'. This is used to get
54 - description: A phandle to the SCFG device node
55 - description: PCIe controller index starting from '0'
59 $ref: /schemas/types.yaml#/definitions/flag
60 description: If the PEX_LUT and PF register block is in big-endian, specify
78 $ref: /schemas/types.yaml#/definitions/uint32
81 Number of outbound view ports configured in hardware. It's the same as
82 the number of outbound AT windows.
101 - $ref: /schemas/pci/pci-bus.yaml#
148 unevaluatedProperties: false
152 #include <dt-bindings/interrupt-controller/arm-gic.h>
155 #address-cells = <2>;
159 compatible = "fsl,ls1088a-pcie";
160 reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */
161 <0x20 0x00000000 0x0 0x00002000>; /* configuration space */
162 reg-names = "regs", "config";
163 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
164 interrupt-names = "aer";
165 #address-cells = <3>;
169 bus-range = <0x0 0xff>;
170 ranges = <0x81000000 0x0 0x00000000 0x20 0x00010000 0x0 0x00010000 /* downstream I/O */
171 0x82000000 0x0 0x40000000 0x20 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
173 #interrupt-cells = <1>;
174 interrupt-map-mask = <0 0 0 7>;
175 interrupt-map = <0000 0 0 1 &gic 0 0 0 109 IRQ_TYPE_LEVEL_HIGH>,
176 <0000 0 0 2 &gic 0 0 0 110 IRQ_TYPE_LEVEL_HIGH>,
177 <0000 0 0 3 &gic 0 0 0 111 IRQ_TYPE_LEVEL_HIGH>,
178 <0000 0 0 4 &gic 0 0 0 112 IRQ_TYPE_LEVEL_HIGH>;
179 iommu-map = <0 &smmu 0 1>; /* Fixed-up by bootloader */