1*06f4ac1fSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*06f4ac1fSKrzysztof Kozlowski%YAML 1.2 3*06f4ac1fSKrzysztof Kozlowski--- 4*06f4ac1fSKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-ipq6018.yaml# 5*06f4ac1fSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*06f4ac1fSKrzysztof Kozlowski 7*06f4ac1fSKrzysztof Kozlowskititle: Qualcomm IPQ6018 PCI Express Root Complex 8*06f4ac1fSKrzysztof Kozlowski 9*06f4ac1fSKrzysztof Kozlowskimaintainers: 10*06f4ac1fSKrzysztof Kozlowski - Bjorn Andersson <andersson@kernel.org> 11*06f4ac1fSKrzysztof Kozlowski - Manivannan Sadhasivam <mani@kernel.org> 12*06f4ac1fSKrzysztof Kozlowski 13*06f4ac1fSKrzysztof Kozlowskiproperties: 14*06f4ac1fSKrzysztof Kozlowski compatible: 15*06f4ac1fSKrzysztof Kozlowski enum: 16*06f4ac1fSKrzysztof Kozlowski - qcom,pcie-ipq6018 17*06f4ac1fSKrzysztof Kozlowski - qcom,pcie-ipq8074-gen3 18*06f4ac1fSKrzysztof Kozlowski 19*06f4ac1fSKrzysztof Kozlowski reg: 20*06f4ac1fSKrzysztof Kozlowski minItems: 5 21*06f4ac1fSKrzysztof Kozlowski maxItems: 6 22*06f4ac1fSKrzysztof Kozlowski 23*06f4ac1fSKrzysztof Kozlowski reg-names: 24*06f4ac1fSKrzysztof Kozlowski minItems: 5 25*06f4ac1fSKrzysztof Kozlowski items: 26*06f4ac1fSKrzysztof Kozlowski - const: dbi 27*06f4ac1fSKrzysztof Kozlowski - const: elbi 28*06f4ac1fSKrzysztof Kozlowski - const: atu 29*06f4ac1fSKrzysztof Kozlowski - const: parf 30*06f4ac1fSKrzysztof Kozlowski - const: config 31*06f4ac1fSKrzysztof Kozlowski - const: mhi 32*06f4ac1fSKrzysztof Kozlowski 33*06f4ac1fSKrzysztof Kozlowski clocks: 34*06f4ac1fSKrzysztof Kozlowski maxItems: 5 35*06f4ac1fSKrzysztof Kozlowski 36*06f4ac1fSKrzysztof Kozlowski clock-names: 37*06f4ac1fSKrzysztof Kozlowski items: 38*06f4ac1fSKrzysztof Kozlowski - const: iface # PCIe to SysNOC BIU clock 39*06f4ac1fSKrzysztof Kozlowski - const: axi_m # AXI Master clock 40*06f4ac1fSKrzysztof Kozlowski - const: axi_s # AXI Slave clock 41*06f4ac1fSKrzysztof Kozlowski - const: axi_bridge 42*06f4ac1fSKrzysztof Kozlowski - const: rchng 43*06f4ac1fSKrzysztof Kozlowski 44*06f4ac1fSKrzysztof Kozlowski interrupts: 45*06f4ac1fSKrzysztof Kozlowski maxItems: 9 46*06f4ac1fSKrzysztof Kozlowski 47*06f4ac1fSKrzysztof Kozlowski interrupt-names: 48*06f4ac1fSKrzysztof Kozlowski items: 49*06f4ac1fSKrzysztof Kozlowski - const: msi0 50*06f4ac1fSKrzysztof Kozlowski - const: msi1 51*06f4ac1fSKrzysztof Kozlowski - const: msi2 52*06f4ac1fSKrzysztof Kozlowski - const: msi3 53*06f4ac1fSKrzysztof Kozlowski - const: msi4 54*06f4ac1fSKrzysztof Kozlowski - const: msi5 55*06f4ac1fSKrzysztof Kozlowski - const: msi6 56*06f4ac1fSKrzysztof Kozlowski - const: msi7 57*06f4ac1fSKrzysztof Kozlowski - const: global 58*06f4ac1fSKrzysztof Kozlowski 59*06f4ac1fSKrzysztof Kozlowski resets: 60*06f4ac1fSKrzysztof Kozlowski maxItems: 8 61*06f4ac1fSKrzysztof Kozlowski 62*06f4ac1fSKrzysztof Kozlowski reset-names: 63*06f4ac1fSKrzysztof Kozlowski items: 64*06f4ac1fSKrzysztof Kozlowski - const: pipe 65*06f4ac1fSKrzysztof Kozlowski - const: sleep 66*06f4ac1fSKrzysztof Kozlowski - const: sticky # Core sticky reset 67*06f4ac1fSKrzysztof Kozlowski - const: axi_m # AXI master reset 68*06f4ac1fSKrzysztof Kozlowski - const: axi_s # AXI slave reset 69*06f4ac1fSKrzysztof Kozlowski - const: ahb 70*06f4ac1fSKrzysztof Kozlowski - const: axi_m_sticky # AXI master sticky reset 71*06f4ac1fSKrzysztof Kozlowski - const: axi_s_sticky # AXI slave sticky reset 72*06f4ac1fSKrzysztof Kozlowski 73*06f4ac1fSKrzysztof Kozlowskirequired: 74*06f4ac1fSKrzysztof Kozlowski - resets 75*06f4ac1fSKrzysztof Kozlowski - reset-names 76*06f4ac1fSKrzysztof Kozlowski 77*06f4ac1fSKrzysztof KozlowskiallOf: 78*06f4ac1fSKrzysztof Kozlowski - $ref: qcom,pcie-common.yaml# 79*06f4ac1fSKrzysztof Kozlowski 80*06f4ac1fSKrzysztof KozlowskiunevaluatedProperties: false 81*06f4ac1fSKrzysztof Kozlowski 82*06f4ac1fSKrzysztof Kozlowskiexamples: 83*06f4ac1fSKrzysztof Kozlowski - | 84*06f4ac1fSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-ipq6018.h> 85*06f4ac1fSKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 86*06f4ac1fSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 87*06f4ac1fSKrzysztof Kozlowski #include <dt-bindings/reset/qcom,gcc-ipq6018.h> 88*06f4ac1fSKrzysztof Kozlowski 89*06f4ac1fSKrzysztof Kozlowski soc { 90*06f4ac1fSKrzysztof Kozlowski #address-cells = <2>; 91*06f4ac1fSKrzysztof Kozlowski #size-cells = <2>; 92*06f4ac1fSKrzysztof Kozlowski 93*06f4ac1fSKrzysztof Kozlowski pcie@20000000 { 94*06f4ac1fSKrzysztof Kozlowski compatible = "qcom,pcie-ipq6018"; 95*06f4ac1fSKrzysztof Kozlowski reg = <0x0 0x20000000 0x0 0xf1d>, 96*06f4ac1fSKrzysztof Kozlowski <0x0 0x20000f20 0x0 0xa8>, 97*06f4ac1fSKrzysztof Kozlowski <0x0 0x20001000 0x0 0x1000>, 98*06f4ac1fSKrzysztof Kozlowski <0x0 0x80000 0x0 0x4000>, 99*06f4ac1fSKrzysztof Kozlowski <0x0 0x20100000 0x0 0x1000>; 100*06f4ac1fSKrzysztof Kozlowski reg-names = "dbi", "elbi", "atu", "parf", "config"; 101*06f4ac1fSKrzysztof Kozlowski ranges = <0x81000000 0x0 0x00000000 0x0 0x20200000 0x0 0x10000>, 102*06f4ac1fSKrzysztof Kozlowski <0x82000000 0x0 0x20220000 0x0 0x20220000 0x0 0xfde0000>; 103*06f4ac1fSKrzysztof Kozlowski 104*06f4ac1fSKrzysztof Kozlowski device_type = "pci"; 105*06f4ac1fSKrzysztof Kozlowski linux,pci-domain = <0>; 106*06f4ac1fSKrzysztof Kozlowski bus-range = <0x00 0xff>; 107*06f4ac1fSKrzysztof Kozlowski num-lanes = <1>; 108*06f4ac1fSKrzysztof Kozlowski max-link-speed = <3>; 109*06f4ac1fSKrzysztof Kozlowski #address-cells = <3>; 110*06f4ac1fSKrzysztof Kozlowski #size-cells = <2>; 111*06f4ac1fSKrzysztof Kozlowski 112*06f4ac1fSKrzysztof Kozlowski clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>, 113*06f4ac1fSKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_M_CLK>, 114*06f4ac1fSKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_S_CLK>, 115*06f4ac1fSKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>, 116*06f4ac1fSKrzysztof Kozlowski <&gcc PCIE0_RCHNG_CLK>; 117*06f4ac1fSKrzysztof Kozlowski clock-names = "iface", 118*06f4ac1fSKrzysztof Kozlowski "axi_m", 119*06f4ac1fSKrzysztof Kozlowski "axi_s", 120*06f4ac1fSKrzysztof Kozlowski "axi_bridge", 121*06f4ac1fSKrzysztof Kozlowski "rchng"; 122*06f4ac1fSKrzysztof Kozlowski 123*06f4ac1fSKrzysztof Kozlowski interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 124*06f4ac1fSKrzysztof Kozlowski <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 125*06f4ac1fSKrzysztof Kozlowski <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 126*06f4ac1fSKrzysztof Kozlowski <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 127*06f4ac1fSKrzysztof Kozlowski <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 128*06f4ac1fSKrzysztof Kozlowski <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>, 129*06f4ac1fSKrzysztof Kozlowski <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 130*06f4ac1fSKrzysztof Kozlowski <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 131*06f4ac1fSKrzysztof Kozlowski <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 132*06f4ac1fSKrzysztof Kozlowski interrupt-names = "msi0", 133*06f4ac1fSKrzysztof Kozlowski "msi1", 134*06f4ac1fSKrzysztof Kozlowski "msi2", 135*06f4ac1fSKrzysztof Kozlowski "msi3", 136*06f4ac1fSKrzysztof Kozlowski "msi4", 137*06f4ac1fSKrzysztof Kozlowski "msi5", 138*06f4ac1fSKrzysztof Kozlowski "msi6", 139*06f4ac1fSKrzysztof Kozlowski "msi7", 140*06f4ac1fSKrzysztof Kozlowski "global"; 141*06f4ac1fSKrzysztof Kozlowski 142*06f4ac1fSKrzysztof Kozlowski #interrupt-cells = <1>; 143*06f4ac1fSKrzysztof Kozlowski interrupt-map-mask = <0 0 0 0x7>; 144*06f4ac1fSKrzysztof Kozlowski interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 145*06f4ac1fSKrzysztof Kozlowski <0 0 0 2 &intc 0 0 GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 146*06f4ac1fSKrzysztof Kozlowski <0 0 0 3 &intc 0 0 GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 147*06f4ac1fSKrzysztof Kozlowski <0 0 0 4 &intc 0 0 GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 148*06f4ac1fSKrzysztof Kozlowski 149*06f4ac1fSKrzysztof Kozlowski phys = <&pcie_phy>; 150*06f4ac1fSKrzysztof Kozlowski phy-names = "pciephy"; 151*06f4ac1fSKrzysztof Kozlowski 152*06f4ac1fSKrzysztof Kozlowski resets = <&gcc GCC_PCIE0_PIPE_ARES>, 153*06f4ac1fSKrzysztof Kozlowski <&gcc GCC_PCIE0_SLEEP_ARES>, 154*06f4ac1fSKrzysztof Kozlowski <&gcc GCC_PCIE0_CORE_STICKY_ARES>, 155*06f4ac1fSKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_MASTER_ARES>, 156*06f4ac1fSKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_SLAVE_ARES>, 157*06f4ac1fSKrzysztof Kozlowski <&gcc GCC_PCIE0_AHB_ARES>, 158*06f4ac1fSKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>, 159*06f4ac1fSKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>; 160*06f4ac1fSKrzysztof Kozlowski reset-names = "pipe", 161*06f4ac1fSKrzysztof Kozlowski "sleep", 162*06f4ac1fSKrzysztof Kozlowski "sticky", 163*06f4ac1fSKrzysztof Kozlowski "axi_m", 164*06f4ac1fSKrzysztof Kozlowski "axi_s", 165*06f4ac1fSKrzysztof Kozlowski "ahb", 166*06f4ac1fSKrzysztof Kozlowski "axi_m_sticky", 167*06f4ac1fSKrzysztof Kozlowski "axi_s_sticky"; 168*06f4ac1fSKrzysztof Kozlowski 169*06f4ac1fSKrzysztof Kozlowski pcie@0 { 170*06f4ac1fSKrzysztof Kozlowski device_type = "pci"; 171*06f4ac1fSKrzysztof Kozlowski reg = <0x0 0x0 0x0 0x0 0x0>; 172*06f4ac1fSKrzysztof Kozlowski bus-range = <0x01 0xff>; 173*06f4ac1fSKrzysztof Kozlowski 174*06f4ac1fSKrzysztof Kozlowski #address-cells = <3>; 175*06f4ac1fSKrzysztof Kozlowski #size-cells = <2>; 176*06f4ac1fSKrzysztof Kozlowski ranges; 177*06f4ac1fSKrzysztof Kozlowski }; 178*06f4ac1fSKrzysztof Kozlowski }; 179*06f4ac1fSKrzysztof Kozlowski }; 180