* [PATCH v2 0/6] pci: qcom: Add QCS615 PCIe support
@ 2024-11-22 2:02 Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 1/6] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS615 QMP PCIe PHY Gen3 x1 Ziyue Zhang
` (5 more replies)
0 siblings, 6 replies; 11+ messages in thread
From: Ziyue Zhang @ 2024-11-22 2:02 UTC (permalink / raw)
To: vkoul, kishon, robh+dt, manivannan.sadhasivam, bhelgaas, kw,
lpieralisi, quic_qianyu, conor+dt, neil.armstrong, andersson,
konradybcio
Cc: quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Ziyue Zhang, Krishna chaitanya chundru
This series adds document, phy, configs support for PCIe in QCS615.
Base DT:
https://lore.kernel.org/all/20241104-add_initial_support_for_qcs615-v5-0-9dde8d7b80b0@quicinc.com/
APPS SMMU:
https://lore.kernel.org/all/20241105032107.9552-1-quic_qqzhou@quicinc.com/
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
Have folling changes:
- Add compatible and phy compatible for qcs615 platform.
- Add support for GEN3 x1 PCIe PHY found on Qualcomm QCS615 platform.
- Add a new Document the QCS615 PCIe Controller
- Add the compatible for QCS615 PCIe controller.
- Add configurations in devicetree for PCIe, including registers, clocks, interrupts and phy setting sequence.
- Add configurations in devicetree for PCIe, platform related gpios, PMIC regulators, etc.
Changes in v2:
- Update commit message for qcs615 phy
- Update qcs615 phy, using lowercase hex
- Removed redundant function
- split the soc dtsi and the platform dts into two changes
- Link to v1: https://lore.kernel.org/all/20241118082619.177201-1-quic_ziyuzhan@quicinc.com/
Krishna chaitanya chundru (5):
dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS615 QMP
PCIe PHY Gen3 x1
phy: qcom: qmp: Add phy register and clk setting for QCS615 PCIe
dt-bindings: PCI: qcom: Document the QCS615 PCIe Controller
PCI: qcom: Add QCS615 PCIe support
arm64: dts: qcom: qcs615: enable pcie for qcs615 board dts
Ziyue Zhang (1):
arm64: dts: qcom: qcs615: enable pcie for qcs615 soc
.../bindings/pci/qcom,pcie-qcs615.yaml | 161 ++++++++++++++++++
.../phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 2 +
arch/arm64/boot/dts/qcom/qcs615-ride.dts | 42 +++++
arch/arm64/boot/dts/qcom/qcs615.dtsi | 158 +++++++++++++++++
drivers/pci/controller/dwc/pcie-qcom.c | 1 +
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 105 ++++++++++++
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h | 1 +
7 files changed, 470 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pci/qcom,pcie-qcs615.yaml
base-commit: ee5d1329f3de0b8cb77084715c1179627a9d599c
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 1/6] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS615 QMP PCIe PHY Gen3 x1
2024-11-22 2:02 [PATCH v2 0/6] pci: qcom: Add QCS615 PCIe support Ziyue Zhang
@ 2024-11-22 2:03 ` Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 2/6] phy: qcom: qmp: Add phy register and clk setting for QCS615 PCIe Ziyue Zhang
` (4 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Ziyue Zhang @ 2024-11-22 2:03 UTC (permalink / raw)
To: vkoul, kishon, robh+dt, manivannan.sadhasivam, bhelgaas, kw,
lpieralisi, quic_qianyu, conor+dt, neil.armstrong, andersson,
konradybcio
Cc: quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Krishna chaitanya chundru, Ziyue Zhang
From: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Document the QMP PCIe PHY on the QCS615 platform.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
.../devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
index 13fdf5f1beba..34d977af9263 100644
--- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
@@ -16,6 +16,7 @@ description:
properties:
compatible:
enum:
+ - qcom,qcs615-qmp-gen3x1-pcie-phy
- qcom,sa8775p-qmp-gen4x2-pcie-phy
- qcom,sa8775p-qmp-gen4x4-pcie-phy
- qcom,sc8180x-qmp-pcie-phy
@@ -167,6 +168,7 @@ allOf:
compatible:
contains:
enum:
+ - qcom,qcs615-qmp-gen3x1-pcie-phy
- qcom,sc8280xp-qmp-gen3x1-pcie-phy
- qcom,sc8280xp-qmp-gen3x2-pcie-phy
- qcom,sc8280xp-qmp-gen3x4-pcie-phy
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 2/6] phy: qcom: qmp: Add phy register and clk setting for QCS615 PCIe
2024-11-22 2:02 [PATCH v2 0/6] pci: qcom: Add QCS615 PCIe support Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 1/6] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS615 QMP PCIe PHY Gen3 x1 Ziyue Zhang
@ 2024-11-22 2:03 ` Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 3/6] dt-bindings: PCI: qcom: Document the QCS615 PCIe Controller Ziyue Zhang
` (3 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Ziyue Zhang @ 2024-11-22 2:03 UTC (permalink / raw)
To: vkoul, kishon, robh+dt, manivannan.sadhasivam, bhelgaas, kw,
lpieralisi, quic_qianyu, conor+dt, neil.armstrong, andersson,
konradybcio
Cc: quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Krishna chaitanya chundru, Ziyue Zhang
From: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Add support for GEN3 x1 PCIe PHY found on Qualcomm QCS615 platform.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 105 +++++++++++++++++++++
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h | 1 +
2 files changed, 106 insertions(+)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index 873f2f9844c6..c8e39c147ba4 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -728,6 +728,83 @@ static const struct qmp_phy_init_tbl ipq9574_gen3x2_pcie_pcs_misc_tbl[] = {
QMP_PHY_INIT_CFG(QPHY_V5_PCS_PCIE_ENDPOINT_REFCLK_DRIVE, 0xc1),
};
+static const struct qmp_phy_init_tbl qcs615_pcie_serdes_tbl[] = {
+ QMP_PHY_INIT_CFG(QSERDES_COM_BIAS_EN_CLKBUFLR_EN, 0x18),
+ QMP_PHY_INIT_CFG(QSERDES_COM_CLK_ENABLE1, 0x10),
+ QMP_PHY_INIT_CFG(QSERDES_COM_BG_TRIM, 0xf),
+ QMP_PHY_INIT_CFG(QSERDES_COM_LOCK_CMP_EN, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_COM_VCO_TUNE_MAP, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_COM_VCO_TUNE_TIMER1, 0xff),
+ QMP_PHY_INIT_CFG(QSERDES_COM_VCO_TUNE_TIMER2, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_COM_CMN_CONFIG, 0x6),
+ QMP_PHY_INIT_CFG(QSERDES_COM_PLL_IVCO, 0xf),
+ QMP_PHY_INIT_CFG(QSERDES_COM_HSCLK_SEL, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SVS_MODE_CLK_SEL, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_COM_CORE_CLK_EN, 0x20),
+ QMP_PHY_INIT_CFG(QSERDES_COM_CORECLK_DIV, 0xa),
+ QMP_PHY_INIT_CFG(QSERDES_COM_RESETSM_CNTRL, 0x20),
+ QMP_PHY_INIT_CFG(QSERDES_COM_BG_TIMER, 0x9),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SYSCLK_EN_SEL, 0x4),
+ QMP_PHY_INIT_CFG(QSERDES_COM_DEC_START_MODE0, 0x82),
+ QMP_PHY_INIT_CFG(QSERDES_COM_DIV_FRAC_START3_MODE0, 0x3),
+ QMP_PHY_INIT_CFG(QSERDES_COM_DIV_FRAC_START2_MODE0, 0x55),
+ QMP_PHY_INIT_CFG(QSERDES_COM_DIV_FRAC_START1_MODE0, 0x55),
+ QMP_PHY_INIT_CFG(QSERDES_COM_LOCK_CMP3_MODE0, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_COM_LOCK_CMP2_MODE0, 0xd),
+ QMP_PHY_INIT_CFG(QSERDES_COM_LOCK_CMP1_MODE0, 0x04),
+ QMP_PHY_INIT_CFG(QSERDES_COM_CLK_SELECT, 0x35),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SYS_CLK_CTRL, 0x2),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SYSCLK_BUF_ENABLE, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_COM_CP_CTRL_MODE0, 0x4),
+ QMP_PHY_INIT_CFG(QSERDES_COM_PLL_RCTRL_MODE0, 0x16),
+ QMP_PHY_INIT_CFG(QSERDES_COM_PLL_CCTRL_MODE0, 0x30),
+ QMP_PHY_INIT_CFG(QSERDES_COM_INTEGLOOP_GAIN1_MODE0, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_COM_INTEGLOOP_GAIN0_MODE0, 0x80),
+ QMP_PHY_INIT_CFG(QSERDES_COM_BIAS_EN_CTRL_BY_PSM, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_COM_BG_TIMER, 0xa),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SSC_EN_CENTER, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SSC_PER1, 0x31),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SSC_PER2, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SSC_ADJ_PER1, 0x2),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SSC_ADJ_PER2, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SSC_STEP_SIZE1, 0x2f),
+ QMP_PHY_INIT_CFG(QSERDES_COM_SSC_STEP_SIZE2, 0x19),
+ QMP_PHY_INIT_CFG(QSERDES_COM_CLK_EP_DIV, 0x19),
+};
+
+static const struct qmp_phy_init_tbl qcs615_pcie_rx_tbl[] = {
+ QMP_PHY_INIT_CFG(QSERDES_RX_SIGDET_ENABLES, 0x1c),
+ QMP_PHY_INIT_CFG(QSERDES_RX_SIGDET_DEGLITCH_CNTRL, 0x14),
+ QMP_PHY_INIT_CFG(QSERDES_RX_RX_EQU_ADAPTOR_CNTRL2, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_RX_RX_EQU_ADAPTOR_CNTRL3, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_RX_RX_EQU_ADAPTOR_CNTRL4, 0xdb),
+ QMP_PHY_INIT_CFG(QSERDES_RX_UCDR_SO_SATURATION_AND_ENABLE, 0x4b),
+ QMP_PHY_INIT_CFG(QSERDES_RX_UCDR_SO_GAIN, 0x4),
+ QMP_PHY_INIT_CFG(QSERDES_RX_UCDR_SO_GAIN_HALF, 0x4),
+};
+
+static const struct qmp_phy_init_tbl qcs615_pcie_tx_tbl[] = {
+ QMP_PHY_INIT_CFG(QSERDES_TX_HIGHZ_TRANSCEIVEREN_BIAS_DRVR_EN, 0x45),
+ QMP_PHY_INIT_CFG(QSERDES_TX_LANE_MODE, 0x6),
+ QMP_PHY_INIT_CFG(QSERDES_TX_RES_CODE_LANE_OFFSET, 0x2),
+ QMP_PHY_INIT_CFG(QSERDES_TX_RCV_DETECT_LVL_2, 0x12),
+};
+
+static const struct qmp_phy_init_tbl qcs615_pcie_pcs_tbl[] = {
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_ENDPOINT_REFCLK_DRIVE, 0x4),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_OSC_DTCT_ACTIONS, 0x0),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_PWRUP_RESET_DLY_TIME_AUXCLK, 0x40),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_L1SS_WAKEUP_DLY_TIME_AUXCLK_MSB, 0x0),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_L1SS_WAKEUP_DLY_TIME_AUXCLK_LSB, 0x40),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_PLL_LOCK_CHK_DLY_TIME_AUXCLK_LSB, 0x0),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_LP_WAKEUP_DLY_TIME_AUXCLK, 0x40),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_PLL_LOCK_CHK_DLY_TIME, 0x73),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_SIGDET_CNTRL, 0x7),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_RX_SIGDET_LVL, 0x99),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_TXDEEMPH_M6DB_V0, 0x15),
+ QMP_PHY_INIT_CFG(QPHY_V2_PCS_TXDEEMPH_M3P5DB_V0, 0xe),
+};
+
static const struct qmp_phy_init_tbl sdm845_qmp_pcie_serdes_tbl[] = {
QMP_PHY_INIT_CFG(QSERDES_V3_COM_BIAS_EN_CLKBUFLR_EN, 0x14),
QMP_PHY_INIT_CFG(QSERDES_V3_COM_CLK_SELECT, 0x30),
@@ -3132,6 +3209,31 @@ static const struct qmp_phy_cfg ipq9574_gen3x2_pciephy_cfg = {
.pipe_clock_rate = 250000000,
};
+static const struct qmp_phy_cfg qcs615_pciephy_cfg = {
+ .lanes = 1,
+
+ .offsets = &qmp_pcie_offsets_v2,
+
+ .tbls = {
+ .serdes = qcs615_pcie_serdes_tbl,
+ .serdes_num = ARRAY_SIZE(qcs615_pcie_serdes_tbl),
+ .tx = qcs615_pcie_tx_tbl,
+ .tx_num = ARRAY_SIZE(qcs615_pcie_tx_tbl),
+ .rx = qcs615_pcie_rx_tbl,
+ .rx_num = ARRAY_SIZE(qcs615_pcie_rx_tbl),
+ .pcs = qcs615_pcie_pcs_tbl,
+ .pcs_num = ARRAY_SIZE(qcs615_pcie_pcs_tbl),
+ },
+ .reset_list = sdm845_pciephy_reset_l,
+ .num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l),
+ .vreg_list = qmp_phy_vreg_l,
+ .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
+ .regs = pciephy_v2_regs_layout,
+
+ .pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
+ .phy_status = PHYSTATUS,
+};
+
static const struct qmp_phy_cfg sdm845_qmp_pciephy_cfg = {
.lanes = 1,
@@ -4611,6 +4713,9 @@ static const struct of_device_id qmp_pcie_of_match_table[] = {
}, {
.compatible = "qcom,msm8998-qmp-pcie-phy",
.data = &msm8998_pciephy_cfg,
+ }, {
+ .compatible = "qcom,qcs615-qmp-gen3x1-pcie-phy",
+ .data = &qcs615_pciephy_cfg,
}, {
.compatible = "qcom,sa8775p-qmp-gen4x2-pcie-phy",
.data = &sa8775p_qmp_gen4x2_pciephy_cfg,
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h b/drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h
index bf36399d0057..1ecf4b5beba6 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h
@@ -34,6 +34,7 @@
#define QPHY_V2_PCS_USB_PCS_STATUS 0x17c /* USB */
#define QPHY_V2_PCS_PLL_LOCK_CHK_DLY_TIME_AUXCLK_LSB 0x1a8
#define QPHY_V2_PCS_OSC_DTCT_ACTIONS 0x1ac
+#define QPHY_V2_PCS_SIGDET_CNTRL 0x1b0
#define QPHY_V2_PCS_RX_SIGDET_LVL 0x1d8
#define QPHY_V2_PCS_L1SS_WAKEUP_DLY_TIME_AUXCLK_LSB 0x1dc
#define QPHY_V2_PCS_L1SS_WAKEUP_DLY_TIME_AUXCLK_MSB 0x1e0
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 3/6] dt-bindings: PCI: qcom: Document the QCS615 PCIe Controller
2024-11-22 2:02 [PATCH v2 0/6] pci: qcom: Add QCS615 PCIe support Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 1/6] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS615 QMP PCIe PHY Gen3 x1 Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 2/6] phy: qcom: qmp: Add phy register and clk setting for QCS615 PCIe Ziyue Zhang
@ 2024-11-22 2:03 ` Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 4/6] PCI: qcom: Add QCS615 PCIe support Ziyue Zhang
` (2 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Ziyue Zhang @ 2024-11-22 2:03 UTC (permalink / raw)
To: vkoul, kishon, robh+dt, manivannan.sadhasivam, bhelgaas, kw,
lpieralisi, quic_qianyu, conor+dt, neil.armstrong, andersson,
konradybcio
Cc: quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Krishna chaitanya chundru, Ziyue Zhang
From: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Add dedicated schema for the PCIe controllers found on QCS615.
Due to qcs615's clock-names do not match any of the existing
dt-bindings, a new compatible for qcs615 is needed.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
.../bindings/pci/qcom,pcie-qcs615.yaml | 161 ++++++++++++++++++
1 file changed, 161 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pci/qcom,pcie-qcs615.yaml
diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-qcs615.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-qcs615.yaml
new file mode 100644
index 000000000000..8f7571538d23
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/qcom,pcie-qcs615.yaml
@@ -0,0 +1,161 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,pcie-qcs615.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm QCS615 PCI Express Root Complex
+
+maintainers:
+ - Bjorn Andersson <andersson@kernel.org>
+ - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+
+description:
+ Qualcomm QCS615 SoC (and compatible) PCIe root complex controller is based on
+ the Synopsys DesignWare PCIe IP.
+
+properties:
+ compatible:
+ const: qcom,pcie-qcs615
+
+ reg:
+ minItems: 6
+ maxItems: 6
+
+ reg-names:
+ 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: 6
+ maxItems: 6
+
+ 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: ref # REFERENCE clock
+
+ interrupts:
+ minItems: 9
+ maxItems: 9
+
+ interrupt-names:
+ items:
+ - const: msi0
+ - const: msi1
+ - const: msi2
+ - const: msi3
+ - const: msi4
+ - const: msi5
+ - const: msi6
+ - const: msi7
+ - const: global
+
+ resets:
+ minItems: 1
+ maxItems: 1
+
+ reset-names:
+ items:
+ - const: pci # PCIe core reset
+
+allOf:
+ - $ref: qcom,pcie-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,qcs615-gcc.h>
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interconnect/qcom,qcs615-rpmh.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ pcie@1c08000 {
+ compatible = "qcom,pcie-qcs615";
+ reg = <0 0x01c08000 0 0x3000>,
+ <0 0x40000000 0 0xf1d>,
+ <0 0x40000f20 0 0xa8>,
+ <0 0x40001000 0 0x1000>,
+ <0 0x40100000 0 0x100000>,
+ <0 0x01c0b000 0 0x1000>;
+ reg-names = "parf", "dbi", "elbi", "atu", "config", "mhi";
+ ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>,
+ <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x3d00000>;
+
+ bus-range = <0x00 0xff>;
+ device_type = "pci";
+ linux,pci-domain = <0>;
+ num-lanes = <1>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ clocks = <&gcc GCC_PCIE_0_AUX_CLK>,
+ <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+ <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+ <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
+ <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>,
+ <&rpmhcc RPMH_CXO_CLK>;
+ clock-names = "aux",
+ "cfg",
+ "bus_master",
+ "bus_slave",
+ "slave_q2a",
+ "ref";
+
+ 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>,
+ <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "msi0", "msi1", "msi2", "msi3",
+ "msi4", "msi5", "msi6", "msi7", "global";
+ #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 = <&agree1_noc MASTER_PCIE 0 &mc_virt SLAVE_EBI1 0>,
+ <&gem_noc MASTER_APPSS_PROC 0 &cnoc_main SLAVE_PCIE_0 0>;
+ interconnect-names = "pcie-mem", "cpu-pcie";
+
+ iommu-map = <0x0 &apps_smmu 0x400 0x1>,
+ <0x100 &apps_smmu 0x401 0x1>;
+
+ phys = <&pcie_phy>;
+ phy-names = "pciephy";
+
+ pinctrl-0 = <&pcie_default_state>;
+ pinctrl-names = "default";
+
+ power-domains = <&gcc PCIE_0_GDSC>;
+
+ resets = <&gcc GCC_PCIE_0_BCR>;
+ reset-names = "pci";
+
+ perst-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>;
+ };
+ };
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 4/6] PCI: qcom: Add QCS615 PCIe support
2024-11-22 2:02 [PATCH v2 0/6] pci: qcom: Add QCS615 PCIe support Ziyue Zhang
` (2 preceding siblings ...)
2024-11-22 2:03 ` [PATCH v2 3/6] dt-bindings: PCI: qcom: Document the QCS615 PCIe Controller Ziyue Zhang
@ 2024-11-22 2:03 ` Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 5/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 soc Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 6/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 platform dts Ziyue Zhang
5 siblings, 0 replies; 11+ messages in thread
From: Ziyue Zhang @ 2024-11-22 2:03 UTC (permalink / raw)
To: vkoul, kishon, robh+dt, manivannan.sadhasivam, bhelgaas, kw,
lpieralisi, quic_qianyu, conor+dt, neil.armstrong, andersson,
konradybcio
Cc: quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Krishna chaitanya chundru, Ziyue Zhang
From: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Add the compatible and the driver data for QCS615 PCIe controller.
There is only one controller instance found on this platform, out of which
is Gen3 with speeds of up to 8.0GT/s.
The version of the controller is 1.38.0 for all instances, but they are
compatible with 1.9.0 config.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
drivers/pci/controller/dwc/pcie-qcom.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
index ef44a82be058..da7200b56b1e 100644
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -1830,6 +1830,7 @@ static const struct of_device_id qcom_pcie_match[] = {
{ .compatible = "qcom,pcie-ipq8074-gen3", .data = &cfg_2_9_0 },
{ .compatible = "qcom,pcie-msm8996", .data = &cfg_2_3_2 },
{ .compatible = "qcom,pcie-qcs404", .data = &cfg_2_4_0 },
+ { .compatible = "qcom,pcie-qcs615", .data = &cfg_1_9_0 },
{ .compatible = "qcom,pcie-sa8540p", .data = &cfg_sc8280xp },
{ .compatible = "qcom,pcie-sa8775p", .data = &cfg_1_34_0},
{ .compatible = "qcom,pcie-sc7280", .data = &cfg_1_9_0 },
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 5/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 soc
2024-11-22 2:02 [PATCH v2 0/6] pci: qcom: Add QCS615 PCIe support Ziyue Zhang
` (3 preceding siblings ...)
2024-11-22 2:03 ` [PATCH v2 4/6] PCI: qcom: Add QCS615 PCIe support Ziyue Zhang
@ 2024-11-22 2:03 ` Ziyue Zhang
2024-12-30 15:12 ` Konrad Dybcio
2024-11-22 2:03 ` [PATCH v2 6/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 platform dts Ziyue Zhang
5 siblings, 1 reply; 11+ messages in thread
From: Ziyue Zhang @ 2024-11-22 2:03 UTC (permalink / raw)
To: vkoul, kishon, robh+dt, manivannan.sadhasivam, bhelgaas, kw,
lpieralisi, quic_qianyu, conor+dt, neil.armstrong, andersson,
konradybcio
Cc: quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Ziyue Zhang, Krishna chaitanya chundru
Add configurations in devicetree for PCIe0, including registers, clocks,
interrupts and phy setting sequence.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
arch/arm64/boot/dts/qcom/qcs615.dtsi | 158 +++++++++++++++++++++++++++
1 file changed, 158 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs615.dtsi b/arch/arm64/boot/dts/qcom/qcs615.dtsi
index 868808918fd2..c56cc30a59f3 100644
--- a/arch/arm64/boot/dts/qcom/qcs615.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs615.dtsi
@@ -678,6 +678,164 @@ rpmhpd_opp_turbo_l1: opp-9 {
};
};
+ pcie: pcie@1c08000 {
+ compatible = "qcom,pcie-qcs615";
+ reg = <0x0 0x01c08000 0x0 0x3000>,
+ <0x0 0x40000000 0x0 0xf1d>,
+ <0x0 0x40000f20 0x0 0xa8>,
+ <0x0 0x40001000 0x0 0x1000>,
+ <0x0 0x40100000 0x0 0x100000>,
+ <0x0 0x01c0b000 0x0 0x1000>;
+
+ reg-names = "parf",
+ "dbi",
+ "elbi",
+ "atu",
+ "config",
+ "mhi";
+
+ device_type = "pci";
+ linux,pci-domain = <0>;
+ bus-range = <0x00 0xff>;
+ num-lanes = <1>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>,
+ <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>;
+
+ 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",
+ "global";
+
+ interrupt-map = <0 0 0 0 &intc 0 0 0 140 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &intc 0 0 0 150 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &intc 0 0 0 151 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &intc 0 0 0 152 IRQ_TYPE_LEVEL_HIGH>;
+
+ #interrupt-cells = <1>;
+ interrupt-map-mask = <0 0 0 0x7>;
+
+ interconnects = <&aggre1_noc MASTER_PCIE QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+ <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+ &config_noc SLAVE_PCIE_0 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "pcie-mem", "cpu-pcie";
+
+ clocks = <&gcc GCC_PCIE_0_AUX_CLK>,
+ <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+ <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+ <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
+ <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>,
+ <&rpmhcc RPMH_CXO_CLK>;
+
+ clock-names = "aux",
+ "cfg",
+ "bus_master",
+ "bus_slave",
+ "slave_q2a",
+ "ref";
+
+ assigned-clocks = <&gcc GCC_PCIE_0_AUX_CLK>;
+ assigned-clock-rates = <19200000>;
+
+ operating-points-v2 = <&pcie_opp_table>;
+
+ resets = <&gcc GCC_PCIE_0_BCR>;
+ reset-names = "pci";
+
+ phys = <&pcie_phy>;
+ phy-names = "pciephy";
+
+ power-domains = <&gcc PCIE_0_GDSC>;
+
+ dma-coherent;
+
+ iommu-map = <0x0 &apps_smmu 0x400 0x1>,
+ <0x100 &apps_smmu 0x401 0x1>;
+
+ status = "disabled";
+ pcie_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ /* GEN 1 x1 */
+ opp-2500000 {
+ opp-hz = /bits/ 64 <2500000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ opp-peak-kBps = <250000 1>;
+ };
+
+ /* GEN 2 x1 */
+ opp-5000000 {
+ opp-hz = /bits/ 64 <5000000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ opp-peak-kBps = <500000 1>;
+ };
+
+ /* GEN 3 x1 */
+ opp-8000000 {
+ opp-hz = /bits/ 64 <8000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ opp-peak-kBps = <984500 1>;
+ };
+ };
+
+ pcie@0 {
+ device_type = "pci";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+ bus-range = <0x01 0xff>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ };
+ };
+
+ pcie_phy: phy@1c0e000 {
+ compatible = "qcom,qcs615-qmp-gen3x1-pcie-phy";
+ reg = <0x0 0x01c0e000 0x0 0x1000>;
+
+ clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+ <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+ <&gcc GCC_PCIE_0_CLKREF_CLK>,
+ <&gcc GCC_PCIE0_PHY_REFGEN_CLK>,
+ <&gcc GCC_PCIE_0_PIPE_CLK>;
+ clock-names = "aux",
+ "cfg_ahb",
+ "ref",
+ "refgen",
+ "pipe";
+
+ clock-output-names = "pcie_0_pipe_clk";
+ #clock-cells = <0>;
+
+ #phy-cells = <0>;
+
+ resets = <&gcc GCC_PCIE_0_PHY_BCR>;
+ reset-names = "phy";
+
+ assigned-clocks = <&gcc GCC_PCIE0_PHY_REFGEN_CLK>;
+ assigned-clock-rates = <100000000>;
+
+ status = "disabled";
+ };
+
arch_timer: timer {
compatible = "arm,armv8-timer";
interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 6/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 platform dts
2024-11-22 2:02 [PATCH v2 0/6] pci: qcom: Add QCS615 PCIe support Ziyue Zhang
` (4 preceding siblings ...)
2024-11-22 2:03 ` [PATCH v2 5/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 soc Ziyue Zhang
@ 2024-11-22 2:03 ` Ziyue Zhang
2024-12-02 14:26 ` Konrad Dybcio
5 siblings, 1 reply; 11+ messages in thread
From: Ziyue Zhang @ 2024-11-22 2:03 UTC (permalink / raw)
To: vkoul, kishon, robh+dt, manivannan.sadhasivam, bhelgaas, kw,
lpieralisi, quic_qianyu, conor+dt, neil.armstrong, andersson,
konradybcio
Cc: quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Krishna chaitanya chundru, Ziyue Zhang
From: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Add platform configurations in devicetree for PCIe, board related
gpios, PMIC regulators, etc.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
arch/arm64/boot/dts/qcom/qcs615-ride.dts | 42 ++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
index ee6cab3924a6..18f131ae9e07 100644
--- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
@@ -202,6 +202,23 @@ &gcc {
<&sleep_clk>;
};
+&pcie {
+ perst-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&pcie_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie_phy {
+ vdda-phy-supply = <&vreg_l5a>;
+ vdda-pll-supply = <&vreg_l12a>;
+
+ status = "okay";
+};
+
&qupv3_id_0 {
status = "okay";
};
@@ -210,6 +227,31 @@ &rpmhcc {
clocks = <&xo_board_clk>;
};
+&tlmm {
+ pcie_default_state: pcie-default-state {
+ clkreq-pins {
+ pins = "gpio90";
+ function = "pcie_clk_req";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-pins {
+ pins = "gpio101";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ wake-pins {
+ pins = "gpio100";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+};
+
&uart0 {
status = "okay";
};
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 6/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 platform dts
2024-11-22 2:03 ` [PATCH v2 6/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 platform dts Ziyue Zhang
@ 2024-12-02 14:26 ` Konrad Dybcio
0 siblings, 0 replies; 11+ messages in thread
From: Konrad Dybcio @ 2024-12-02 14:26 UTC (permalink / raw)
To: Ziyue Zhang, vkoul, kishon, robh+dt, manivannan.sadhasivam,
bhelgaas, kw, lpieralisi, quic_qianyu, conor+dt, neil.armstrong,
andersson, konradybcio
Cc: quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Krishna chaitanya chundru
On 22.11.2024 3:03 AM, Ziyue Zhang wrote:
> From: Krishna chaitanya chundru <quic_krichai@quicinc.com>
>
> Add platform configurations in devicetree for PCIe, board related
> gpios, PMIC regulators, etc.
>
> Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 5/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 soc
2024-11-22 2:03 ` [PATCH v2 5/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 soc Ziyue Zhang
@ 2024-12-30 15:12 ` Konrad Dybcio
0 siblings, 0 replies; 11+ messages in thread
From: Konrad Dybcio @ 2024-12-30 15:12 UTC (permalink / raw)
To: Ziyue Zhang, vkoul, kishon, robh+dt, manivannan.sadhasivam,
bhelgaas, kw, lpieralisi, quic_qianyu, conor+dt, neil.armstrong,
andersson, konradybcio
Cc: quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Krishna chaitanya chundru
On 22.11.2024 3:03 AM, Ziyue Zhang wrote:
> Add configurations in devicetree for PCIe0, including registers, clocks,
> interrupts and phy setting sequence.
>
> Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> ---
> arch/arm64/boot/dts/qcom/qcs615.dtsi | 158 +++++++++++++++++++++++++++
> 1 file changed, 158 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs615.dtsi b/arch/arm64/boot/dts/qcom/qcs615.dtsi
> index 868808918fd2..c56cc30a59f3 100644
> --- a/arch/arm64/boot/dts/qcom/qcs615.dtsi
> +++ b/arch/arm64/boot/dts/qcom/qcs615.dtsi
> @@ -678,6 +678,164 @@ rpmhpd_opp_turbo_l1: opp-9 {
> };
> };
>
> + pcie: pcie@1c08000 {
> + compatible = "qcom,pcie-qcs615";
> + reg = <0x0 0x01c08000 0x0 0x3000>,
> + <0x0 0x40000000 0x0 0xf1d>,
> + <0x0 0x40000f20 0x0 0xa8>,
> + <0x0 0x40001000 0x0 0x1000>,
> + <0x0 0x40100000 0x0 0x100000>,
> + <0x0 0x01c0b000 0x0 0x1000>;
> +
> + reg-names = "parf",
> + "dbi",
> + "elbi",
> + "atu",
> + "config",
> + "mhi";
Please match the property order/style to x1e80100.dtsi
[...]
> +
> + interconnects = <&aggre1_noc MASTER_PCIE QCOM_ICC_TAG_ALWAYS
> + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
> + &config_noc SLAVE_PCIE_0 QCOM_ICC_TAG_ALWAYS>;
> + interconnect-names = "pcie-mem", "cpu-pcie";
Use QCOM_ICC_TAG_ACTIVE_ONLY on the CPU path
[...]
> +
> + pcie_phy: phy@1c0e000 {
> + compatible = "qcom,qcs615-qmp-gen3x1-pcie-phy";
> + reg = <0x0 0x01c0e000 0x0 0x1000>;
> +
> + clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
> + <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
> + <&gcc GCC_PCIE_0_CLKREF_CLK>,
> + <&gcc GCC_PCIE0_PHY_REFGEN_CLK>,
> + <&gcc GCC_PCIE_0_PIPE_CLK>;
> + clock-names = "aux",
> + "cfg_ahb",
> + "ref",
> + "refgen",
> + "pipe";
> +
> + clock-output-names = "pcie_0_pipe_clk";
> + #clock-cells = <0>;
> +
> + #phy-cells = <0>;
> +
> + resets = <&gcc GCC_PCIE_0_PHY_BCR>;
> + reset-names = "phy";
Please add the NOCSR reset too
Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 6/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 platform dts
2024-11-22 2:33 ` [PATCH v2 6/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 platform dts Ziyue Zhang
@ 2024-12-02 4:35 ` Bjorn Andersson
0 siblings, 0 replies; 11+ messages in thread
From: Bjorn Andersson @ 2024-12-02 4:35 UTC (permalink / raw)
To: Ziyue Zhang
Cc: vkoul, kishon, robh+dt, manivannan.sadhasivam, bhelgaas, kw,
lpieralisi, quic_qianyu, conor+dt, neil.armstrong, konradybcio,
quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Krishna chaitanya chundru
On Fri, Nov 22, 2024 at 10:33:14AM +0800, Ziyue Zhang wrote:
"arm64: dts: qcom: qcs615-ride: Enable PCIe interface"
Regards,
Bjorn
> From: Krishna chaitanya chundru <quic_krichai@quicinc.com>
>
> Add platform configurations in devicetree for PCIe, board related
> gpios, PMIC regulators, etc.
>
> Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> ---
> arch/arm64/boot/dts/qcom/qcs615-ride.dts | 42 ++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
> index ee6cab3924a6..18f131ae9e07 100644
> --- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
> @@ -202,6 +202,23 @@ &gcc {
> <&sleep_clk>;
> };
>
> +&pcie {
> + perst-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>;
> +
> + pinctrl-0 = <&pcie_default_state>;
> + pinctrl-names = "default";
> +
> + status = "okay";
> +};
> +
> +&pcie_phy {
> + vdda-phy-supply = <&vreg_l5a>;
> + vdda-pll-supply = <&vreg_l12a>;
> +
> + status = "okay";
> +};
> +
> &qupv3_id_0 {
> status = "okay";
> };
> @@ -210,6 +227,31 @@ &rpmhcc {
> clocks = <&xo_board_clk>;
> };
>
> +&tlmm {
> + pcie_default_state: pcie-default-state {
> + clkreq-pins {
> + pins = "gpio90";
> + function = "pcie_clk_req";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> + perst-pins {
> + pins = "gpio101";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> + wake-pins {
> + pins = "gpio100";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> + };
> +};
> +
> &uart0 {
> status = "okay";
> };
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 6/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 platform dts
2024-11-22 2:33 [PATCH v2 0/6] pci: qcom: Add QCS615 PCIe support Ziyue Zhang
@ 2024-11-22 2:33 ` Ziyue Zhang
2024-12-02 4:35 ` Bjorn Andersson
0 siblings, 1 reply; 11+ messages in thread
From: Ziyue Zhang @ 2024-11-22 2:33 UTC (permalink / raw)
To: vkoul, kishon, robh+dt, manivannan.sadhasivam, bhelgaas, kw,
lpieralisi, quic_qianyu, conor+dt, neil.armstrong, andersson,
konradybcio
Cc: quic_tsoni, quic_shashim, quic_kaushalk, quic_tdas,
quic_tingweiz, quic_aiquny, kernel, linux-arm-msm, devicetree,
linux-kernel, linux-phy, Krishna chaitanya chundru, Ziyue Zhang
From: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Add platform configurations in devicetree for PCIe, board related
gpios, PMIC regulators, etc.
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
arch/arm64/boot/dts/qcom/qcs615-ride.dts | 42 ++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
index ee6cab3924a6..18f131ae9e07 100644
--- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts
@@ -202,6 +202,23 @@ &gcc {
<&sleep_clk>;
};
+&pcie {
+ perst-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&pcie_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie_phy {
+ vdda-phy-supply = <&vreg_l5a>;
+ vdda-pll-supply = <&vreg_l12a>;
+
+ status = "okay";
+};
+
&qupv3_id_0 {
status = "okay";
};
@@ -210,6 +227,31 @@ &rpmhcc {
clocks = <&xo_board_clk>;
};
+&tlmm {
+ pcie_default_state: pcie-default-state {
+ clkreq-pins {
+ pins = "gpio90";
+ function = "pcie_clk_req";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-pins {
+ pins = "gpio101";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ wake-pins {
+ pins = "gpio100";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+};
+
&uart0 {
status = "okay";
};
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-12-30 15:12 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-22 2:02 [PATCH v2 0/6] pci: qcom: Add QCS615 PCIe support Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 1/6] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS615 QMP PCIe PHY Gen3 x1 Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 2/6] phy: qcom: qmp: Add phy register and clk setting for QCS615 PCIe Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 3/6] dt-bindings: PCI: qcom: Document the QCS615 PCIe Controller Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 4/6] PCI: qcom: Add QCS615 PCIe support Ziyue Zhang
2024-11-22 2:03 ` [PATCH v2 5/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 soc Ziyue Zhang
2024-12-30 15:12 ` Konrad Dybcio
2024-11-22 2:03 ` [PATCH v2 6/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 platform dts Ziyue Zhang
2024-12-02 14:26 ` Konrad Dybcio
2024-11-22 2:33 [PATCH v2 0/6] pci: qcom: Add QCS615 PCIe support Ziyue Zhang
2024-11-22 2:33 ` [PATCH v2 6/6] arm64: dts: qcom: qcs615: enable pcie for qcs615 platform dts Ziyue Zhang
2024-12-02 4:35 ` Bjorn Andersson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®