131c9ef00SManivannan Sadhasivam# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 231c9ef00SManivannan Sadhasivam%YAML 1.2 331c9ef00SManivannan Sadhasivam--- 431c9ef00SManivannan Sadhasivam$id: http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml# 531c9ef00SManivannan Sadhasivam$schema: http://devicetree.org/meta-schemas/core.yaml# 631c9ef00SManivannan Sadhasivam 784e85359SKrzysztof Kozlowskititle: Qualcomm PCIe Endpoint Controller 831c9ef00SManivannan Sadhasivam 931c9ef00SManivannan Sadhasivammaintainers: 1031c9ef00SManivannan Sadhasivam - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 1131c9ef00SManivannan Sadhasivam 1231c9ef00SManivannan Sadhasivamproperties: 1331c9ef00SManivannan Sadhasivam compatible: 1415d63a89SKrzysztof Kozlowski oneOf: 1515d63a89SKrzysztof Kozlowski - enum: 169d3d5e75SMrinmay Sarkar - qcom,sa8775p-pcie-ep 17*f325b078SDmitry Baryshkov - qcom,sar2130p-pcie-ep 1863e445b7SManivannan Sadhasivam - qcom,sdx55-pcie-ep 1963e445b7SManivannan Sadhasivam - qcom,sm8450-pcie-ep 2015d63a89SKrzysztof Kozlowski - items: 2115d63a89SKrzysztof Kozlowski - const: qcom,sdx65-pcie-ep 2215d63a89SKrzysztof Kozlowski - const: qcom,sdx55-pcie-ep 2331c9ef00SManivannan Sadhasivam 2431c9ef00SManivannan Sadhasivam reg: 259d3d5e75SMrinmay Sarkar minItems: 6 2631c9ef00SManivannan Sadhasivam items: 2731c9ef00SManivannan Sadhasivam - description: Qualcomm-specific PARF configuration registers 2831c9ef00SManivannan Sadhasivam - description: DesignWare PCIe registers 2931c9ef00SManivannan Sadhasivam - description: External local bus interface registers 3031c9ef00SManivannan Sadhasivam - description: Address Translation Unit (ATU) registers 3131c9ef00SManivannan Sadhasivam - description: Memory region used to map remote RC address space 3231c9ef00SManivannan Sadhasivam - description: BAR memory region 339d3d5e75SMrinmay Sarkar - description: DMA register space 3431c9ef00SManivannan Sadhasivam 3531c9ef00SManivannan Sadhasivam reg-names: 369d3d5e75SMrinmay Sarkar minItems: 6 3731c9ef00SManivannan Sadhasivam items: 3831c9ef00SManivannan Sadhasivam - const: parf 3931c9ef00SManivannan Sadhasivam - const: dbi 4031c9ef00SManivannan Sadhasivam - const: elbi 4131c9ef00SManivannan Sadhasivam - const: atu 4231c9ef00SManivannan Sadhasivam - const: addr_space 4331c9ef00SManivannan Sadhasivam - const: mmio 449d3d5e75SMrinmay Sarkar - const: dma 4531c9ef00SManivannan Sadhasivam 4631c9ef00SManivannan Sadhasivam clocks: 479d3d5e75SMrinmay Sarkar minItems: 5 48*f325b078SDmitry Baryshkov maxItems: 9 4931c9ef00SManivannan Sadhasivam 5031c9ef00SManivannan Sadhasivam clock-names: 519d3d5e75SMrinmay Sarkar minItems: 5 52*f325b078SDmitry Baryshkov maxItems: 9 5331c9ef00SManivannan Sadhasivam 5431c9ef00SManivannan Sadhasivam qcom,perst-regs: 5531c9ef00SManivannan Sadhasivam description: Reference to a syscon representing TCSR followed by the two 5631c9ef00SManivannan Sadhasivam offsets within syscon for Perst enable and Perst separation 5731c9ef00SManivannan Sadhasivam enable registers 58f5501623SRob Herring $ref: /schemas/types.yaml#/definitions/phandle-array 5931c9ef00SManivannan Sadhasivam items: 60a0754633SKrzysztof Kozlowski - items: 61a0754633SKrzysztof Kozlowski - description: Syscon to TCSR system registers 62a0754633SKrzysztof Kozlowski - description: Perst enable offset 63a0754633SKrzysztof Kozlowski - description: Perst separation enable offset 6431c9ef00SManivannan Sadhasivam 6531c9ef00SManivannan Sadhasivam interrupts: 669d3d5e75SMrinmay Sarkar minItems: 2 6731c9ef00SManivannan Sadhasivam items: 6831c9ef00SManivannan Sadhasivam - description: PCIe Global interrupt 6931c9ef00SManivannan Sadhasivam - description: PCIe Doorbell interrupt 709d3d5e75SMrinmay Sarkar - description: DMA interrupt 7131c9ef00SManivannan Sadhasivam 7231c9ef00SManivannan Sadhasivam interrupt-names: 739d3d5e75SMrinmay Sarkar minItems: 2 7431c9ef00SManivannan Sadhasivam items: 7531c9ef00SManivannan Sadhasivam - const: global 7631c9ef00SManivannan Sadhasivam - const: doorbell 779d3d5e75SMrinmay Sarkar - const: dma 7831c9ef00SManivannan Sadhasivam 798f5bd6cfSDmitry Baryshkov iommus: 808f5bd6cfSDmitry Baryshkov maxItems: 1 818f5bd6cfSDmitry Baryshkov 8231c9ef00SManivannan Sadhasivam reset-gpios: 8331c9ef00SManivannan Sadhasivam description: GPIO used as PERST# input signal 8431c9ef00SManivannan Sadhasivam maxItems: 1 8531c9ef00SManivannan Sadhasivam 8631c9ef00SManivannan Sadhasivam wake-gpios: 8731c9ef00SManivannan Sadhasivam description: GPIO used as WAKE# output signal 8831c9ef00SManivannan Sadhasivam maxItems: 1 8931c9ef00SManivannan Sadhasivam 90e590ad24SKrishna chaitanya chundru interconnects: 91e590ad24SKrishna chaitanya chundru maxItems: 2 92e590ad24SKrishna chaitanya chundru 93e590ad24SKrishna chaitanya chundru interconnect-names: 94e590ad24SKrishna chaitanya chundru items: 95e590ad24SKrishna chaitanya chundru - const: pcie-mem 96e590ad24SKrishna chaitanya chundru - const: cpu-pcie 97e590ad24SKrishna chaitanya chundru 98a22d3039SDmitry Baryshkov dma-coherent: true 99a22d3039SDmitry Baryshkov 10031c9ef00SManivannan Sadhasivam resets: 10131c9ef00SManivannan Sadhasivam maxItems: 1 10231c9ef00SManivannan Sadhasivam 10331c9ef00SManivannan Sadhasivam reset-names: 10431c9ef00SManivannan Sadhasivam const: core 10531c9ef00SManivannan Sadhasivam 10631c9ef00SManivannan Sadhasivam power-domains: 10731c9ef00SManivannan Sadhasivam maxItems: 1 10831c9ef00SManivannan Sadhasivam 10931c9ef00SManivannan Sadhasivam phys: 11031c9ef00SManivannan Sadhasivam maxItems: 1 11131c9ef00SManivannan Sadhasivam 11231c9ef00SManivannan Sadhasivam phy-names: 11331c9ef00SManivannan Sadhasivam const: pciephy 11431c9ef00SManivannan Sadhasivam 11531c9ef00SManivannan Sadhasivam num-lanes: 11631c9ef00SManivannan Sadhasivam default: 2 11731c9ef00SManivannan Sadhasivam 11831c9ef00SManivannan Sadhasivamrequired: 11931c9ef00SManivannan Sadhasivam - compatible 12031c9ef00SManivannan Sadhasivam - reg 12131c9ef00SManivannan Sadhasivam - reg-names 12231c9ef00SManivannan Sadhasivam - clocks 12331c9ef00SManivannan Sadhasivam - clock-names 12431c9ef00SManivannan Sadhasivam - interrupts 12531c9ef00SManivannan Sadhasivam - interrupt-names 12631c9ef00SManivannan Sadhasivam - reset-gpios 127e590ad24SKrishna chaitanya chundru - interconnects 128e590ad24SKrishna chaitanya chundru - interconnect-names 12931c9ef00SManivannan Sadhasivam - resets 13031c9ef00SManivannan Sadhasivam - reset-names 13131c9ef00SManivannan Sadhasivam - power-domains 13231c9ef00SManivannan Sadhasivam 1338dffa879SManivannan SadhasivamallOf: 1348dffa879SManivannan Sadhasivam - $ref: pci-ep.yaml# 135f9d7bbd0SDmitry Baryshkov 1368dffa879SManivannan Sadhasivam - if: 1378dffa879SManivannan Sadhasivam properties: 1388dffa879SManivannan Sadhasivam compatible: 1398dffa879SManivannan Sadhasivam contains: 1408dffa879SManivannan Sadhasivam enum: 141*f325b078SDmitry Baryshkov - qcom,sar2130p-pcie-ep 142*f325b078SDmitry Baryshkov then: 143*f325b078SDmitry Baryshkov properties: 144*f325b078SDmitry Baryshkov clocks: 145*f325b078SDmitry Baryshkov items: 146*f325b078SDmitry Baryshkov - description: PCIe Auxiliary clock 147*f325b078SDmitry Baryshkov - description: PCIe CFG AHB clock 148*f325b078SDmitry Baryshkov - description: PCIe Master AXI clock 149*f325b078SDmitry Baryshkov - description: PCIe Slave AXI clock 150*f325b078SDmitry Baryshkov - description: PCIe Slave Q2A AXI clock 151*f325b078SDmitry Baryshkov - description: PCIe DDRSS SF TBU clock 152*f325b078SDmitry Baryshkov - description: PCIe AGGRE NOC AXI clock 153*f325b078SDmitry Baryshkov - description: PCIe CFG NOC AXI clock 154*f325b078SDmitry Baryshkov - description: PCIe QMIP AHB clock 155*f325b078SDmitry Baryshkov clock-names: 156*f325b078SDmitry Baryshkov items: 157*f325b078SDmitry Baryshkov - const: aux 158*f325b078SDmitry Baryshkov - const: cfg 159*f325b078SDmitry Baryshkov - const: bus_master 160*f325b078SDmitry Baryshkov - const: bus_slave 161*f325b078SDmitry Baryshkov - const: slave_q2a 162*f325b078SDmitry Baryshkov - const: ddrss_sf_tbu 163*f325b078SDmitry Baryshkov - const: aggre_noc_axi 164*f325b078SDmitry Baryshkov - const: cnoc_sf_axi 165*f325b078SDmitry Baryshkov - const: qmip_pcie_ahb 166*f325b078SDmitry Baryshkov 167*f325b078SDmitry Baryshkov - if: 168*f325b078SDmitry Baryshkov properties: 169*f325b078SDmitry Baryshkov compatible: 170*f325b078SDmitry Baryshkov contains: 171*f325b078SDmitry Baryshkov enum: 1728dffa879SManivannan Sadhasivam - qcom,sdx55-pcie-ep 1738dffa879SManivannan Sadhasivam then: 1748dffa879SManivannan Sadhasivam properties: 1759d3d5e75SMrinmay Sarkar reg: 176f9d7bbd0SDmitry Baryshkov minItems: 6 1779d3d5e75SMrinmay Sarkar maxItems: 6 1789d3d5e75SMrinmay Sarkar reg-names: 179f9d7bbd0SDmitry Baryshkov minItems: 6 1809d3d5e75SMrinmay Sarkar maxItems: 6 181f9d7bbd0SDmitry Baryshkov interrupts: 182f9d7bbd0SDmitry Baryshkov minItems: 2 183f9d7bbd0SDmitry Baryshkov maxItems: 2 184f9d7bbd0SDmitry Baryshkov interrupt-names: 185f9d7bbd0SDmitry Baryshkov minItems: 2 186f9d7bbd0SDmitry Baryshkov maxItems: 2 187f9d7bbd0SDmitry Baryshkov iommus: false 188f9d7bbd0SDmitry Baryshkov else: 189f9d7bbd0SDmitry Baryshkov properties: 190f9d7bbd0SDmitry Baryshkov reg: 191f9d7bbd0SDmitry Baryshkov minItems: 7 192f9d7bbd0SDmitry Baryshkov maxItems: 7 193f9d7bbd0SDmitry Baryshkov reg-names: 194f9d7bbd0SDmitry Baryshkov minItems: 7 195f9d7bbd0SDmitry Baryshkov maxItems: 7 196f9d7bbd0SDmitry Baryshkov interrupts: 197f9d7bbd0SDmitry Baryshkov minItems: 3 198f9d7bbd0SDmitry Baryshkov maxItems: 3 199f9d7bbd0SDmitry Baryshkov interrupt-names: 200f9d7bbd0SDmitry Baryshkov minItems: 3 201f9d7bbd0SDmitry Baryshkov maxItems: 3 202f9d7bbd0SDmitry Baryshkov required: 203f9d7bbd0SDmitry Baryshkov - iommus 204f9d7bbd0SDmitry Baryshkov 205f9d7bbd0SDmitry Baryshkov - if: 206f9d7bbd0SDmitry Baryshkov properties: 207f9d7bbd0SDmitry Baryshkov compatible: 208f9d7bbd0SDmitry Baryshkov contains: 209f9d7bbd0SDmitry Baryshkov enum: 210f9d7bbd0SDmitry Baryshkov - qcom,sdx55-pcie-ep 211f9d7bbd0SDmitry Baryshkov then: 212f9d7bbd0SDmitry Baryshkov properties: 2138dffa879SManivannan Sadhasivam clocks: 2148dffa879SManivannan Sadhasivam items: 2158dffa879SManivannan Sadhasivam - description: PCIe Auxiliary clock 2168dffa879SManivannan Sadhasivam - description: PCIe CFG AHB clock 2178dffa879SManivannan Sadhasivam - description: PCIe Master AXI clock 2188dffa879SManivannan Sadhasivam - description: PCIe Slave AXI clock 2198dffa879SManivannan Sadhasivam - description: PCIe Slave Q2A AXI clock 2208dffa879SManivannan Sadhasivam - description: PCIe Sleep clock 2218dffa879SManivannan Sadhasivam - description: PCIe Reference clock 2228dffa879SManivannan Sadhasivam clock-names: 2238dffa879SManivannan Sadhasivam items: 2248dffa879SManivannan Sadhasivam - const: aux 2258dffa879SManivannan Sadhasivam - const: cfg 2268dffa879SManivannan Sadhasivam - const: bus_master 2278dffa879SManivannan Sadhasivam - const: bus_slave 2288dffa879SManivannan Sadhasivam - const: slave_q2a 2298dffa879SManivannan Sadhasivam - const: sleep 2308dffa879SManivannan Sadhasivam - const: ref 2318dffa879SManivannan Sadhasivam 23263e445b7SManivannan Sadhasivam - if: 23363e445b7SManivannan Sadhasivam properties: 23463e445b7SManivannan Sadhasivam compatible: 23563e445b7SManivannan Sadhasivam contains: 23663e445b7SManivannan Sadhasivam enum: 23763e445b7SManivannan Sadhasivam - qcom,sm8450-pcie-ep 23863e445b7SManivannan Sadhasivam then: 23963e445b7SManivannan Sadhasivam properties: 24063e445b7SManivannan Sadhasivam clocks: 24163e445b7SManivannan Sadhasivam items: 24263e445b7SManivannan Sadhasivam - description: PCIe Auxiliary clock 24363e445b7SManivannan Sadhasivam - description: PCIe CFG AHB clock 24463e445b7SManivannan Sadhasivam - description: PCIe Master AXI clock 24563e445b7SManivannan Sadhasivam - description: PCIe Slave AXI clock 24663e445b7SManivannan Sadhasivam - description: PCIe Slave Q2A AXI clock 24763e445b7SManivannan Sadhasivam - description: PCIe Reference clock 24863e445b7SManivannan Sadhasivam - description: PCIe DDRSS SF TBU clock 24963e445b7SManivannan Sadhasivam - description: PCIe AGGRE NOC AXI clock 25063e445b7SManivannan Sadhasivam clock-names: 25163e445b7SManivannan Sadhasivam items: 25263e445b7SManivannan Sadhasivam - const: aux 25363e445b7SManivannan Sadhasivam - const: cfg 25463e445b7SManivannan Sadhasivam - const: bus_master 25563e445b7SManivannan Sadhasivam - const: bus_slave 25663e445b7SManivannan Sadhasivam - const: slave_q2a 25763e445b7SManivannan Sadhasivam - const: ref 25863e445b7SManivannan Sadhasivam - const: ddrss_sf_tbu 25963e445b7SManivannan Sadhasivam - const: aggre_noc_axi 2609d3d5e75SMrinmay Sarkar 2619d3d5e75SMrinmay Sarkar - if: 2629d3d5e75SMrinmay Sarkar properties: 2639d3d5e75SMrinmay Sarkar compatible: 2649d3d5e75SMrinmay Sarkar contains: 2659d3d5e75SMrinmay Sarkar enum: 2669d3d5e75SMrinmay Sarkar - qcom,sa8775p-pcie-ep 2679d3d5e75SMrinmay Sarkar then: 2689d3d5e75SMrinmay Sarkar properties: 2699d3d5e75SMrinmay Sarkar clocks: 2709d3d5e75SMrinmay Sarkar items: 2719d3d5e75SMrinmay Sarkar - description: PCIe Auxiliary clock 2729d3d5e75SMrinmay Sarkar - description: PCIe CFG AHB clock 2739d3d5e75SMrinmay Sarkar - description: PCIe Master AXI clock 2749d3d5e75SMrinmay Sarkar - description: PCIe Slave AXI clock 2759d3d5e75SMrinmay Sarkar - description: PCIe Slave Q2A AXI clock 2769d3d5e75SMrinmay Sarkar clock-names: 2779d3d5e75SMrinmay Sarkar items: 2789d3d5e75SMrinmay Sarkar - const: aux 2799d3d5e75SMrinmay Sarkar - const: cfg 2809d3d5e75SMrinmay Sarkar - const: bus_master 2819d3d5e75SMrinmay Sarkar - const: bus_slave 2829d3d5e75SMrinmay Sarkar - const: slave_q2a 28363e445b7SManivannan Sadhasivam 28431c9ef00SManivannan SadhasivamunevaluatedProperties: false 28531c9ef00SManivannan Sadhasivam 28631c9ef00SManivannan Sadhasivamexamples: 28731c9ef00SManivannan Sadhasivam - | 28831c9ef00SManivannan Sadhasivam #include <dt-bindings/clock/qcom,gcc-sdx55.h> 28931c9ef00SManivannan Sadhasivam #include <dt-bindings/gpio/gpio.h> 290e590ad24SKrishna chaitanya chundru #include <dt-bindings/interconnect/qcom,sdx55.h> 29131c9ef00SManivannan Sadhasivam #include <dt-bindings/interrupt-controller/arm-gic.h> 292e590ad24SKrishna chaitanya chundru 293e12b6893SManivannan Sadhasivam pcie_ep: pcie-ep@1c00000 { 29431c9ef00SManivannan Sadhasivam compatible = "qcom,sdx55-pcie-ep"; 29531c9ef00SManivannan Sadhasivam reg = <0x01c00000 0x3000>, 29631c9ef00SManivannan Sadhasivam <0x40000000 0xf1d>, 29731c9ef00SManivannan Sadhasivam <0x40000f20 0xc8>, 29831c9ef00SManivannan Sadhasivam <0x40001000 0x1000>, 29931c9ef00SManivannan Sadhasivam <0x40002000 0x1000>, 30031c9ef00SManivannan Sadhasivam <0x01c03000 0x3000>; 30131c9ef00SManivannan Sadhasivam reg-names = "parf", "dbi", "elbi", "atu", "addr_space", 30231c9ef00SManivannan Sadhasivam "mmio"; 30331c9ef00SManivannan Sadhasivam 30431c9ef00SManivannan Sadhasivam clocks = <&gcc GCC_PCIE_AUX_CLK>, 30531c9ef00SManivannan Sadhasivam <&gcc GCC_PCIE_CFG_AHB_CLK>, 30631c9ef00SManivannan Sadhasivam <&gcc GCC_PCIE_MSTR_AXI_CLK>, 30731c9ef00SManivannan Sadhasivam <&gcc GCC_PCIE_SLV_AXI_CLK>, 30831c9ef00SManivannan Sadhasivam <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>, 30931c9ef00SManivannan Sadhasivam <&gcc GCC_PCIE_SLEEP_CLK>, 31031c9ef00SManivannan Sadhasivam <&gcc GCC_PCIE_0_CLKREF_CLK>; 31131c9ef00SManivannan Sadhasivam clock-names = "aux", "cfg", "bus_master", "bus_slave", 31231c9ef00SManivannan Sadhasivam "slave_q2a", "sleep", "ref"; 31331c9ef00SManivannan Sadhasivam 31431c9ef00SManivannan Sadhasivam qcom,perst-regs = <&tcsr 0xb258 0xb270>; 31531c9ef00SManivannan Sadhasivam 31631c9ef00SManivannan Sadhasivam interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>, 31731c9ef00SManivannan Sadhasivam <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 31831c9ef00SManivannan Sadhasivam interrupt-names = "global", "doorbell"; 319e590ad24SKrishna chaitanya chundru interconnects = <&system_noc MASTER_PCIE &mc_virt SLAVE_EBI_CH0>, 320e590ad24SKrishna chaitanya chundru <&mem_noc MASTER_AMPSS_M0 &system_noc SLAVE_PCIE_0>; 321e590ad24SKrishna chaitanya chundru interconnect-names = "pcie-mem", "cpu-pcie"; 32231c9ef00SManivannan Sadhasivam reset-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>; 32331c9ef00SManivannan Sadhasivam wake-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>; 32431c9ef00SManivannan Sadhasivam resets = <&gcc GCC_PCIE_BCR>; 32531c9ef00SManivannan Sadhasivam reset-names = "core"; 32631c9ef00SManivannan Sadhasivam power-domains = <&gcc PCIE_GDSC>; 32731c9ef00SManivannan Sadhasivam phys = <&pcie0_lane>; 32831c9ef00SManivannan Sadhasivam phy-names = "pciephy"; 32931c9ef00SManivannan Sadhasivam max-link-speed = <3>; 33031c9ef00SManivannan Sadhasivam num-lanes = <2>; 331ada94d00SManivannan Sadhasivam linux,pci-domain = <0>; 33231c9ef00SManivannan Sadhasivam }; 333