1751ca492SRichard Zhu# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2751ca492SRichard Zhu%YAML 1.2 3751ca492SRichard Zhu--- 4751ca492SRichard Zhu$id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie.yaml# 5751ca492SRichard Zhu$schema: http://devicetree.org/meta-schemas/core.yaml# 6751ca492SRichard Zhu 7751ca492SRichard Zhutitle: Freescale i.MX6 PCIe host controller 8751ca492SRichard Zhu 9751ca492SRichard Zhumaintainers: 10751ca492SRichard Zhu - Lucas Stach <l.stach@pengutronix.de> 11751ca492SRichard Zhu - Richard Zhu <hongxing.zhu@nxp.com> 12751ca492SRichard Zhu 13751ca492SRichard Zhudescription: |+ 14751ca492SRichard Zhu This PCIe host controller is based on the Synopsys DesignWare PCIe IP 15751ca492SRichard Zhu and thus inherits all the common properties defined in snps,dw-pcie.yaml. 16b10f8238SRichard Zhu The controller instances are dual mode where in they can work either in 17b10f8238SRichard Zhu Root Port mode or Endpoint mode but one at a time. 18b10f8238SRichard Zhu 19b10f8238SRichard Zhu See fsl,imx6q-pcie-ep.yaml for details on the Endpoint mode device tree 20b10f8238SRichard Zhu bindings. 21751ca492SRichard Zhu 22751ca492SRichard Zhuproperties: 23751ca492SRichard Zhu compatible: 24751ca492SRichard Zhu enum: 25751ca492SRichard Zhu - fsl,imx6q-pcie 26751ca492SRichard Zhu - fsl,imx6sx-pcie 27751ca492SRichard Zhu - fsl,imx6qp-pcie 28751ca492SRichard Zhu - fsl,imx7d-pcie 29751ca492SRichard Zhu - fsl,imx8mq-pcie 3021d5929fSRichard Zhu - fsl,imx8mm-pcie 319be01ee2SRichard Zhu - fsl,imx8mp-pcie 32671a89c4SRichard Zhu - fsl,imx95-pcie 334f1e478fSRichard Zhu - fsl,imx8q-pcie 34751ca492SRichard Zhu 358bbec86cSKrzysztof Kozlowski clocks: 368bbec86cSKrzysztof Kozlowski minItems: 3 378bbec86cSKrzysztof Kozlowski items: 388bbec86cSKrzysztof Kozlowski - description: PCIe bridge clock. 398bbec86cSKrzysztof Kozlowski - description: PCIe bus clock. 408bbec86cSKrzysztof Kozlowski - description: PCIe PHY clock. 418bbec86cSKrzysztof Kozlowski - description: Additional required clock entry for imx6sx-pcie, 428bbec86cSKrzysztof Kozlowski imx6sx-pcie-ep, imx8mq-pcie, imx8mq-pcie-ep. 43*d4627402SRichard Zhu - description: PCIe reference clock. 448bbec86cSKrzysztof Kozlowski 458bbec86cSKrzysztof Kozlowski clock-names: 468bbec86cSKrzysztof Kozlowski minItems: 3 47*d4627402SRichard Zhu maxItems: 5 488bbec86cSKrzysztof Kozlowski 49751ca492SRichard Zhu interrupts: 50751ca492SRichard Zhu items: 51751ca492SRichard Zhu - description: builtin MSI controller. 52751ca492SRichard Zhu 53751ca492SRichard Zhu interrupt-names: 54751ca492SRichard Zhu items: 55751ca492SRichard Zhu - const: msi 56751ca492SRichard Zhu 57751ca492SRichard Zhu reset-gpio: 58751ca492SRichard Zhu description: Should specify the GPIO for controlling the PCI bus device 59751ca492SRichard Zhu reset signal. It's not polarity aware and defaults to active-low reset 60751ca492SRichard Zhu sequence (L=reset state, H=operation state) (optional required). 61751ca492SRichard Zhu 62751ca492SRichard Zhu reset-gpio-active-high: 63751ca492SRichard Zhu description: If present then the reset sequence using the GPIO 64751ca492SRichard Zhu specified in the "reset-gpio" property is reversed (H=reset state, 65751ca492SRichard Zhu L=operation state) (optional required). 66fba48662SRob Herring type: boolean 67751ca492SRichard Zhu 68751ca492SRichard Zhurequired: 69751ca492SRichard Zhu - compatible 70751ca492SRichard Zhu - reg 71751ca492SRichard Zhu - reg-names 72751ca492SRichard Zhu - "#address-cells" 73751ca492SRichard Zhu - "#size-cells" 74751ca492SRichard Zhu - device_type 75751ca492SRichard Zhu - bus-range 76751ca492SRichard Zhu - ranges 77751ca492SRichard Zhu - interrupts 78751ca492SRichard Zhu - interrupt-names 79751ca492SRichard Zhu - "#interrupt-cells" 80751ca492SRichard Zhu - interrupt-map-mask 81751ca492SRichard Zhu - interrupt-map 82751ca492SRichard Zhu 83b8a83e60SSerge SeminallOf: 84b8a83e60SSerge Semin - $ref: /schemas/pci/snps,dw-pcie.yaml# 85b10f8238SRichard Zhu - $ref: /schemas/pci/fsl,imx6q-pcie-common.yaml# 868bbec86cSKrzysztof Kozlowski - if: 878bbec86cSKrzysztof Kozlowski properties: 888bbec86cSKrzysztof Kozlowski compatible: 898bbec86cSKrzysztof Kozlowski enum: 90cf94ce97SFrank Li - fsl,imx6q-pcie 91cf94ce97SFrank Li - fsl,imx6sx-pcie 92cf94ce97SFrank Li - fsl,imx6qp-pcie 93cf94ce97SFrank Li - fsl,imx7d-pcie 94cf94ce97SFrank Li - fsl,imx8mq-pcie 95cf94ce97SFrank Li - fsl,imx8mm-pcie 96cf94ce97SFrank Li - fsl,imx8mp-pcie 97cf94ce97SFrank Li then: 98cf94ce97SFrank Li properties: 99cf94ce97SFrank Li reg: 100cf94ce97SFrank Li maxItems: 2 101cf94ce97SFrank Li reg-names: 102cf94ce97SFrank Li items: 103cf94ce97SFrank Li - const: dbi 104cf94ce97SFrank Li - const: config 105cf94ce97SFrank Li 106cf94ce97SFrank Li - if: 107cf94ce97SFrank Li properties: 108cf94ce97SFrank Li compatible: 109cf94ce97SFrank Li enum: 110671a89c4SRichard Zhu - fsl,imx95-pcie 111671a89c4SRichard Zhu then: 112671a89c4SRichard Zhu properties: 113671a89c4SRichard Zhu reg: 114671a89c4SRichard Zhu minItems: 4 115671a89c4SRichard Zhu maxItems: 4 116671a89c4SRichard Zhu reg-names: 117671a89c4SRichard Zhu items: 118671a89c4SRichard Zhu - const: dbi 119671a89c4SRichard Zhu - const: config 120671a89c4SRichard Zhu - const: atu 121671a89c4SRichard Zhu - const: app 122671a89c4SRichard Zhu 123671a89c4SRichard Zhu - if: 124671a89c4SRichard Zhu properties: 125671a89c4SRichard Zhu compatible: 126671a89c4SRichard Zhu enum: 1278bbec86cSKrzysztof Kozlowski - fsl,imx6sx-pcie 1288bbec86cSKrzysztof Kozlowski then: 1298bbec86cSKrzysztof Kozlowski properties: 1308bbec86cSKrzysztof Kozlowski clocks: 131*d4627402SRichard Zhu maxItems: 4 1328bbec86cSKrzysztof Kozlowski clock-names: 1338bbec86cSKrzysztof Kozlowski items: 1348bbec86cSKrzysztof Kozlowski - const: pcie 1358bbec86cSKrzysztof Kozlowski - const: pcie_bus 1368bbec86cSKrzysztof Kozlowski - const: pcie_phy 1378bbec86cSKrzysztof Kozlowski - const: pcie_inbound_axi 1388bbec86cSKrzysztof Kozlowski 1398bbec86cSKrzysztof Kozlowski - if: 1408bbec86cSKrzysztof Kozlowski properties: 1418bbec86cSKrzysztof Kozlowski compatible: 1428bbec86cSKrzysztof Kozlowski enum: 1438bbec86cSKrzysztof Kozlowski - fsl,imx8mq-pcie 1448bbec86cSKrzysztof Kozlowski then: 1458bbec86cSKrzysztof Kozlowski properties: 1468bbec86cSKrzysztof Kozlowski clocks: 147*d4627402SRichard Zhu maxItems: 4 1488bbec86cSKrzysztof Kozlowski clock-names: 1498bbec86cSKrzysztof Kozlowski items: 1508bbec86cSKrzysztof Kozlowski - const: pcie 1518bbec86cSKrzysztof Kozlowski - const: pcie_bus 1528bbec86cSKrzysztof Kozlowski - const: pcie_phy 1538bbec86cSKrzysztof Kozlowski - const: pcie_aux 1548bbec86cSKrzysztof Kozlowski 1558bbec86cSKrzysztof Kozlowski - if: 1568bbec86cSKrzysztof Kozlowski properties: 1578bbec86cSKrzysztof Kozlowski compatible: 1588bbec86cSKrzysztof Kozlowski enum: 1598bbec86cSKrzysztof Kozlowski - fsl,imx6q-pcie 1608bbec86cSKrzysztof Kozlowski - fsl,imx6qp-pcie 1618bbec86cSKrzysztof Kozlowski - fsl,imx7d-pcie 1628bbec86cSKrzysztof Kozlowski then: 1638bbec86cSKrzysztof Kozlowski properties: 1648bbec86cSKrzysztof Kozlowski clocks: 1658bbec86cSKrzysztof Kozlowski maxItems: 3 1668bbec86cSKrzysztof Kozlowski clock-names: 1678bbec86cSKrzysztof Kozlowski items: 1688bbec86cSKrzysztof Kozlowski - const: pcie 1698bbec86cSKrzysztof Kozlowski - const: pcie_bus 1708bbec86cSKrzysztof Kozlowski - const: pcie_phy 1718bbec86cSKrzysztof Kozlowski 1728bbec86cSKrzysztof Kozlowski - if: 1738bbec86cSKrzysztof Kozlowski properties: 1748bbec86cSKrzysztof Kozlowski compatible: 1758bbec86cSKrzysztof Kozlowski enum: 1768bbec86cSKrzysztof Kozlowski - fsl,imx8mm-pcie 1778bbec86cSKrzysztof Kozlowski - fsl,imx8mp-pcie 1788bbec86cSKrzysztof Kozlowski then: 1798bbec86cSKrzysztof Kozlowski properties: 1808bbec86cSKrzysztof Kozlowski clocks: 1818bbec86cSKrzysztof Kozlowski maxItems: 3 1828bbec86cSKrzysztof Kozlowski clock-names: 1838bbec86cSKrzysztof Kozlowski items: 1848bbec86cSKrzysztof Kozlowski - const: pcie 1858bbec86cSKrzysztof Kozlowski - const: pcie_bus 1868bbec86cSKrzysztof Kozlowski - const: pcie_aux 1871a2cead1SMarek Vasut 1884f1e478fSRichard Zhu - if: 1894f1e478fSRichard Zhu properties: 1904f1e478fSRichard Zhu compatible: 1914f1e478fSRichard Zhu enum: 1924f1e478fSRichard Zhu - fsl,imx8q-pcie 1934f1e478fSRichard Zhu then: 1944f1e478fSRichard Zhu properties: 1954f1e478fSRichard Zhu clocks: 1964f1e478fSRichard Zhu maxItems: 3 1974f1e478fSRichard Zhu clock-names: 1984f1e478fSRichard Zhu items: 1994f1e478fSRichard Zhu - const: dbi 2004f1e478fSRichard Zhu - const: mstr 2014f1e478fSRichard Zhu - const: slv 2024f1e478fSRichard Zhu 203*d4627402SRichard Zhu - if: 204*d4627402SRichard Zhu properties: 205*d4627402SRichard Zhu compatible: 206*d4627402SRichard Zhu enum: 207*d4627402SRichard Zhu - fsl,imx95-pcie 208*d4627402SRichard Zhu then: 209*d4627402SRichard Zhu properties: 210*d4627402SRichard Zhu clocks: 211*d4627402SRichard Zhu maxItems: 5 212*d4627402SRichard Zhu clock-names: 213*d4627402SRichard Zhu items: 214*d4627402SRichard Zhu - const: pcie 215*d4627402SRichard Zhu - const: pcie_bus 216*d4627402SRichard Zhu - const: pcie_phy 217*d4627402SRichard Zhu - const: pcie_aux 218*d4627402SRichard Zhu - const: ref 219*d4627402SRichard Zhu 220751ca492SRichard ZhuunevaluatedProperties: false 221751ca492SRichard Zhu 222751ca492SRichard Zhuexamples: 223751ca492SRichard Zhu - | 224751ca492SRichard Zhu #include <dt-bindings/clock/imx6qdl-clock.h> 225751ca492SRichard Zhu #include <dt-bindings/interrupt-controller/arm-gic.h> 226751ca492SRichard Zhu 227751ca492SRichard Zhu pcie: pcie@1ffc000 { 228751ca492SRichard Zhu compatible = "fsl,imx6q-pcie"; 229751ca492SRichard Zhu reg = <0x01ffc000 0x04000>, 230751ca492SRichard Zhu <0x01f00000 0x80000>; 231751ca492SRichard Zhu reg-names = "dbi", "config"; 232751ca492SRichard Zhu #address-cells = <3>; 233751ca492SRichard Zhu #size-cells = <2>; 234751ca492SRichard Zhu device_type = "pci"; 235751ca492SRichard Zhu bus-range = <0x00 0xff>; 236751ca492SRichard Zhu ranges = <0x81000000 0 0 0x01f80000 0 0x00010000>, 237751ca492SRichard Zhu <0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; 238751ca492SRichard Zhu num-lanes = <1>; 239751ca492SRichard Zhu interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 240751ca492SRichard Zhu interrupt-names = "msi"; 241751ca492SRichard Zhu #interrupt-cells = <1>; 242751ca492SRichard Zhu interrupt-map-mask = <0 0 0 0x7>; 243751ca492SRichard Zhu interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 244751ca492SRichard Zhu <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 245751ca492SRichard Zhu <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 246751ca492SRichard Zhu <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 247751ca492SRichard Zhu clocks = <&clks IMX6QDL_CLK_PCIE_AXI>, 248751ca492SRichard Zhu <&clks IMX6QDL_CLK_LVDS1_GATE>, 249751ca492SRichard Zhu <&clks IMX6QDL_CLK_PCIE_REF_125M>; 250751ca492SRichard Zhu clock-names = "pcie", "pcie_bus", "pcie_phy"; 251751ca492SRichard Zhu }; 252751ca492SRichard Zhu... 253