162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie-ep.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Freescale i.MX6 PCIe Endpoint controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Lucas Stach <l.stach@pengutronix.de> 1162306a36Sopenharmony_ci - Richard Zhu <hongxing.zhu@nxp.com> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cidescription: |+ 1462306a36Sopenharmony_ci This PCIe controller is based on the Synopsys DesignWare PCIe IP and 1562306a36Sopenharmony_ci thus inherits all the common properties defined in snps,dw-pcie-ep.yaml. 1662306a36Sopenharmony_ci The controller instances are dual mode where in they can work either in 1762306a36Sopenharmony_ci Root Port mode or Endpoint mode but one at a time. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciproperties: 2062306a36Sopenharmony_ci compatible: 2162306a36Sopenharmony_ci enum: 2262306a36Sopenharmony_ci - fsl,imx8mm-pcie-ep 2362306a36Sopenharmony_ci - fsl,imx8mq-pcie-ep 2462306a36Sopenharmony_ci - fsl,imx8mp-pcie-ep 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci reg: 2762306a36Sopenharmony_ci minItems: 2 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci reg-names: 3062306a36Sopenharmony_ci items: 3162306a36Sopenharmony_ci - const: dbi 3262306a36Sopenharmony_ci - const: addr_space 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci clocks: 3562306a36Sopenharmony_ci minItems: 3 3662306a36Sopenharmony_ci items: 3762306a36Sopenharmony_ci - description: PCIe bridge clock. 3862306a36Sopenharmony_ci - description: PCIe bus clock. 3962306a36Sopenharmony_ci - description: PCIe PHY clock. 4062306a36Sopenharmony_ci - description: Additional required clock entry for imx6sx-pcie, 4162306a36Sopenharmony_ci imx6sx-pcie-ep, imx8mq-pcie, imx8mq-pcie-ep. 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci clock-names: 4462306a36Sopenharmony_ci minItems: 3 4562306a36Sopenharmony_ci maxItems: 4 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci interrupts: 4862306a36Sopenharmony_ci items: 4962306a36Sopenharmony_ci - description: builtin eDMA interrupter. 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci interrupt-names: 5262306a36Sopenharmony_ci items: 5362306a36Sopenharmony_ci - const: dma 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_cirequired: 5662306a36Sopenharmony_ci - compatible 5762306a36Sopenharmony_ci - reg 5862306a36Sopenharmony_ci - reg-names 5962306a36Sopenharmony_ci - interrupts 6062306a36Sopenharmony_ci - interrupt-names 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ciallOf: 6362306a36Sopenharmony_ci - $ref: /schemas/pci/snps,dw-pcie-ep.yaml# 6462306a36Sopenharmony_ci - $ref: /schemas/pci/fsl,imx6q-pcie-common.yaml# 6562306a36Sopenharmony_ci - if: 6662306a36Sopenharmony_ci properties: 6762306a36Sopenharmony_ci compatible: 6862306a36Sopenharmony_ci enum: 6962306a36Sopenharmony_ci - fsl,imx8mq-pcie-ep 7062306a36Sopenharmony_ci then: 7162306a36Sopenharmony_ci properties: 7262306a36Sopenharmony_ci clocks: 7362306a36Sopenharmony_ci minItems: 4 7462306a36Sopenharmony_ci clock-names: 7562306a36Sopenharmony_ci items: 7662306a36Sopenharmony_ci - const: pcie 7762306a36Sopenharmony_ci - const: pcie_bus 7862306a36Sopenharmony_ci - const: pcie_phy 7962306a36Sopenharmony_ci - const: pcie_aux 8062306a36Sopenharmony_ci else: 8162306a36Sopenharmony_ci properties: 8262306a36Sopenharmony_ci clocks: 8362306a36Sopenharmony_ci maxItems: 3 8462306a36Sopenharmony_ci clock-names: 8562306a36Sopenharmony_ci items: 8662306a36Sopenharmony_ci - const: pcie 8762306a36Sopenharmony_ci - const: pcie_bus 8862306a36Sopenharmony_ci - const: pcie_aux 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ciunevaluatedProperties: false 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ciexamples: 9462306a36Sopenharmony_ci - | 9562306a36Sopenharmony_ci #include <dt-bindings/clock/imx8mp-clock.h> 9662306a36Sopenharmony_ci #include <dt-bindings/power/imx8mp-power.h> 9762306a36Sopenharmony_ci #include <dt-bindings/reset/imx8mp-reset.h> 9862306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci pcie_ep: pcie-ep@33800000 { 10162306a36Sopenharmony_ci compatible = "fsl,imx8mp-pcie-ep"; 10262306a36Sopenharmony_ci reg = <0x33800000 0x000400000>, <0x18000000 0x08000000>; 10362306a36Sopenharmony_ci reg-names = "dbi", "addr_space"; 10462306a36Sopenharmony_ci clocks = <&clk IMX8MP_CLK_HSIO_ROOT>, 10562306a36Sopenharmony_ci <&clk IMX8MP_CLK_HSIO_AXI>, 10662306a36Sopenharmony_ci <&clk IMX8MP_CLK_PCIE_ROOT>; 10762306a36Sopenharmony_ci clock-names = "pcie", "pcie_bus", "pcie_aux"; 10862306a36Sopenharmony_ci assigned-clocks = <&clk IMX8MP_CLK_PCIE_AUX>; 10962306a36Sopenharmony_ci assigned-clock-rates = <10000000>; 11062306a36Sopenharmony_ci assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_50M>; 11162306a36Sopenharmony_ci num-lanes = <1>; 11262306a36Sopenharmony_ci interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; /* eDMA */ 11362306a36Sopenharmony_ci interrupt-names = "dma"; 11462306a36Sopenharmony_ci fsl,max-link-speed = <3>; 11562306a36Sopenharmony_ci power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_PCIE>; 11662306a36Sopenharmony_ci resets = <&src IMX8MP_RESET_PCIE_CTRL_APPS_EN>, 11762306a36Sopenharmony_ci <&src IMX8MP_RESET_PCIE_CTRL_APPS_TURNOFF>; 11862306a36Sopenharmony_ci reset-names = "apps", "turnoff"; 11962306a36Sopenharmony_ci phys = <&pcie_phy>; 12062306a36Sopenharmony_ci phy-names = "pcie-phy"; 12162306a36Sopenharmony_ci num-ib-windows = <4>; 12262306a36Sopenharmony_ci num-ob-windows = <4>; 12362306a36Sopenharmony_ci }; 124