# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pci/qcom,pcie-sc8280xp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm SC8280XP PCI Express Root Complex

maintainers:
  - Bjorn Andersson <andersson@kernel.org>
  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

description:
  Qualcomm SC8280XP SoC PCIe root complex controller is based on the Synopsys
  DesignWare PCIe IP.

properties:
  compatible:
    enum:
      - qcom,pcie-sa8540p
      - qcom,pcie-sc8280xp

  reg:
    minItems: 5
    maxItems: 6

  reg-names:
    minItems: 5
    items:
      - const: parf # Qualcomm specific registers
      - const: dbi # DesignWare PCIe registers
      - const: elbi # External local bus interface registers
      - const: atu # ATU address space
      - const: config # PCIe configuration space
      - const: mhi # MHI registers

  clocks:
    minItems: 8
    maxItems: 9

  clock-names:
    minItems: 8
    items:
      - const: aux # Auxiliary clock
      - const: cfg # Configuration clock
      - const: bus_master # Master AXI clock
      - const: bus_slave # Slave AXI clock
      - const: slave_q2a # Slave Q2A clock
      - const: ddrss_sf_tbu # PCIe SF TBU clock
      - const: noc_aggr_4 # NoC aggregate 4 clock
      - const: noc_aggr_south_sf # NoC aggregate South SF clock
      - const: cnoc_qx # Configuration NoC QX clock

  resets:
    maxItems: 1

  reset-names:
    items:
      - const: pci

  vddpe-3v3-supply:
    description: A phandle to the PCIe endpoint power supply

required:
  - interconnects
  - interconnect-names

allOf:
  - $ref: qcom,pcie-common.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,pcie-sc8280xp
    then:
      properties:
        interrupts:
          minItems: 4
          maxItems: 4
        interrupt-names:
          items:
            - const: msi0
            - const: msi1
            - const: msi2
            - const: msi3
    else:
      properties:
        interrupts:
          maxItems: 1
        interrupt-names:
          items:
            - const: msi

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interconnect/qcom,sc8280xp.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        pcie@1c20000 {
            compatible = "qcom,pcie-sc8280xp";
            reg = <0x0 0x01c20000 0x0 0x3000>,
                  <0x0 0x3c000000 0x0 0xf1d>,
                  <0x0 0x3c000f20 0x0 0xa8>,
                  <0x0 0x3c001000 0x0 0x1000>,
                  <0x0 0x3c100000 0x0 0x100000>,
                  <0x0 0x01c23000 0x0 0x1000>;
            reg-names = "parf", "dbi", "elbi", "atu", "config", "mhi";
            ranges = <0x01000000 0x0 0x00000000 0x0 0x3c200000 0x0 0x100000>,
                     <0x02000000 0x0 0x3c300000 0x0 0x3c300000 0x0 0x1d00000>;

            bus-range = <0x00 0xff>;
            device_type = "pci";
            linux,pci-domain = <2>;
            num-lanes = <4>;

            #address-cells = <3>;
            #size-cells = <2>;

            assigned-clocks = <&gcc GCC_PCIE_2A_AUX_CLK>;
            assigned-clock-rates = <19200000>;
            clocks = <&gcc GCC_PCIE_2A_AUX_CLK>,
                     <&gcc GCC_PCIE_2A_CFG_AHB_CLK>,
                     <&gcc GCC_PCIE_2A_MSTR_AXI_CLK>,
                     <&gcc GCC_PCIE_2A_SLV_AXI_CLK>,
                     <&gcc GCC_PCIE_2A_SLV_Q2A_AXI_CLK>,
                     <&gcc GCC_DDRSS_PCIE_SF_TBU_CLK>,
                     <&gcc GCC_AGGRE_NOC_PCIE_4_AXI_CLK>,
                     <&gcc GCC_AGGRE_NOC_PCIE_SOUTH_SF_AXI_CLK>;
            clock-names = "aux",
                          "cfg",
                          "bus_master",
                          "bus_slave",
                          "slave_q2a",
                          "ddrss_sf_tbu",
                          "noc_aggr_4",
                          "noc_aggr_south_sf";

            dma-coherent;

            interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 523 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 524 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 525 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "msi0", "msi1", "msi2", "msi3";
            #interrupt-cells = <1>;
            interrupt-map-mask = <0 0 0 0x7>;
            interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>,
                            <0 0 0 2 &intc 0 0 GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>,
                            <0 0 0 3 &intc 0 0 GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>,
                            <0 0 0 4 &intc 0 0 GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>;

            interconnects = <&aggre2_noc MASTER_PCIE_2A 0 &mc_virt SLAVE_EBI1 0>,
                            <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_PCIE_2A 0>;
            interconnect-names = "pcie-mem", "cpu-pcie";

            phys = <&pcie2a_phy>;
            phy-names = "pciephy";

            pinctrl-0 = <&pcie2a_default>;
            pinctrl-names = "default";

            power-domains = <&gcc PCIE_2A_GDSC>;

            resets = <&gcc GCC_PCIE_2A_BCR>;
            reset-names = "pci";

            perst-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
            wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
            vddpe-3v3-supply = <&vreg_nvme>;
        };
    };
