xref: /linux/Documentation/devicetree/bindings/pci/qcom,pcie-ep.yaml (revision f550162395e6068f7726a1a0255c7374056e21ef)
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:
1463e445b7SManivannan Sadhasivam    enum:
1563e445b7SManivannan Sadhasivam      - qcom,sdx55-pcie-ep
1663e445b7SManivannan Sadhasivam      - qcom,sm8450-pcie-ep
1731c9ef00SManivannan Sadhasivam
1831c9ef00SManivannan Sadhasivam  reg:
1931c9ef00SManivannan Sadhasivam    items:
2031c9ef00SManivannan Sadhasivam      - description: Qualcomm-specific PARF configuration registers
2131c9ef00SManivannan Sadhasivam      - description: DesignWare PCIe registers
2231c9ef00SManivannan Sadhasivam      - description: External local bus interface registers
2331c9ef00SManivannan Sadhasivam      - description: Address Translation Unit (ATU) registers
2431c9ef00SManivannan Sadhasivam      - description: Memory region used to map remote RC address space
2531c9ef00SManivannan Sadhasivam      - description: BAR memory region
2631c9ef00SManivannan Sadhasivam
2731c9ef00SManivannan Sadhasivam  reg-names:
2831c9ef00SManivannan Sadhasivam    items:
2931c9ef00SManivannan Sadhasivam      - const: parf
3031c9ef00SManivannan Sadhasivam      - const: dbi
3131c9ef00SManivannan Sadhasivam      - const: elbi
3231c9ef00SManivannan Sadhasivam      - const: atu
3331c9ef00SManivannan Sadhasivam      - const: addr_space
3431c9ef00SManivannan Sadhasivam      - const: mmio
3531c9ef00SManivannan Sadhasivam
3631c9ef00SManivannan Sadhasivam  clocks:
3763e445b7SManivannan Sadhasivam    minItems: 7
3863e445b7SManivannan Sadhasivam    maxItems: 8
3931c9ef00SManivannan Sadhasivam
4031c9ef00SManivannan Sadhasivam  clock-names:
4163e445b7SManivannan Sadhasivam    minItems: 7
4263e445b7SManivannan Sadhasivam    maxItems: 8
4331c9ef00SManivannan Sadhasivam
4431c9ef00SManivannan Sadhasivam  qcom,perst-regs:
4531c9ef00SManivannan Sadhasivam    description: Reference to a syscon representing TCSR followed by the two
4631c9ef00SManivannan Sadhasivam                 offsets within syscon for Perst enable and Perst separation
4731c9ef00SManivannan Sadhasivam                 enable registers
48f5501623SRob Herring    $ref: /schemas/types.yaml#/definitions/phandle-array
4931c9ef00SManivannan Sadhasivam    items:
50a0754633SKrzysztof Kozlowski      - items:
51a0754633SKrzysztof Kozlowski          - description: Syscon to TCSR system registers
52a0754633SKrzysztof Kozlowski          - description: Perst enable offset
53a0754633SKrzysztof Kozlowski          - description: Perst separation enable offset
5431c9ef00SManivannan Sadhasivam
5531c9ef00SManivannan Sadhasivam  interrupts:
5631c9ef00SManivannan Sadhasivam    items:
5731c9ef00SManivannan Sadhasivam      - description: PCIe Global interrupt
5831c9ef00SManivannan Sadhasivam      - description: PCIe Doorbell interrupt
5931c9ef00SManivannan Sadhasivam
6031c9ef00SManivannan Sadhasivam  interrupt-names:
6131c9ef00SManivannan Sadhasivam    items:
6231c9ef00SManivannan Sadhasivam      - const: global
6331c9ef00SManivannan Sadhasivam      - const: doorbell
6431c9ef00SManivannan Sadhasivam
6531c9ef00SManivannan Sadhasivam  reset-gpios:
6631c9ef00SManivannan Sadhasivam    description: GPIO used as PERST# input signal
6731c9ef00SManivannan Sadhasivam    maxItems: 1
6831c9ef00SManivannan Sadhasivam
6931c9ef00SManivannan Sadhasivam  wake-gpios:
7031c9ef00SManivannan Sadhasivam    description: GPIO used as WAKE# output signal
7131c9ef00SManivannan Sadhasivam    maxItems: 1
7231c9ef00SManivannan Sadhasivam
7331c9ef00SManivannan Sadhasivam  resets:
7431c9ef00SManivannan Sadhasivam    maxItems: 1
7531c9ef00SManivannan Sadhasivam
7631c9ef00SManivannan Sadhasivam  reset-names:
7731c9ef00SManivannan Sadhasivam    const: core
7831c9ef00SManivannan Sadhasivam
7931c9ef00SManivannan Sadhasivam  power-domains:
8031c9ef00SManivannan Sadhasivam    maxItems: 1
8131c9ef00SManivannan Sadhasivam
8231c9ef00SManivannan Sadhasivam  phys:
8331c9ef00SManivannan Sadhasivam    maxItems: 1
8431c9ef00SManivannan Sadhasivam
8531c9ef00SManivannan Sadhasivam  phy-names:
8631c9ef00SManivannan Sadhasivam    const: pciephy
8731c9ef00SManivannan Sadhasivam
8831c9ef00SManivannan Sadhasivam  num-lanes:
8931c9ef00SManivannan Sadhasivam    default: 2
9031c9ef00SManivannan Sadhasivam
9131c9ef00SManivannan Sadhasivamrequired:
9231c9ef00SManivannan Sadhasivam  - compatible
9331c9ef00SManivannan Sadhasivam  - reg
9431c9ef00SManivannan Sadhasivam  - reg-names
9531c9ef00SManivannan Sadhasivam  - clocks
9631c9ef00SManivannan Sadhasivam  - clock-names
9731c9ef00SManivannan Sadhasivam  - interrupts
9831c9ef00SManivannan Sadhasivam  - interrupt-names
9931c9ef00SManivannan Sadhasivam  - reset-gpios
10031c9ef00SManivannan Sadhasivam  - resets
10131c9ef00SManivannan Sadhasivam  - reset-names
10231c9ef00SManivannan Sadhasivam  - power-domains
10331c9ef00SManivannan Sadhasivam
1048dffa879SManivannan SadhasivamallOf:
1058dffa879SManivannan Sadhasivam  - $ref: pci-ep.yaml#
1068dffa879SManivannan Sadhasivam  - if:
1078dffa879SManivannan Sadhasivam      properties:
1088dffa879SManivannan Sadhasivam        compatible:
1098dffa879SManivannan Sadhasivam          contains:
1108dffa879SManivannan Sadhasivam            enum:
1118dffa879SManivannan Sadhasivam              - qcom,sdx55-pcie-ep
1128dffa879SManivannan Sadhasivam    then:
1138dffa879SManivannan Sadhasivam      properties:
1148dffa879SManivannan Sadhasivam        clocks:
1158dffa879SManivannan Sadhasivam          items:
1168dffa879SManivannan Sadhasivam            - description: PCIe Auxiliary clock
1178dffa879SManivannan Sadhasivam            - description: PCIe CFG AHB clock
1188dffa879SManivannan Sadhasivam            - description: PCIe Master AXI clock
1198dffa879SManivannan Sadhasivam            - description: PCIe Slave AXI clock
1208dffa879SManivannan Sadhasivam            - description: PCIe Slave Q2A AXI clock
1218dffa879SManivannan Sadhasivam            - description: PCIe Sleep clock
1228dffa879SManivannan Sadhasivam            - description: PCIe Reference clock
1238dffa879SManivannan Sadhasivam        clock-names:
1248dffa879SManivannan Sadhasivam          items:
1258dffa879SManivannan Sadhasivam            - const: aux
1268dffa879SManivannan Sadhasivam            - const: cfg
1278dffa879SManivannan Sadhasivam            - const: bus_master
1288dffa879SManivannan Sadhasivam            - const: bus_slave
1298dffa879SManivannan Sadhasivam            - const: slave_q2a
1308dffa879SManivannan Sadhasivam            - const: sleep
1318dffa879SManivannan Sadhasivam            - const: ref
1328dffa879SManivannan Sadhasivam
13363e445b7SManivannan Sadhasivam  - if:
13463e445b7SManivannan Sadhasivam      properties:
13563e445b7SManivannan Sadhasivam        compatible:
13663e445b7SManivannan Sadhasivam          contains:
13763e445b7SManivannan Sadhasivam            enum:
13863e445b7SManivannan Sadhasivam              - qcom,sm8450-pcie-ep
13963e445b7SManivannan Sadhasivam    then:
14063e445b7SManivannan Sadhasivam      properties:
14163e445b7SManivannan Sadhasivam        clocks:
14263e445b7SManivannan Sadhasivam          items:
14363e445b7SManivannan Sadhasivam            - description: PCIe Auxiliary clock
14463e445b7SManivannan Sadhasivam            - description: PCIe CFG AHB clock
14563e445b7SManivannan Sadhasivam            - description: PCIe Master AXI clock
14663e445b7SManivannan Sadhasivam            - description: PCIe Slave AXI clock
14763e445b7SManivannan Sadhasivam            - description: PCIe Slave Q2A AXI clock
14863e445b7SManivannan Sadhasivam            - description: PCIe Reference clock
14963e445b7SManivannan Sadhasivam            - description: PCIe DDRSS SF TBU clock
15063e445b7SManivannan Sadhasivam            - description: PCIe AGGRE NOC AXI clock
15163e445b7SManivannan Sadhasivam        clock-names:
15263e445b7SManivannan Sadhasivam          items:
15363e445b7SManivannan Sadhasivam            - const: aux
15463e445b7SManivannan Sadhasivam            - const: cfg
15563e445b7SManivannan Sadhasivam            - const: bus_master
15663e445b7SManivannan Sadhasivam            - const: bus_slave
15763e445b7SManivannan Sadhasivam            - const: slave_q2a
15863e445b7SManivannan Sadhasivam            - const: ref
15963e445b7SManivannan Sadhasivam            - const: ddrss_sf_tbu
16063e445b7SManivannan Sadhasivam            - const: aggre_noc_axi
16163e445b7SManivannan Sadhasivam
16231c9ef00SManivannan SadhasivamunevaluatedProperties: false
16331c9ef00SManivannan Sadhasivam
16431c9ef00SManivannan Sadhasivamexamples:
16531c9ef00SManivannan Sadhasivam  - |
16631c9ef00SManivannan Sadhasivam    #include <dt-bindings/clock/qcom,gcc-sdx55.h>
16731c9ef00SManivannan Sadhasivam    #include <dt-bindings/gpio/gpio.h>
16831c9ef00SManivannan Sadhasivam    #include <dt-bindings/interrupt-controller/arm-gic.h>
16931c9ef00SManivannan Sadhasivam    pcie_ep: pcie-ep@40000000 {
17031c9ef00SManivannan Sadhasivam        compatible = "qcom,sdx55-pcie-ep";
17131c9ef00SManivannan Sadhasivam        reg = <0x01c00000 0x3000>,
17231c9ef00SManivannan Sadhasivam              <0x40000000 0xf1d>,
17331c9ef00SManivannan Sadhasivam              <0x40000f20 0xc8>,
17431c9ef00SManivannan Sadhasivam              <0x40001000 0x1000>,
17531c9ef00SManivannan Sadhasivam              <0x40002000 0x1000>,
17631c9ef00SManivannan Sadhasivam              <0x01c03000 0x3000>;
17731c9ef00SManivannan Sadhasivam        reg-names = "parf", "dbi", "elbi", "atu", "addr_space",
17831c9ef00SManivannan Sadhasivam                    "mmio";
17931c9ef00SManivannan Sadhasivam
18031c9ef00SManivannan Sadhasivam        clocks = <&gcc GCC_PCIE_AUX_CLK>,
18131c9ef00SManivannan Sadhasivam             <&gcc GCC_PCIE_CFG_AHB_CLK>,
18231c9ef00SManivannan Sadhasivam             <&gcc GCC_PCIE_MSTR_AXI_CLK>,
18331c9ef00SManivannan Sadhasivam             <&gcc GCC_PCIE_SLV_AXI_CLK>,
18431c9ef00SManivannan Sadhasivam             <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>,
18531c9ef00SManivannan Sadhasivam             <&gcc GCC_PCIE_SLEEP_CLK>,
18631c9ef00SManivannan Sadhasivam             <&gcc GCC_PCIE_0_CLKREF_CLK>;
18731c9ef00SManivannan Sadhasivam        clock-names = "aux", "cfg", "bus_master", "bus_slave",
18831c9ef00SManivannan Sadhasivam                      "slave_q2a", "sleep", "ref";
18931c9ef00SManivannan Sadhasivam
19031c9ef00SManivannan Sadhasivam        qcom,perst-regs = <&tcsr 0xb258 0xb270>;
19131c9ef00SManivannan Sadhasivam
19231c9ef00SManivannan Sadhasivam        interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
19331c9ef00SManivannan Sadhasivam                     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
19431c9ef00SManivannan Sadhasivam        interrupt-names = "global", "doorbell";
19531c9ef00SManivannan Sadhasivam        reset-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
19631c9ef00SManivannan Sadhasivam        wake-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
19731c9ef00SManivannan Sadhasivam        resets = <&gcc GCC_PCIE_BCR>;
19831c9ef00SManivannan Sadhasivam        reset-names = "core";
19931c9ef00SManivannan Sadhasivam        power-domains = <&gcc PCIE_GDSC>;
20031c9ef00SManivannan Sadhasivam        phys = <&pcie0_lane>;
20131c9ef00SManivannan Sadhasivam        phy-names = "pciephy";
20231c9ef00SManivannan Sadhasivam        max-link-speed = <3>;
20331c9ef00SManivannan Sadhasivam        num-lanes = <2>;
20431c9ef00SManivannan Sadhasivam    };
205