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

title: Qualcomm X1E80100 PCI Express Root Complex

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

description:
  Qualcomm X1E80100 SoC (and compatible) PCIe root complex controller is based on
  the Synopsys DesignWare PCIe IP.

properties:
  compatible:
    const: qcom,pcie-x1e80100

  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: 7
    maxItems: 7

  clock-names:
    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: noc_aggr # Aggre NoC PCIe AXI clock
      - const: cnoc_sf_axi # Config NoC PCIe1 AXI clock

  interrupts:
    minItems: 8
    maxItems: 8

  interrupt-names:
    items:
      - const: msi0
      - const: msi1
      - const: msi2
      - const: msi3
      - const: msi4
      - const: msi5
      - const: msi6
      - const: msi7

  resets:
    minItems: 1
    maxItems: 2

  reset-names:
    minItems: 1
    items:
      - const: pci # PCIe core reset
      - const: link_down # PCIe link down reset

allOf:
  - $ref: qcom,pcie-common.yaml#

unevaluatedProperties: false

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

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

        pcie@1c08000 {
            compatible = "qcom,pcie-x1e80100";
            reg = <0 0x01c08000 0 0x3000>,
                  <0 0x7c000000 0 0xf1d>,
                  <0 0x7c000f40 0 0xa8>,
                  <0 0x7c001000 0 0x1000>,
                  <0 0x7c100000 0 0x100000>,
                  <0 0x01c0b000 0 0x1000>;
            reg-names = "parf", "dbi", "elbi", "atu", "config", "mhi";
            ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>,
                     <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x3d00000>;

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

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

            clocks = <&gcc GCC_PCIE_4_AUX_CLK>,
                     <&gcc GCC_PCIE_4_CFG_AHB_CLK>,
                     <&gcc GCC_PCIE_4_MSTR_AXI_CLK>,
                     <&gcc GCC_PCIE_4_SLV_AXI_CLK>,
                     <&gcc GCC_PCIE_4_SLV_Q2A_AXI_CLK>,
                     <&gcc GCC_CFG_NOC_PCIE_ANOC_NORTH_AHB_CLK>,
                     <&gcc GCC_CNOC_PCIE_NORTH_SF_AXI_CLK>;
            clock-names = "aux",
                          "cfg",
                          "bus_master",
                          "bus_slave",
                          "slave_q2a",
                          "noc_aggr",
                          "cnoc_sf_axi";

            dma-coherent;

            interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "msi0", "msi1", "msi2", "msi3",
                              "msi4", "msi5", "msi6", "msi7";
            #interrupt-cells = <1>;
            interrupt-map-mask = <0 0 0 0x7>;
            interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
                            <0 0 0 2 &intc 0 0 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
                            <0 0 0 3 &intc 0 0 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
                            <0 0 0 4 &intc 0 0 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */

            interconnects = <&pcie_noc MASTER_PCIE_4 0 &mc_virt SLAVE_EBI1 0>,
                            <&gem_noc MASTER_APPSS_PROC 0 &cnoc_main SLAVE_PCIE_4 0>;
            interconnect-names = "pcie-mem", "cpu-pcie";

            iommu-map = <0x0 &apps_smmu 0x1400 0x1>,
                        <0x100 &apps_smmu 0x1401 0x1>;

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

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

            power-domains = <&gcc GCC_PCIE_4_GDSC>;

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

            perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
            wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
        };
    };
