1692eadd5SAbel Vesa# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2692eadd5SAbel Vesa%YAML 1.2 3692eadd5SAbel Vesa--- 4692eadd5SAbel Vesa$id: http://devicetree.org/schemas/pci/qcom,pcie-x1e80100.yaml# 5692eadd5SAbel Vesa$schema: http://devicetree.org/meta-schemas/core.yaml# 6692eadd5SAbel Vesa 7692eadd5SAbel Vesatitle: Qualcomm X1E80100 PCI Express Root Complex 8692eadd5SAbel Vesa 9692eadd5SAbel Vesamaintainers: 10692eadd5SAbel Vesa - Bjorn Andersson <andersson@kernel.org> 11692eadd5SAbel Vesa - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 12692eadd5SAbel Vesa 13692eadd5SAbel Vesadescription: 14692eadd5SAbel Vesa Qualcomm X1E80100 SoC (and compatible) PCIe root complex controller is based on 15692eadd5SAbel Vesa the Synopsys DesignWare PCIe IP. 16692eadd5SAbel Vesa 17692eadd5SAbel Vesaproperties: 18692eadd5SAbel Vesa compatible: 19692eadd5SAbel Vesa const: qcom,pcie-x1e80100 20692eadd5SAbel Vesa 21692eadd5SAbel Vesa reg: 2230e7c6ccSAbel Vesa minItems: 6 23692eadd5SAbel Vesa maxItems: 6 24692eadd5SAbel Vesa 25692eadd5SAbel Vesa reg-names: 26692eadd5SAbel Vesa items: 27692eadd5SAbel Vesa - const: parf # Qualcomm specific registers 28692eadd5SAbel Vesa - const: dbi # DesignWare PCIe registers 29692eadd5SAbel Vesa - const: elbi # External local bus interface registers 30692eadd5SAbel Vesa - const: atu # ATU address space 31692eadd5SAbel Vesa - const: config # PCIe configuration space 32692eadd5SAbel Vesa - const: mhi # MHI registers 33692eadd5SAbel Vesa 34692eadd5SAbel Vesa clocks: 35692eadd5SAbel Vesa minItems: 7 36692eadd5SAbel Vesa maxItems: 7 37692eadd5SAbel Vesa 38692eadd5SAbel Vesa clock-names: 39692eadd5SAbel Vesa items: 40692eadd5SAbel Vesa - const: aux # Auxiliary clock 41692eadd5SAbel Vesa - const: cfg # Configuration clock 42692eadd5SAbel Vesa - const: bus_master # Master AXI clock 43692eadd5SAbel Vesa - const: bus_slave # Slave AXI clock 44692eadd5SAbel Vesa - const: slave_q2a # Slave Q2A clock 45692eadd5SAbel Vesa - const: noc_aggr # Aggre NoC PCIe AXI clock 46692eadd5SAbel Vesa - const: cnoc_sf_axi # Config NoC PCIe1 AXI clock 47692eadd5SAbel Vesa 48692eadd5SAbel Vesa interrupts: 49692eadd5SAbel Vesa minItems: 8 50*66dc2059SQiang Yu maxItems: 9 51692eadd5SAbel Vesa 52692eadd5SAbel Vesa interrupt-names: 53*66dc2059SQiang Yu minItems: 8 54692eadd5SAbel Vesa items: 55692eadd5SAbel Vesa - const: msi0 56692eadd5SAbel Vesa - const: msi1 57692eadd5SAbel Vesa - const: msi2 58692eadd5SAbel Vesa - const: msi3 59692eadd5SAbel Vesa - const: msi4 60692eadd5SAbel Vesa - const: msi5 61692eadd5SAbel Vesa - const: msi6 62692eadd5SAbel Vesa - const: msi7 63*66dc2059SQiang Yu - const: global 64692eadd5SAbel Vesa 65692eadd5SAbel Vesa resets: 66692eadd5SAbel Vesa minItems: 1 67692eadd5SAbel Vesa maxItems: 2 68692eadd5SAbel Vesa 69692eadd5SAbel Vesa reset-names: 70692eadd5SAbel Vesa minItems: 1 71692eadd5SAbel Vesa items: 72692eadd5SAbel Vesa - const: pci # PCIe core reset 73692eadd5SAbel Vesa - const: link_down # PCIe link down reset 74692eadd5SAbel Vesa 75692eadd5SAbel VesaallOf: 76692eadd5SAbel Vesa - $ref: qcom,pcie-common.yaml# 77692eadd5SAbel Vesa 78692eadd5SAbel VesaunevaluatedProperties: false 79692eadd5SAbel Vesa 80692eadd5SAbel Vesaexamples: 81692eadd5SAbel Vesa - | 82692eadd5SAbel Vesa #include <dt-bindings/clock/qcom,x1e80100-gcc.h> 83692eadd5SAbel Vesa #include <dt-bindings/gpio/gpio.h> 84692eadd5SAbel Vesa #include <dt-bindings/interconnect/qcom,x1e80100-rpmh.h> 85692eadd5SAbel Vesa #include <dt-bindings/interrupt-controller/arm-gic.h> 86692eadd5SAbel Vesa 87692eadd5SAbel Vesa soc { 88692eadd5SAbel Vesa #address-cells = <2>; 89692eadd5SAbel Vesa #size-cells = <2>; 90692eadd5SAbel Vesa 91692eadd5SAbel Vesa pcie@1c08000 { 92692eadd5SAbel Vesa compatible = "qcom,pcie-x1e80100"; 93692eadd5SAbel Vesa reg = <0 0x01c08000 0 0x3000>, 94692eadd5SAbel Vesa <0 0x7c000000 0 0xf1d>, 95692eadd5SAbel Vesa <0 0x7c000f40 0 0xa8>, 96692eadd5SAbel Vesa <0 0x7c001000 0 0x1000>, 97692eadd5SAbel Vesa <0 0x7c100000 0 0x100000>, 98692eadd5SAbel Vesa <0 0x01c0b000 0 0x1000>; 99692eadd5SAbel Vesa reg-names = "parf", "dbi", "elbi", "atu", "config", "mhi"; 100692eadd5SAbel Vesa ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>, 101692eadd5SAbel Vesa <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x3d00000>; 102692eadd5SAbel Vesa 103692eadd5SAbel Vesa bus-range = <0x00 0xff>; 104692eadd5SAbel Vesa device_type = "pci"; 105692eadd5SAbel Vesa linux,pci-domain = <0>; 106692eadd5SAbel Vesa num-lanes = <2>; 107692eadd5SAbel Vesa 108692eadd5SAbel Vesa #address-cells = <3>; 109692eadd5SAbel Vesa #size-cells = <2>; 110692eadd5SAbel Vesa 111692eadd5SAbel Vesa clocks = <&gcc GCC_PCIE_4_AUX_CLK>, 112692eadd5SAbel Vesa <&gcc GCC_PCIE_4_CFG_AHB_CLK>, 113692eadd5SAbel Vesa <&gcc GCC_PCIE_4_MSTR_AXI_CLK>, 114692eadd5SAbel Vesa <&gcc GCC_PCIE_4_SLV_AXI_CLK>, 115692eadd5SAbel Vesa <&gcc GCC_PCIE_4_SLV_Q2A_AXI_CLK>, 116692eadd5SAbel Vesa <&gcc GCC_CFG_NOC_PCIE_ANOC_NORTH_AHB_CLK>, 117692eadd5SAbel Vesa <&gcc GCC_CNOC_PCIE_NORTH_SF_AXI_CLK>; 118692eadd5SAbel Vesa clock-names = "aux", 119692eadd5SAbel Vesa "cfg", 120692eadd5SAbel Vesa "bus_master", 121692eadd5SAbel Vesa "bus_slave", 122692eadd5SAbel Vesa "slave_q2a", 123692eadd5SAbel Vesa "noc_aggr", 124692eadd5SAbel Vesa "cnoc_sf_axi"; 125692eadd5SAbel Vesa 126692eadd5SAbel Vesa dma-coherent; 127692eadd5SAbel Vesa 128692eadd5SAbel Vesa interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, 129692eadd5SAbel Vesa <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 130692eadd5SAbel Vesa <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, 131692eadd5SAbel Vesa <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, 132692eadd5SAbel Vesa <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 133692eadd5SAbel Vesa <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 134692eadd5SAbel Vesa <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, 135*66dc2059SQiang Yu <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 136*66dc2059SQiang Yu <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 137692eadd5SAbel Vesa interrupt-names = "msi0", "msi1", "msi2", "msi3", 138*66dc2059SQiang Yu "msi4", "msi5", "msi6", "msi7", "global"; 139692eadd5SAbel Vesa #interrupt-cells = <1>; 140692eadd5SAbel Vesa interrupt-map-mask = <0 0 0 0x7>; 141692eadd5SAbel Vesa interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 142692eadd5SAbel Vesa <0 0 0 2 &intc 0 0 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 143692eadd5SAbel Vesa <0 0 0 3 &intc 0 0 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 144692eadd5SAbel Vesa <0 0 0 4 &intc 0 0 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 145692eadd5SAbel Vesa 146692eadd5SAbel Vesa interconnects = <&pcie_noc MASTER_PCIE_4 0 &mc_virt SLAVE_EBI1 0>, 147692eadd5SAbel Vesa <&gem_noc MASTER_APPSS_PROC 0 &cnoc_main SLAVE_PCIE_4 0>; 148692eadd5SAbel Vesa interconnect-names = "pcie-mem", "cpu-pcie"; 149692eadd5SAbel Vesa 150692eadd5SAbel Vesa iommu-map = <0x0 &apps_smmu 0x1400 0x1>, 151692eadd5SAbel Vesa <0x100 &apps_smmu 0x1401 0x1>; 152692eadd5SAbel Vesa 153692eadd5SAbel Vesa phys = <&pcie4_phy>; 154692eadd5SAbel Vesa phy-names = "pciephy"; 155692eadd5SAbel Vesa 156692eadd5SAbel Vesa pinctrl-0 = <&pcie0_default_state>; 157692eadd5SAbel Vesa pinctrl-names = "default"; 158692eadd5SAbel Vesa 159692eadd5SAbel Vesa power-domains = <&gcc GCC_PCIE_4_GDSC>; 160692eadd5SAbel Vesa 161692eadd5SAbel Vesa resets = <&gcc GCC_PCIE_4_BCR>; 162692eadd5SAbel Vesa reset-names = "pci"; 163692eadd5SAbel Vesa 164692eadd5SAbel Vesa perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>; 165692eadd5SAbel Vesa wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>; 166692eadd5SAbel Vesa }; 167692eadd5SAbel Vesa }; 168