dt-bindings: pci: qcom: Add PCIe EP DT Bindings on sdxkova
Add PCIE endpoint related DT bindings on sdxkova. Change-Id: Ied1e29b5f272cd10b18334e710c611c407422c43 Signed-off-by: Anvita T <quic_atadepal@quicinc.com>
This commit is contained in:
467
bindings/pci/qcom,msm-ep-pcie.yaml
Normal file
467
bindings/pci/qcom,msm-ep-pcie.yaml
Normal file
@@ -0,0 +1,467 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pci/qcom,msm-ep-pcie.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Technologies, Inc. (QTI) MSM PCI express Endpoint Controller
|
||||
|
||||
maintainers:
|
||||
- Anvita T <quic_atadepal@quicinc.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,pcie-ep
|
||||
|
||||
reg:
|
||||
minItems: 7
|
||||
items:
|
||||
- description: PCIe MSM MSI address reserved space
|
||||
- description: DesignWare PCIe core (dm_core) registers
|
||||
- description: External local bus interface (elbi) registers
|
||||
- description: Address Translation Unit (ATU) registers
|
||||
- description: PCIe MSM specific (parf) registers
|
||||
- description: PCIe Physical layer (phy) registers
|
||||
- description: BAR memory region
|
||||
- description: PCIe MSM MSI address reserved space for vf
|
||||
- description: DesignWare PCIe core (dm_core) registers for vf
|
||||
- description: DesignWare PCIe EDMA registers
|
||||
- description: Register to avoid device reset during host reboot
|
||||
- description: AOSS reset clear register
|
||||
- description: PCIe RUMI (rumi) registers
|
||||
|
||||
reg-names:
|
||||
minItems: 7
|
||||
items:
|
||||
- const: msi
|
||||
- const: dm_core
|
||||
- const: elbi
|
||||
- const: iatu
|
||||
- const: parf
|
||||
- const: phy
|
||||
- const: mmio
|
||||
- const: msi_vf
|
||||
- const: dm_core_vf
|
||||
- const: edma
|
||||
- const: tcsr_pcie_perst_en
|
||||
- const: aoss_cc_reset
|
||||
- const: rumi
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
items:
|
||||
- description: PCIe Global interrupt
|
||||
- description: PCIe PME turnoff interrupt
|
||||
- description: PCIe Dstate change interrupt
|
||||
- description: PCIe L1ss timeout interrupt
|
||||
- description: PCIe Link up interrupt
|
||||
- description: PCIe Likk down interrupt
|
||||
- description: PCIe bridge flush interrupt
|
||||
- description: PCIe BME interrupt
|
||||
|
||||
interrupt-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- const: int_global
|
||||
- const: int_pm_turnoff
|
||||
- const: int_dstate_change
|
||||
- const: int_l1sub_timeout
|
||||
- const: int_link_up
|
||||
- const: int_link_down
|
||||
- const: int_bridge_flush_n
|
||||
- const: int_bme
|
||||
|
||||
pinctrl-names:
|
||||
description: GPIO configuration at the init time.
|
||||
items:
|
||||
- const: default
|
||||
|
||||
pinctrl-0:
|
||||
description: Should contain default pinctrl.
|
||||
|
||||
perst-gpio:
|
||||
description: GPIO used as PERST# input signal
|
||||
maxItems: 1
|
||||
|
||||
wake-gpio:
|
||||
description: GPIO used as WAKE# output signal
|
||||
maxItems: 1
|
||||
|
||||
clkreq-gpio:
|
||||
description: GPIO used to wake system in L1ss sleep
|
||||
maxItems: 1
|
||||
|
||||
mdm2apstatus-gpio:
|
||||
description: GPIO used to indicate mdm to ap status
|
||||
maxItems: 1
|
||||
|
||||
gdsc-vdd-supply:
|
||||
description: A phandle to the core gdsc power supply
|
||||
|
||||
gdsc-phy-vdd-supply:
|
||||
description: A phandle to the phy gdsc power supply
|
||||
|
||||
vreg-1p2-supply:
|
||||
description: A phandle to the 1.2v power supply
|
||||
|
||||
vreg-0p9-supply:
|
||||
description: A phandle to the 0.9v power supply
|
||||
|
||||
vreg-qref-supply:
|
||||
description: A phandle to the qref power supply
|
||||
|
||||
vreg-mx-supply:
|
||||
description: A phandle to the mx power supply
|
||||
|
||||
vreg-cx-supply:
|
||||
description: A phandle to the cx power supply
|
||||
|
||||
qcom,vreg-1p2-voltage-level:
|
||||
description: Array containing the min, max supported voltage and current for 1.2v power supply.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
qcom,vreg-0p9-voltage-level:
|
||||
description: Array containing the min, max supported voltage and current for 0.9v power supply.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
qcom,vreg-qref-voltage-level:
|
||||
description: Array containing the min, max supported voltage and current for qref power supply.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
resets:
|
||||
maxItems: 2
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: pcie_core_reset
|
||||
- const: pcie_phy_reset
|
||||
|
||||
interconnects:
|
||||
maxItems: 1
|
||||
|
||||
interconnect-names:
|
||||
items:
|
||||
- const: icc_path
|
||||
|
||||
# Common definitions for clocks, clock-names and reset.
|
||||
# Platform constraints are described later.
|
||||
clocks:
|
||||
description: Phandles to the clocks.
|
||||
minItems: 1
|
||||
maxItems: 14
|
||||
anyOf:
|
||||
- items:
|
||||
- description: PCIe PIPE clock
|
||||
- description: PCIe reference clock source
|
||||
- description: PCIe Auxiliary clock
|
||||
- description: PCIe CFG AHB clock
|
||||
- description: PCIe Master AXI clock
|
||||
- description: PCIe Slave AXI clock
|
||||
- description: PCIe low dropout regulator clock
|
||||
- description: PCIe Slave Q2A AXI clock
|
||||
- description: PCIe DDRS SF translational buffer unit clock
|
||||
- description: PCIe aggregation NoC AXI clock
|
||||
- description: PCIe CNOC SF AXI clock
|
||||
- description: PCIe Multiplexer clock for the PIPE clock
|
||||
- description: PCIe external source PIPE clock
|
||||
- description: PCIe PHY Auxiliary clock
|
||||
|
||||
clock-names:
|
||||
description: Names of the clocks.
|
||||
minItems: 1
|
||||
maxItems: 14
|
||||
anyOf:
|
||||
- items:
|
||||
- const: pcie_pipe_clk
|
||||
- const: pcie_0_ref_clk_src
|
||||
- const: pcie_aux_clk
|
||||
- const: pcie_cfg_ahb_clk
|
||||
- const: pcie_mstr_axi_clk
|
||||
- const: pcie_slv_axi_clk
|
||||
- const: pcie_ldo
|
||||
- const: pcie_slv_q2a_axi_clk
|
||||
- const: pcie_ddrss_sf_tbu_clk
|
||||
- const: pcie_aggre_noc_0_axi_clk
|
||||
- const: gcc_cnoc_pcie_sf_axi_clk
|
||||
- const: pcie_pipe_clk_mux
|
||||
- const: pcie_pipe_clk_ext_src
|
||||
- const: pcie_phy_aux_clk
|
||||
|
||||
qcom,pcie-vendor-id:
|
||||
description: Vendor ID of the endpoint to be exposed
|
||||
|
||||
qcom,pcie-device-id:
|
||||
description: Device ID of the endpoint to be exposed
|
||||
|
||||
qcom,pcie-link-speed:
|
||||
description: This will override the max Gen speed
|
||||
- 0x1 GEN1
|
||||
- 0x2 GEN2
|
||||
- 0x3 GEN3
|
||||
- 0x4 GEN4
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [1, 2, 3, 4]
|
||||
|
||||
qcom,pcie-phy-ver:
|
||||
description: States the PCIe PHY HSR version.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,no-path-from-ipa-to-pcie:
|
||||
description: This will configure iatu for IPA transactions as there is no
|
||||
direct path from the IPA to PCIe.
|
||||
type: boolean
|
||||
|
||||
qcom,pcie-aggregated-irq:
|
||||
description: This will configure iatu for IPA transactions as there is no
|
||||
direct path from the IPA to PCIe.
|
||||
type: boolean
|
||||
|
||||
qcom,pcie-mhi-a7-irq:
|
||||
description: This will configure iatu for IPA transactions as there is no
|
||||
direct path from the IPA to PCIe.
|
||||
type: boolean
|
||||
|
||||
qcom,tcsr-not-supported:
|
||||
description: This will configure iatu for IPA transactions as there is no
|
||||
direct path from the IPA to PCIe.
|
||||
type: boolean
|
||||
|
||||
qcom,phy-status-reg2:
|
||||
description: Offset from PCIe PHY base to check the PCIe PHY status.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,mhi-soc-reset-offset:
|
||||
description: Offset from PCIe PHY base to check the PCIe PHY status.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,aux-clk:
|
||||
description: This sets the aux clock frequency value.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
iommu-map:
|
||||
description: As described in the pci-iommu.txt.
|
||||
maxItems: 1
|
||||
|
||||
qcom,phy-init:
|
||||
description: PCIe PHY initialization sequence.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
'#address-cells':
|
||||
description: Should provide a value of 0.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
'#interrupt-cells':
|
||||
description: Should provide a value of 1.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
'#interrupt-map-mask':
|
||||
description: should provide a value of 0xffffffff.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
interrupt-map:
|
||||
description: Must create mapping for the number of interrupts
|
||||
that are defined in above interrupts property.
|
||||
For PCIe device node, it should define 6 mappings for
|
||||
the corresponding PCIe interrupts supporting the
|
||||
specification.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
qcom,vreg-mx-voltage-level:
|
||||
description: Support PCIe Gen4 on sdxlemur by scaling MX to
|
||||
appropriate voltage.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
max-clock-frequency-hz:
|
||||
description: list of the maximum operating frequencies stored
|
||||
in the same order of clock names.
|
||||
|
||||
qcom,tcsr-perst-separation-enable-offset:
|
||||
description: Offset for TCSR perst seperation enable.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,tcsr-reset-separation-offset:
|
||||
description: Offset for TCSR reset seperation.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,tcsr-perst-enable-offset:
|
||||
description: Offset for TCSR perst enable.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,tcsr-hot-reset-offset:
|
||||
description: Offset for TCSR hot reset enable.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,perst-raw-rst-status-b:
|
||||
description: Bit for perset raw reset status.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,dbi-base-reg:
|
||||
description: Register offset for DBI base address.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,slv-space-reg:
|
||||
description: Register offset for slave address space size.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,pcie-active-config:
|
||||
description: active configuration of PCIe addressing.
|
||||
type: boolean
|
||||
|
||||
qcom,pcie-edma:
|
||||
description: edma usage for PCIe.
|
||||
type: boolean
|
||||
|
||||
qcom,pcie-cesta-clkreq-offset:
|
||||
description: Offset from PCIe PARF base to PCIe CESTA CLKREQ register.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,pcie-perst-enum:
|
||||
description: Link enumeration will be triggered by PERST deassertion.
|
||||
type: boolean
|
||||
|
||||
qcom,pcie-m2-autonomous:
|
||||
description: Enable L1ss sleep/exit to support M2 autonomous mode.
|
||||
type: boolean
|
||||
|
||||
qcom,override-disable-sriov:
|
||||
description: Set to report as SRIOV capability disable with client (MHI) driver.
|
||||
type: boolean
|
||||
|
||||
nvmem-cells:
|
||||
description: Phandle of nvmem cell containing the address for boot_config.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
|
||||
nvmem-cell-names:
|
||||
description: nvmem cell name for boot_config.
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
|
||||
qcom,fast-boot-mask:
|
||||
description: Bitmask to read fast_boot value from boot_config cell.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,host-bypass-mask:
|
||||
description: Bitmask to read host_bypass value from boot_config cell.
|
||||
Will work only when host_bypass is 1 bit in boot_config.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,fast-boot-values:
|
||||
description: fast_boot values to check against boot_config based value for confirming
|
||||
that host-interface is PCIe.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
qcom,ep-pcie-num-ipc-pages-dev-fac:
|
||||
description: If property is present reduce the ep pcie ipc logging size
|
||||
based on the divisor factor. This property also represents the divisor factor.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,pcie-sm-sequence:
|
||||
description: PCIe State Manager sequence.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
qcom,pcie-sm-branch-sequence:
|
||||
description: PCIe state manager branch sequence.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
|
||||
qcom,pcie-sm-branch-offset:
|
||||
description: Offset from PCIe state manager base to load the branch sequence.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,pcie-sm-start-offset:
|
||||
description: Offset from PCIe state manager base to start/enable the state manager.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,pcie-disconnect-req-reg-b:
|
||||
description: It specifies the register responsible for handling PCIe disconnect requests.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
qcom,aoss-rst-clr:
|
||||
description: If present, indicates that the reset clear signal is enabled.
|
||||
It is used to clear and write reset signals to the specified register within the AOSS.
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reg-names
|
||||
- interrupts
|
||||
- interrupt-names
|
||||
- pinctrl-names
|
||||
- pinctrl-0
|
||||
- perst-gpio
|
||||
- wake-gpio
|
||||
- resets
|
||||
- reset-names
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
pcie_ep: qcom,pcie@bfffd000 {
|
||||
compatible = "qcom,pcie-ep";
|
||||
|
||||
reg = <0xbfffd000 0x1000>,
|
||||
<0xbfffe000 0x1000>,
|
||||
<0xbffff000 0x1000>,
|
||||
<0xfc520000 0x2000>,
|
||||
<0xfc526000 0x1000>,
|
||||
<0xfc527000 0x1000>,
|
||||
<0x01fcb000 0x1000>;
|
||||
|
||||
reg-names = "msi", "dm_core", "elbi", "parf", "phy", "mmio",
|
||||
"tcsr_pcie_perst";
|
||||
|
||||
#address-cells = <0>;
|
||||
interrupt-parent = <&pcie_ep>;
|
||||
interrupts = <0 1 2 3 4 5>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map-mask = <0xffffffff>;
|
||||
interrupt-map = <0 &intc 0 44 0
|
||||
1 &intc 0 46 0
|
||||
2 &intc 0 47 0
|
||||
3 &intc 0 50 0
|
||||
4 &intc 0 51 0
|
||||
5 &intc 0 52 0>;
|
||||
interrupt-names = "int_pm_turnoff", "int_dstate_change",
|
||||
"int_l1sub_timeout", "int_link_up",
|
||||
"int_link_down", "int_bridge_flush_n";
|
||||
|
||||
perst-gpio = <&msmgpio 65 0>;
|
||||
wake-gpio = <&msmgpio 61 0>;
|
||||
clkreq-gpio = <&msmgpio 64 0>;
|
||||
mdm2apstatus-gpio = <&tlmm_pinmux 16 0>;
|
||||
|
||||
gdsc-vdd-supply = <&gdsc_pcie_0>;
|
||||
vreg-1.8-supply = <&pmd9635_l8>;
|
||||
vreg-0.9-supply = <&pmd9635_l4>;
|
||||
|
||||
qcom,vreg-1.8-voltage-level = <1800000 1800000 1000>;
|
||||
qcom,vreg-0.9-voltage-level = <950000 950000 24000>;
|
||||
|
||||
clock-names = "pcie_pipe_clk",
|
||||
"pcie_aux_clk", "pcie_cfg_ahb_clk",
|
||||
"pcie_mstr_axi_clk", "pcie_slv_axi_clk",
|
||||
"pcie_ldo";
|
||||
max-clock-frequency-hz = <62500000>, <1000000>,
|
||||
<0>, <0>, <0>, <0>;
|
||||
resets = <&clock_gcc GCC_PCIE_BCR>,
|
||||
<&clock_gcc GCC_PCIE_PHY_BCR>;
|
||||
|
||||
reset-names = "pcie_core_reset", "pcie_phy_reset";
|
||||
|
||||
qcom,pcie-link-speed = <1>;
|
||||
qcom,pcie-active-config;
|
||||
qcom,pcie-aggregated-irq;
|
||||
qcom,pcie-mhi-a7-irq;
|
||||
qcom,pcie-perst-enum;
|
||||
qcom,phy-status-reg = <0x728>;
|
||||
qcom,dbi-base-reg = <0x168>;
|
||||
qcom,slv-space-reg = <0x16c>;
|
||||
|
||||
qcom,phy-init = <0x604 0x03 0x0 0x1
|
||||
0x048 0x08 0x0 0x1
|
||||
0x64c 0x4d 0x0 0x1
|
||||
0x600 0x00 0x0 0x1
|
||||
};
|
Reference in New Issue
Block a user