188c9b3afSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 288c9b3afSKrzysztof Kozlowski%YAML 1.2 388c9b3afSKrzysztof Kozlowski--- 488c9b3afSKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-sm8450.yaml# 588c9b3afSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 688c9b3afSKrzysztof Kozlowski 788c9b3afSKrzysztof Kozlowskititle: Qualcomm SM8450 PCI Express Root Complex 888c9b3afSKrzysztof Kozlowski 988c9b3afSKrzysztof Kozlowskimaintainers: 1088c9b3afSKrzysztof Kozlowski - Bjorn Andersson <andersson@kernel.org> 1188c9b3afSKrzysztof Kozlowski - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 1288c9b3afSKrzysztof Kozlowski 1388c9b3afSKrzysztof Kozlowskidescription: 1488c9b3afSKrzysztof Kozlowski Qualcomm SM8450 SoC PCIe root complex controller is based on the Synopsys 1588c9b3afSKrzysztof Kozlowski DesignWare PCIe IP. 1688c9b3afSKrzysztof Kozlowski 1788c9b3afSKrzysztof Kozlowskiproperties: 1888c9b3afSKrzysztof Kozlowski compatible: 1988c9b3afSKrzysztof Kozlowski enum: 2088c9b3afSKrzysztof Kozlowski - qcom,pcie-sm8450-pcie0 2188c9b3afSKrzysztof Kozlowski - qcom,pcie-sm8450-pcie1 2288c9b3afSKrzysztof Kozlowski 2388c9b3afSKrzysztof Kozlowski reg: 2488c9b3afSKrzysztof Kozlowski minItems: 5 2588c9b3afSKrzysztof Kozlowski maxItems: 6 2688c9b3afSKrzysztof Kozlowski 2788c9b3afSKrzysztof Kozlowski reg-names: 2888c9b3afSKrzysztof Kozlowski minItems: 5 2988c9b3afSKrzysztof Kozlowski items: 3088c9b3afSKrzysztof Kozlowski - const: parf # Qualcomm specific registers 3188c9b3afSKrzysztof Kozlowski - const: dbi # DesignWare PCIe registers 3288c9b3afSKrzysztof Kozlowski - const: elbi # External local bus interface registers 3388c9b3afSKrzysztof Kozlowski - const: atu # ATU address space 3488c9b3afSKrzysztof Kozlowski - const: config # PCIe configuration space 3588c9b3afSKrzysztof Kozlowski - const: mhi # MHI registers 3688c9b3afSKrzysztof Kozlowski 3788c9b3afSKrzysztof Kozlowski clocks: 3888c9b3afSKrzysztof Kozlowski minItems: 11 3988c9b3afSKrzysztof Kozlowski maxItems: 12 4088c9b3afSKrzysztof Kozlowski 4188c9b3afSKrzysztof Kozlowski clock-names: 4288c9b3afSKrzysztof Kozlowski minItems: 11 4388c9b3afSKrzysztof Kozlowski items: 4488c9b3afSKrzysztof Kozlowski - const: pipe # PIPE clock 4588c9b3afSKrzysztof Kozlowski - const: pipe_mux # PIPE MUX 4688c9b3afSKrzysztof Kozlowski - const: phy_pipe # PIPE output clock 4788c9b3afSKrzysztof Kozlowski - const: ref # REFERENCE clock 4888c9b3afSKrzysztof Kozlowski - const: aux # Auxiliary clock 4988c9b3afSKrzysztof Kozlowski - const: cfg # Configuration clock 5088c9b3afSKrzysztof Kozlowski - const: bus_master # Master AXI clock 5188c9b3afSKrzysztof Kozlowski - const: bus_slave # Slave AXI clock 5288c9b3afSKrzysztof Kozlowski - const: slave_q2a # Slave Q2A clock 5388c9b3afSKrzysztof Kozlowski - const: ddrss_sf_tbu # PCIe SF TBU clock 5488c9b3afSKrzysztof Kozlowski - enum: [aggre0, aggre1] # Aggre NoC PCIe0/1 AXI clock 5588c9b3afSKrzysztof Kozlowski - const: aggre1 # Aggre NoC PCIe1 AXI clock 5688c9b3afSKrzysztof Kozlowski 5788c9b3afSKrzysztof Kozlowski interrupts: 58*6efd8533SManivannan Sadhasivam minItems: 9 59*6efd8533SManivannan Sadhasivam maxItems: 9 6088c9b3afSKrzysztof Kozlowski 6188c9b3afSKrzysztof Kozlowski interrupt-names: 6288c9b3afSKrzysztof Kozlowski items: 6388c9b3afSKrzysztof Kozlowski - const: msi0 6488c9b3afSKrzysztof Kozlowski - const: msi1 6588c9b3afSKrzysztof Kozlowski - const: msi2 6688c9b3afSKrzysztof Kozlowski - const: msi3 6788c9b3afSKrzysztof Kozlowski - const: msi4 6888c9b3afSKrzysztof Kozlowski - const: msi5 6988c9b3afSKrzysztof Kozlowski - const: msi6 7088c9b3afSKrzysztof Kozlowski - const: msi7 71*6efd8533SManivannan Sadhasivam - const: global 7288c9b3afSKrzysztof Kozlowski 7388c9b3afSKrzysztof Kozlowski resets: 7488c9b3afSKrzysztof Kozlowski maxItems: 1 7588c9b3afSKrzysztof Kozlowski 7688c9b3afSKrzysztof Kozlowski reset-names: 7788c9b3afSKrzysztof Kozlowski items: 7888c9b3afSKrzysztof Kozlowski - const: pci 7988c9b3afSKrzysztof Kozlowski 8088c9b3afSKrzysztof KozlowskiallOf: 8188c9b3afSKrzysztof Kozlowski - $ref: qcom,pcie-common.yaml# 8288c9b3afSKrzysztof Kozlowski 8388c9b3afSKrzysztof KozlowskiunevaluatedProperties: false 8488c9b3afSKrzysztof Kozlowski 8588c9b3afSKrzysztof Kozlowskiexamples: 8688c9b3afSKrzysztof Kozlowski - | 8788c9b3afSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-sm8450.h> 8888c9b3afSKrzysztof Kozlowski #include <dt-bindings/clock/qcom,rpmh.h> 8988c9b3afSKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 9088c9b3afSKrzysztof Kozlowski #include <dt-bindings/interconnect/qcom,sm8450.h> 9188c9b3afSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 9288c9b3afSKrzysztof Kozlowski 9388c9b3afSKrzysztof Kozlowski soc { 9488c9b3afSKrzysztof Kozlowski #address-cells = <2>; 9588c9b3afSKrzysztof Kozlowski #size-cells = <2>; 9688c9b3afSKrzysztof Kozlowski 9788c9b3afSKrzysztof Kozlowski pcie@1c00000 { 9888c9b3afSKrzysztof Kozlowski compatible = "qcom,pcie-sm8450-pcie0"; 9988c9b3afSKrzysztof Kozlowski reg = <0 0x01c00000 0 0x3000>, 10088c9b3afSKrzysztof Kozlowski <0 0x60000000 0 0xf1d>, 10188c9b3afSKrzysztof Kozlowski <0 0x60000f20 0 0xa8>, 10288c9b3afSKrzysztof Kozlowski <0 0x60001000 0 0x1000>, 10388c9b3afSKrzysztof Kozlowski <0 0x60100000 0 0x100000>; 10488c9b3afSKrzysztof Kozlowski reg-names = "parf", "dbi", "elbi", "atu", "config"; 10588c9b3afSKrzysztof Kozlowski ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>, 10688c9b3afSKrzysztof Kozlowski <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x3d00000>; 10788c9b3afSKrzysztof Kozlowski 10888c9b3afSKrzysztof Kozlowski bus-range = <0x00 0xff>; 10988c9b3afSKrzysztof Kozlowski device_type = "pci"; 11088c9b3afSKrzysztof Kozlowski linux,pci-domain = <0>; 11188c9b3afSKrzysztof Kozlowski max-link-speed = <2>; 11288c9b3afSKrzysztof Kozlowski num-lanes = <1>; 11388c9b3afSKrzysztof Kozlowski 11488c9b3afSKrzysztof Kozlowski #address-cells = <3>; 11588c9b3afSKrzysztof Kozlowski #size-cells = <2>; 11688c9b3afSKrzysztof Kozlowski 11788c9b3afSKrzysztof Kozlowski clocks = <&gcc GCC_PCIE_0_PIPE_CLK>, 11888c9b3afSKrzysztof Kozlowski <&gcc GCC_PCIE_0_PIPE_CLK_SRC>, 11988c9b3afSKrzysztof Kozlowski <&pcie0_phy>, 12088c9b3afSKrzysztof Kozlowski <&rpmhcc RPMH_CXO_CLK>, 12188c9b3afSKrzysztof Kozlowski <&gcc GCC_PCIE_0_AUX_CLK>, 12288c9b3afSKrzysztof Kozlowski <&gcc GCC_PCIE_0_CFG_AHB_CLK>, 12388c9b3afSKrzysztof Kozlowski <&gcc GCC_PCIE_0_MSTR_AXI_CLK>, 12488c9b3afSKrzysztof Kozlowski <&gcc GCC_PCIE_0_SLV_AXI_CLK>, 12588c9b3afSKrzysztof Kozlowski <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>, 12688c9b3afSKrzysztof Kozlowski <&gcc GCC_DDRSS_PCIE_SF_TBU_CLK>, 12788c9b3afSKrzysztof Kozlowski <&gcc GCC_AGGRE_NOC_PCIE_0_AXI_CLK>, 12888c9b3afSKrzysztof Kozlowski <&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>; 12988c9b3afSKrzysztof Kozlowski clock-names = "pipe", 13088c9b3afSKrzysztof Kozlowski "pipe_mux", 13188c9b3afSKrzysztof Kozlowski "phy_pipe", 13288c9b3afSKrzysztof Kozlowski "ref", 13388c9b3afSKrzysztof Kozlowski "aux", 13488c9b3afSKrzysztof Kozlowski "cfg", 13588c9b3afSKrzysztof Kozlowski "bus_master", 13688c9b3afSKrzysztof Kozlowski "bus_slave", 13788c9b3afSKrzysztof Kozlowski "slave_q2a", 13888c9b3afSKrzysztof Kozlowski "ddrss_sf_tbu", 13988c9b3afSKrzysztof Kozlowski "aggre0", 14088c9b3afSKrzysztof Kozlowski "aggre1"; 14188c9b3afSKrzysztof Kozlowski 14288c9b3afSKrzysztof Kozlowski interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, 14388c9b3afSKrzysztof Kozlowski <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 14488c9b3afSKrzysztof Kozlowski <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, 14588c9b3afSKrzysztof Kozlowski <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, 14688c9b3afSKrzysztof Kozlowski <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 14788c9b3afSKrzysztof Kozlowski <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 14888c9b3afSKrzysztof Kozlowski <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, 149*6efd8533SManivannan Sadhasivam <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 150*6efd8533SManivannan Sadhasivam <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 15188c9b3afSKrzysztof Kozlowski interrupt-names = "msi0", "msi1", "msi2", "msi3", 152*6efd8533SManivannan Sadhasivam "msi4", "msi5", "msi6", "msi7", "global"; 15388c9b3afSKrzysztof Kozlowski #interrupt-cells = <1>; 15488c9b3afSKrzysztof Kozlowski interrupt-map-mask = <0 0 0 0x7>; 15588c9b3afSKrzysztof Kozlowski interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 15688c9b3afSKrzysztof Kozlowski <0 0 0 2 &intc 0 0 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 15788c9b3afSKrzysztof Kozlowski <0 0 0 3 &intc 0 0 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 15888c9b3afSKrzysztof Kozlowski <0 0 0 4 &intc 0 0 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 15988c9b3afSKrzysztof Kozlowski msi-map = <0x0 &gic_its 0x5981 0x1>, 16088c9b3afSKrzysztof Kozlowski <0x100 &gic_its 0x5980 0x1>; 16188c9b3afSKrzysztof Kozlowski msi-map-mask = <0xff00>; 16288c9b3afSKrzysztof Kozlowski 16388c9b3afSKrzysztof Kozlowski iommu-map = <0x0 &apps_smmu 0x1c00 0x1>, 16488c9b3afSKrzysztof Kozlowski <0x100 &apps_smmu 0x1c01 0x1>; 16588c9b3afSKrzysztof Kozlowski 16688c9b3afSKrzysztof Kozlowski phys = <&pcie0_phy>; 16788c9b3afSKrzysztof Kozlowski phy-names = "pciephy"; 16888c9b3afSKrzysztof Kozlowski 16988c9b3afSKrzysztof Kozlowski pinctrl-0 = <&pcie0_default_state>; 17088c9b3afSKrzysztof Kozlowski pinctrl-names = "default"; 17188c9b3afSKrzysztof Kozlowski 17288c9b3afSKrzysztof Kozlowski power-domains = <&gcc PCIE_0_GDSC>; 17388c9b3afSKrzysztof Kozlowski 17488c9b3afSKrzysztof Kozlowski resets = <&gcc GCC_PCIE_0_BCR>; 17588c9b3afSKrzysztof Kozlowski reset-names = "pci"; 17688c9b3afSKrzysztof Kozlowski 17788c9b3afSKrzysztof Kozlowski perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>; 17888c9b3afSKrzysztof Kozlowski wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>; 17988c9b3afSKrzysztof Kozlowski }; 18088c9b3afSKrzysztof Kozlowski }; 181