Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/pci/qcom,pcie-ep.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Qualcomm PCIe Endpoint Controller binding
0008 
0009 maintainers:
0010   - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
0011 
0012 allOf:
0013   - $ref: "pci-ep.yaml#"
0014 
0015 properties:
0016   compatible:
0017     const: qcom,sdx55-pcie-ep
0018 
0019   reg:
0020     items:
0021       - description: Qualcomm-specific PARF configuration registers
0022       - description: DesignWare PCIe registers
0023       - description: External local bus interface registers
0024       - description: Address Translation Unit (ATU) registers
0025       - description: Memory region used to map remote RC address space
0026       - description: BAR memory region
0027 
0028   reg-names:
0029     items:
0030       - const: parf
0031       - const: dbi
0032       - const: elbi
0033       - const: atu
0034       - const: addr_space
0035       - const: mmio
0036 
0037   clocks:
0038     items:
0039       - description: PCIe Auxiliary clock
0040       - description: PCIe CFG AHB clock
0041       - description: PCIe Master AXI clock
0042       - description: PCIe Slave AXI clock
0043       - description: PCIe Slave Q2A AXI clock
0044       - description: PCIe Sleep clock
0045       - description: PCIe Reference clock
0046 
0047   clock-names:
0048     items:
0049       - const: aux
0050       - const: cfg
0051       - const: bus_master
0052       - const: bus_slave
0053       - const: slave_q2a
0054       - const: sleep
0055       - const: ref
0056 
0057   qcom,perst-regs:
0058     description: Reference to a syscon representing TCSR followed by the two
0059                  offsets within syscon for Perst enable and Perst separation
0060                  enable registers
0061     $ref: "/schemas/types.yaml#/definitions/phandle-array"
0062     items:
0063       minItems: 3
0064       maxItems: 3
0065 
0066   interrupts:
0067     items:
0068       - description: PCIe Global interrupt
0069       - description: PCIe Doorbell interrupt
0070 
0071   interrupt-names:
0072     items:
0073       - const: global
0074       - const: doorbell
0075 
0076   reset-gpios:
0077     description: GPIO used as PERST# input signal
0078     maxItems: 1
0079 
0080   wake-gpios:
0081     description: GPIO used as WAKE# output signal
0082     maxItems: 1
0083 
0084   resets:
0085     maxItems: 1
0086 
0087   reset-names:
0088     const: core
0089 
0090   power-domains:
0091     maxItems: 1
0092 
0093   phys:
0094     maxItems: 1
0095 
0096   phy-names:
0097     const: pciephy
0098 
0099   num-lanes:
0100     default: 2
0101 
0102 required:
0103   - compatible
0104   - reg
0105   - reg-names
0106   - clocks
0107   - clock-names
0108   - qcom,perst-regs
0109   - interrupts
0110   - interrupt-names
0111   - reset-gpios
0112   - resets
0113   - reset-names
0114   - power-domains
0115 
0116 unevaluatedProperties: false
0117 
0118 examples:
0119   - |
0120     #include <dt-bindings/clock/qcom,gcc-sdx55.h>
0121     #include <dt-bindings/gpio/gpio.h>
0122     #include <dt-bindings/interrupt-controller/arm-gic.h>
0123     pcie_ep: pcie-ep@40000000 {
0124         compatible = "qcom,sdx55-pcie-ep";
0125         reg = <0x01c00000 0x3000>,
0126               <0x40000000 0xf1d>,
0127               <0x40000f20 0xc8>,
0128               <0x40001000 0x1000>,
0129               <0x40002000 0x1000>,
0130               <0x01c03000 0x3000>;
0131         reg-names = "parf", "dbi", "elbi", "atu", "addr_space",
0132                     "mmio";
0133 
0134         clocks = <&gcc GCC_PCIE_AUX_CLK>,
0135              <&gcc GCC_PCIE_CFG_AHB_CLK>,
0136              <&gcc GCC_PCIE_MSTR_AXI_CLK>,
0137              <&gcc GCC_PCIE_SLV_AXI_CLK>,
0138              <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>,
0139              <&gcc GCC_PCIE_SLEEP_CLK>,
0140              <&gcc GCC_PCIE_0_CLKREF_CLK>;
0141         clock-names = "aux", "cfg", "bus_master", "bus_slave",
0142                       "slave_q2a", "sleep", "ref";
0143 
0144         qcom,perst-regs = <&tcsr 0xb258 0xb270>;
0145 
0146         interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
0147                      <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
0148         interrupt-names = "global", "doorbell";
0149         reset-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
0150         wake-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
0151         resets = <&gcc GCC_PCIE_BCR>;
0152         reset-names = "core";
0153         power-domains = <&gcc PCIE_GDSC>;
0154         phys = <&pcie0_lane>;
0155         phy-names = "pciephy";
0156         max-link-speed = <3>;
0157         num-lanes = <2>;
0158     };