xref: /linux/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml (revision 9e676a024fa1fa2bd8150c2d2ba85478280353bc)
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