Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Freescale i.MX6 PCIe host controller maintainers: - Lucas Stach <l.stach@pengutronix.de> - Richard Zhu <hongxing.zhu@nxp.com> description: |+ This PCIe host controller is based on the Synopsys DesignWare PCIe IP and thus inherits all the common properties defined in snps,dw-pcie.yaml. The controller instances are dual mode where in they can work either in Root Port mode or Endpoint mode but one at a time. See fsl,imx6q-pcie-ep.yaml for details on the Endpoint mode device tree bindings. properties: compatible: enum: - fsl,imx6q-pcie - fsl,imx6sx-pcie - fsl,imx6qp-pcie - fsl,imx7d-pcie - fsl,imx8mq-pcie - fsl,imx8mm-pcie - fsl,imx8mp-pcie reg: items: - description: Data Bus Interface (DBI) registers. - description: PCIe configuration space region. reg-names: items: - const: dbi - const: config clocks: minItems: 3 items: - description: PCIe bridge clock. - description: PCIe bus clock. - description: PCIe PHY clock. - description: Additional required clock entry for imx6sx-pcie, imx6sx-pcie-ep, imx8mq-pcie, imx8mq-pcie-ep. clock-names: minItems: 3 maxItems: 4 interrupts: items: - description: builtin MSI controller. interrupt-names: items: - const: msi reset-gpio: description: Should specify the GPIO for controlling the PCI bus device reset signal. It's not polarity aware and defaults to active-low reset sequence (L=reset state, H=operation state) (optional required). reset-gpio-active-high: description: If present then the reset sequence using the GPIO specified in the "reset-gpio" property is reversed (H=reset state, L=operation state) (optional required). type: boolean required: - compatible - reg - reg-names - "#address-cells" - "#size-cells" - device_type - bus-range - ranges - interrupts - interrupt-names - "#interrupt-cells" - interrupt-map-mask - interrupt-map allOf: - $ref: /schemas/pci/snps,dw-pcie.yaml# - $ref: /schemas/pci/fsl,imx6q-pcie-common.yaml# - if: properties: compatible: enum: - fsl,imx6sx-pcie then: properties: clocks: minItems: 4 clock-names: items: - const: pcie - const: pcie_bus - const: pcie_phy - const: pcie_inbound_axi - if: properties: compatible: enum: - fsl,imx8mq-pcie then: properties: clocks: minItems: 4 clock-names: items: - const: pcie - const: pcie_bus - const: pcie_phy - const: pcie_aux - if: properties: compatible: enum: - fsl,imx6q-pcie - fsl,imx6qp-pcie - fsl,imx7d-pcie then: properties: clocks: maxItems: 3 clock-names: items: - const: pcie - const: pcie_bus - const: pcie_phy - if: properties: compatible: enum: - fsl,imx8mm-pcie - fsl,imx8mp-pcie then: properties: clocks: maxItems: 3 clock-names: items: - const: pcie - const: pcie_bus - const: pcie_aux unevaluatedProperties: false examples: - | #include <dt-bindings/clock/imx6qdl-clock.h> #include <dt-bindings/interrupt-controller/arm-gic.h> pcie: pcie@1ffc000 { compatible = "fsl,imx6q-pcie"; reg = <0x01ffc000 0x04000>, <0x01f00000 0x80000>; reg-names = "dbi", "config"; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; bus-range = <0x00 0xff>; ranges = <0x81000000 0 0 0x01f80000 0 0x00010000>, <0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; num-lanes = <1>; interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "msi"; #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 0x7>; interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6QDL_CLK_PCIE_AXI>, <&clks IMX6QDL_CLK_LVDS1_GATE>, <&clks IMX6QDL_CLK_PCIE_REF_125M>; clock-names = "pcie", "pcie_bus", "pcie_phy"; }; ... |