1*c007a550SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*c007a550SKrzysztof Kozlowski%YAML 1.2 3*c007a550SKrzysztof Kozlowski--- 4*c007a550SKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-sc8280xp.yaml# 5*c007a550SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*c007a550SKrzysztof Kozlowski 7*c007a550SKrzysztof Kozlowskititle: Qualcomm SC8280XP PCI Express Root Complex 8*c007a550SKrzysztof Kozlowski 9*c007a550SKrzysztof Kozlowskimaintainers: 10*c007a550SKrzysztof Kozlowski - Bjorn Andersson <andersson@kernel.org> 11*c007a550SKrzysztof Kozlowski - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 12*c007a550SKrzysztof Kozlowski 13*c007a550SKrzysztof Kozlowskidescription: 14*c007a550SKrzysztof Kozlowski Qualcomm SC8280XP SoC PCIe root complex controller is based on the Synopsys 15*c007a550SKrzysztof Kozlowski DesignWare PCIe IP. 16*c007a550SKrzysztof Kozlowski 17*c007a550SKrzysztof Kozlowskiproperties: 18*c007a550SKrzysztof Kozlowski compatible: 19*c007a550SKrzysztof Kozlowski enum: 20*c007a550SKrzysztof Kozlowski - qcom,pcie-sa8540p 21*c007a550SKrzysztof Kozlowski - qcom,pcie-sc8280xp 22*c007a550SKrzysztof Kozlowski 23*c007a550SKrzysztof Kozlowski reg: 24*c007a550SKrzysztof Kozlowski minItems: 5 25*c007a550SKrzysztof Kozlowski maxItems: 6 26*c007a550SKrzysztof Kozlowski 27*c007a550SKrzysztof Kozlowski reg-names: 28*c007a550SKrzysztof Kozlowski minItems: 5 29*c007a550SKrzysztof Kozlowski items: 30*c007a550SKrzysztof Kozlowski - const: parf # Qualcomm specific registers 31*c007a550SKrzysztof Kozlowski - const: dbi # DesignWare PCIe registers 32*c007a550SKrzysztof Kozlowski - const: elbi # External local bus interface registers 33*c007a550SKrzysztof Kozlowski - const: atu # ATU address space 34*c007a550SKrzysztof Kozlowski - const: config # PCIe configuration space 35*c007a550SKrzysztof Kozlowski - const: mhi # MHI registers 36*c007a550SKrzysztof Kozlowski 37*c007a550SKrzysztof Kozlowski clocks: 38*c007a550SKrzysztof Kozlowski minItems: 8 39*c007a550SKrzysztof Kozlowski maxItems: 9 40*c007a550SKrzysztof Kozlowski 41*c007a550SKrzysztof Kozlowski clock-names: 42*c007a550SKrzysztof Kozlowski minItems: 8 43*c007a550SKrzysztof Kozlowski items: 44*c007a550SKrzysztof Kozlowski - const: aux # Auxiliary clock 45*c007a550SKrzysztof Kozlowski - const: cfg # Configuration clock 46*c007a550SKrzysztof Kozlowski - const: bus_master # Master AXI clock 47*c007a550SKrzysztof Kozlowski - const: bus_slave # Slave AXI clock 48*c007a550SKrzysztof Kozlowski - const: slave_q2a # Slave Q2A clock 49*c007a550SKrzysztof Kozlowski - const: ddrss_sf_tbu # PCIe SF TBU clock 50*c007a550SKrzysztof Kozlowski - const: noc_aggr_4 # NoC aggregate 4 clock 51*c007a550SKrzysztof Kozlowski - const: noc_aggr_south_sf # NoC aggregate South SF clock 52*c007a550SKrzysztof Kozlowski - const: cnoc_qx # Configuration NoC QX clock 53*c007a550SKrzysztof Kozlowski 54*c007a550SKrzysztof Kozlowski resets: 55*c007a550SKrzysztof Kozlowski maxItems: 1 56*c007a550SKrzysztof Kozlowski 57*c007a550SKrzysztof Kozlowski reset-names: 58*c007a550SKrzysztof Kozlowski items: 59*c007a550SKrzysztof Kozlowski - const: pci 60*c007a550SKrzysztof Kozlowski 61*c007a550SKrzysztof Kozlowskirequired: 62*c007a550SKrzysztof Kozlowski - interconnects 63*c007a550SKrzysztof Kozlowski - interconnect-names 64*c007a550SKrzysztof Kozlowski 65*c007a550SKrzysztof KozlowskiallOf: 66*c007a550SKrzysztof Kozlowski - $ref: qcom,pcie-common.yaml# 67*c007a550SKrzysztof Kozlowski - if: 68*c007a550SKrzysztof Kozlowski properties: 69*c007a550SKrzysztof Kozlowski compatible: 70*c007a550SKrzysztof Kozlowski contains: 71*c007a550SKrzysztof Kozlowski enum: 72*c007a550SKrzysztof Kozlowski - qcom,pcie-sc8280xp 73*c007a550SKrzysztof Kozlowski then: 74*c007a550SKrzysztof Kozlowski properties: 75*c007a550SKrzysztof Kozlowski interrupts: 76*c007a550SKrzysztof Kozlowski minItems: 4 77*c007a550SKrzysztof Kozlowski maxItems: 4 78*c007a550SKrzysztof Kozlowski interrupt-names: 79*c007a550SKrzysztof Kozlowski items: 80*c007a550SKrzysztof Kozlowski - const: msi0 81*c007a550SKrzysztof Kozlowski - const: msi1 82*c007a550SKrzysztof Kozlowski - const: msi2 83*c007a550SKrzysztof Kozlowski - const: msi3 84*c007a550SKrzysztof Kozlowski else: 85*c007a550SKrzysztof Kozlowski properties: 86*c007a550SKrzysztof Kozlowski interrupts: 87*c007a550SKrzysztof Kozlowski maxItems: 1 88*c007a550SKrzysztof Kozlowski interrupt-names: 89*c007a550SKrzysztof Kozlowski items: 90*c007a550SKrzysztof Kozlowski - const: msi 91*c007a550SKrzysztof Kozlowski 92*c007a550SKrzysztof KozlowskiunevaluatedProperties: false 93*c007a550SKrzysztof Kozlowski 94*c007a550SKrzysztof Kozlowskiexamples: 95*c007a550SKrzysztof Kozlowski - | 96*c007a550SKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-sc8280xp.h> 97*c007a550SKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 98*c007a550SKrzysztof Kozlowski #include <dt-bindings/interconnect/qcom,sc8280xp.h> 99*c007a550SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 100*c007a550SKrzysztof Kozlowski 101*c007a550SKrzysztof Kozlowski soc { 102*c007a550SKrzysztof Kozlowski #address-cells = <2>; 103*c007a550SKrzysztof Kozlowski #size-cells = <2>; 104*c007a550SKrzysztof Kozlowski 105*c007a550SKrzysztof Kozlowski pcie@1c20000 { 106*c007a550SKrzysztof Kozlowski compatible = "qcom,pcie-sc8280xp"; 107*c007a550SKrzysztof Kozlowski reg = <0x0 0x01c20000 0x0 0x3000>, 108*c007a550SKrzysztof Kozlowski <0x0 0x3c000000 0x0 0xf1d>, 109*c007a550SKrzysztof Kozlowski <0x0 0x3c000f20 0x0 0xa8>, 110*c007a550SKrzysztof Kozlowski <0x0 0x3c001000 0x0 0x1000>, 111*c007a550SKrzysztof Kozlowski <0x0 0x3c100000 0x0 0x100000>, 112*c007a550SKrzysztof Kozlowski <0x0 0x01c23000 0x0 0x1000>; 113*c007a550SKrzysztof Kozlowski reg-names = "parf", "dbi", "elbi", "atu", "config", "mhi"; 114*c007a550SKrzysztof Kozlowski ranges = <0x01000000 0x0 0x00000000 0x0 0x3c200000 0x0 0x100000>, 115*c007a550SKrzysztof Kozlowski <0x02000000 0x0 0x3c300000 0x0 0x3c300000 0x0 0x1d00000>; 116*c007a550SKrzysztof Kozlowski 117*c007a550SKrzysztof Kozlowski bus-range = <0x00 0xff>; 118*c007a550SKrzysztof Kozlowski device_type = "pci"; 119*c007a550SKrzysztof Kozlowski linux,pci-domain = <2>; 120*c007a550SKrzysztof Kozlowski num-lanes = <4>; 121*c007a550SKrzysztof Kozlowski 122*c007a550SKrzysztof Kozlowski #address-cells = <3>; 123*c007a550SKrzysztof Kozlowski #size-cells = <2>; 124*c007a550SKrzysztof Kozlowski 125*c007a550SKrzysztof Kozlowski assigned-clocks = <&gcc GCC_PCIE_2A_AUX_CLK>; 126*c007a550SKrzysztof Kozlowski assigned-clock-rates = <19200000>; 127*c007a550SKrzysztof Kozlowski clocks = <&gcc GCC_PCIE_2A_AUX_CLK>, 128*c007a550SKrzysztof Kozlowski <&gcc GCC_PCIE_2A_CFG_AHB_CLK>, 129*c007a550SKrzysztof Kozlowski <&gcc GCC_PCIE_2A_MSTR_AXI_CLK>, 130*c007a550SKrzysztof Kozlowski <&gcc GCC_PCIE_2A_SLV_AXI_CLK>, 131*c007a550SKrzysztof Kozlowski <&gcc GCC_PCIE_2A_SLV_Q2A_AXI_CLK>, 132*c007a550SKrzysztof Kozlowski <&gcc GCC_DDRSS_PCIE_SF_TBU_CLK>, 133*c007a550SKrzysztof Kozlowski <&gcc GCC_AGGRE_NOC_PCIE_4_AXI_CLK>, 134*c007a550SKrzysztof Kozlowski <&gcc GCC_AGGRE_NOC_PCIE_SOUTH_SF_AXI_CLK>; 135*c007a550SKrzysztof Kozlowski clock-names = "aux", 136*c007a550SKrzysztof Kozlowski "cfg", 137*c007a550SKrzysztof Kozlowski "bus_master", 138*c007a550SKrzysztof Kozlowski "bus_slave", 139*c007a550SKrzysztof Kozlowski "slave_q2a", 140*c007a550SKrzysztof Kozlowski "ddrss_sf_tbu", 141*c007a550SKrzysztof Kozlowski "noc_aggr_4", 142*c007a550SKrzysztof Kozlowski "noc_aggr_south_sf"; 143*c007a550SKrzysztof Kozlowski 144*c007a550SKrzysztof Kozlowski dma-coherent; 145*c007a550SKrzysztof Kozlowski 146*c007a550SKrzysztof Kozlowski interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>, 147*c007a550SKrzysztof Kozlowski <GIC_SPI 523 IRQ_TYPE_LEVEL_HIGH>, 148*c007a550SKrzysztof Kozlowski <GIC_SPI 524 IRQ_TYPE_LEVEL_HIGH>, 149*c007a550SKrzysztof Kozlowski <GIC_SPI 525 IRQ_TYPE_LEVEL_HIGH>; 150*c007a550SKrzysztof Kozlowski interrupt-names = "msi0", "msi1", "msi2", "msi3"; 151*c007a550SKrzysztof Kozlowski #interrupt-cells = <1>; 152*c007a550SKrzysztof Kozlowski interrupt-map-mask = <0 0 0 0x7>; 153*c007a550SKrzysztof Kozlowski interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>, 154*c007a550SKrzysztof Kozlowski <0 0 0 2 &intc 0 0 GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>, 155*c007a550SKrzysztof Kozlowski <0 0 0 3 &intc 0 0 GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>, 156*c007a550SKrzysztof Kozlowski <0 0 0 4 &intc 0 0 GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>; 157*c007a550SKrzysztof Kozlowski 158*c007a550SKrzysztof Kozlowski interconnects = <&aggre2_noc MASTER_PCIE_2A 0 &mc_virt SLAVE_EBI1 0>, 159*c007a550SKrzysztof Kozlowski <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_PCIE_2A 0>; 160*c007a550SKrzysztof Kozlowski interconnect-names = "pcie-mem", "cpu-pcie"; 161*c007a550SKrzysztof Kozlowski 162*c007a550SKrzysztof Kozlowski phys = <&pcie2a_phy>; 163*c007a550SKrzysztof Kozlowski phy-names = "pciephy"; 164*c007a550SKrzysztof Kozlowski 165*c007a550SKrzysztof Kozlowski pinctrl-0 = <&pcie2a_default>; 166*c007a550SKrzysztof Kozlowski pinctrl-names = "default"; 167*c007a550SKrzysztof Kozlowski 168*c007a550SKrzysztof Kozlowski power-domains = <&gcc PCIE_2A_GDSC>; 169*c007a550SKrzysztof Kozlowski 170*c007a550SKrzysztof Kozlowski resets = <&gcc GCC_PCIE_2A_BCR>; 171*c007a550SKrzysztof Kozlowski reset-names = "pci"; 172*c007a550SKrzysztof Kozlowski 173*c007a550SKrzysztof Kozlowski perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>; 174*c007a550SKrzysztof Kozlowski wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>; 175*c007a550SKrzysztof Kozlowski vddpe-3v3-supply = <&vreg_nvme>; 176*c007a550SKrzysztof Kozlowski }; 177*c007a550SKrzysztof Kozlowski }; 178