* [PATCH v3 0/8] pci: qcom: Add QCS8300 PCIe support
@ 2024-12-20 5:52 Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 1/8] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS8300 QMP PCIe PHY Gen4 x2 Ziyue Zhang
` (7 more replies)
0 siblings, 8 replies; 15+ messages in thread
From: Ziyue Zhang @ 2024-12-20 5:52 UTC (permalink / raw)
To: vkoul, kishon, robh, krzk+dt, conor+dt, dmitry.baryshkov,
neil.armstrong, abel.vesa, manivannan.sadhasivam, lpieralisi, kw,
bhelgaas, andersson, konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan, Ziyue Zhang
This series adds document, phy, configs support for PCIe in QCS8300.
The series depend on the following devicetree.
Have follwing changes:
- Document the QMP PCIe PHY on the QCS8300 platform.
- Add dedicated schema for the PCIe controllers found on QCS8300.
- Add compatible for qcs8300 platform.
- Add configurations in devicetree for PCIe0, including registers, clocks, interrupts and phy setting sequence.
- Add configurations in devicetree for PCIe1, 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>
---
Changes in v3:
- Add received tag(Rob & Dmitry)
- Update pcie_phy in gcc node to soc dtsi(Dmitry & Konrad)
- remove pcieprot0 node(Konrad & Mani)
- Fix format comments(Konrad)
- Update base-commit to tag: next-20241213(Bjorn)
- Corrected of_device_id.data from 1.9.0 to 1.34.0.
- Link to v2: https://lore.kernel.org/all/20241128081056.1361739-1-quic_ziyuzhan@quicinc.com/
Changes in v2:
- Fix some format comments and match the style in x1e80100(Konrad)
- Add global interrupt for PCIe0 and PCIe1(Konrad)
- split the soc dtsi and the platform dts into two changes(Konrad)
- Link to v1: https://lore.kernel.org/all/20241114095409.2682558-1-quic_ziyuzhan@quicinc.com/
Ziyue Zhang (8):
dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS8300 QMP
PCIe PHY Gen4 x2
phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300
dt-bindings: PCI: qcom,pcie-sa8775p: document qcs8300
PCI: qcom: Add QCS8300 PCIe support
arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 soc
arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 platform
arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 soc
arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 platform
.../bindings/pci/qcom,pcie-sa8775p.yaml | 7 +-
.../phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 2 +
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 82 ++++
arch/arm64/boot/dts/qcom/qcs8300.dtsi | 349 +++++++++++++++++-
drivers/pci/controller/dwc/pcie-qcom.c | 1 +
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 89 +++++
6 files changed, 527 insertions(+), 3 deletions(-)
base-commit: 4176cf5c5651c33769de83bb61b0287f4ec7719f
--
2.34.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v3 1/8] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS8300 QMP PCIe PHY Gen4 x2
2024-12-20 5:52 [PATCH v3 0/8] pci: qcom: Add QCS8300 PCIe support Ziyue Zhang
@ 2024-12-20 5:52 ` Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 2/8] phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300 Ziyue Zhang
` (6 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Ziyue Zhang @ 2024-12-20 5:52 UTC (permalink / raw)
To: vkoul, kishon, robh, krzk+dt, conor+dt, dmitry.baryshkov,
neil.armstrong, abel.vesa, manivannan.sadhasivam, lpieralisi, kw,
bhelgaas, andersson, konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan, Ziyue Zhang
Document the QMP PCIe PHY on the QCS8300 platform.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
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 8b82f8ee1cb4..bfb28737295b 100644
--- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
@@ -17,6 +17,7 @@ properties:
compatible:
enum:
- qcom,qcs615-qmp-gen3x1-pcie-phy
+ - qcom,qcs8300-qmp-gen4x2-pcie-phy
- qcom,sa8775p-qmp-gen4x2-pcie-phy
- qcom,sa8775p-qmp-gen4x4-pcie-phy
- qcom,sar2130p-qmp-gen3x2-pcie-phy
@@ -190,6 +191,7 @@ allOf:
compatible:
contains:
enum:
+ - qcom,qcs8300-qmp-gen4x2-pcie-phy
- qcom,sa8775p-qmp-gen4x2-pcie-phy
- qcom,sa8775p-qmp-gen4x4-pcie-phy
then:
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 2/8] phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300
2024-12-20 5:52 [PATCH v3 0/8] pci: qcom: Add QCS8300 PCIe support Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 1/8] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS8300 QMP PCIe PHY Gen4 x2 Ziyue Zhang
@ 2024-12-20 5:52 ` Ziyue Zhang
2024-12-21 6:13 ` kernel test robot
2024-12-21 22:04 ` kernel test robot
2024-12-20 5:52 ` [PATCH v3 3/8] dt-bindings: PCI: qcom,pcie-sa8775p: document qcs8300 Ziyue Zhang
` (5 subsequent siblings)
7 siblings, 2 replies; 15+ messages in thread
From: Ziyue Zhang @ 2024-12-20 5:52 UTC (permalink / raw)
To: vkoul, kishon, robh, krzk+dt, conor+dt, dmitry.baryshkov,
neil.armstrong, abel.vesa, manivannan.sadhasivam, lpieralisi, kw,
bhelgaas, andersson, konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan, Ziyue Zhang
The PCIe Gen4x2 PHY for qcs8300 has a lot of difference with sa8775p.
So the qcs8300_qmp_gen4x2_pcie_rx_alt_tbl for qcs8300 is added.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 89 ++++++++++++++++++++++++
1 file changed, 89 insertions(+)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index 018bbb300830..9efc5a75edb7 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -805,6 +805,58 @@ static const struct qmp_phy_init_tbl qcs615_pcie_pcs_tbl[] = {
QMP_PHY_INIT_CFG(QPHY_V2_PCS_TXDEEMPH_M3P5DB_V0, 0xe),
};
+static const struct qmp_phy_init_tbl qcs8300_qmp_gen4x2_pcie_rx_alt_tbl[] = {
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_UCDR_PI_CONTROLS, 0x16),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_DFE_CTLE_POST_CAL_OFFSET, 0x38),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE_0_1_B0, 0x9b),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE_0_1_B1, 0xb0),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE_0_1_B2, 0xd2),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE_0_1_B3, 0xf0),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE_0_1_B4, 0x42),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE_0_1_B5, 0x00),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE_0_1_B6, 0x20),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE2_B0, 0x9b),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE2_B1, 0xfb),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE2_B2, 0xd2),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE2_B3, 0xec),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE2_B4, 0x43),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE2_B5, 0xdd),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE2_B6, 0x0d),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE3_B0, 0xf3),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE3_B1, 0xf8),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE3_B2, 0xec),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE3_B3, 0xd6),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE3_B4, 0x83),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE3_B5, 0xf5),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MODE_RATE3_B6, 0x5e),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_PHPRE_CTRL, 0x20),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_AUX_DATA_THRESH_BIN_RATE_0_1, 0x3f),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_AUX_DATA_THRESH_BIN_RATE_2_3, 0x37),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_DFE_3, 0x00),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MARG_COARSE_THRESH1_RATE3, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MARG_COARSE_THRESH2_RATE3, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MARG_COARSE_THRESH3_RATE3, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MARG_COARSE_THRESH4_RATE3, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MARG_COARSE_THRESH5_RATE3, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MARG_COARSE_THRESH6_RATE3, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MARG_COARSE_THRESH1_RATE210, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MARG_COARSE_THRESH2_RATE210, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_MARG_COARSE_THRESH3_RATE210, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_Q_PI_INTRINSIC_BIAS_RATE32, 0x09),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_UCDR_FO_GAIN_RATE2, 0x0c),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_UCDR_FO_GAIN_RATE3, 0x08),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_UCDR_SO_GAIN_RATE3, 0x04),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_VGA_CAL_CNTRL1, 0x04),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_VGA_CAL_MAN_VAL, 0x08),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_EQU_ADAPTOR_CNTRL4, 0x0b),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_EQ_OFFSET_ADAPTOR_CNTRL1, 0x7c),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_RX_IDAC_SAOFFSET, 0x10),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_DFE_DAC_ENABLE1, 0x00),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_GM_CAL, 0x05),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_TX_ADAPT_POST_THRESH1, 0x00),
+ QMP_PHY_INIT_CFG(QSERDES_V5_20_RX_TX_ADAPT_POST_THRESH2, 0x1f),
+};
+
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),
@@ -3336,6 +3388,40 @@ static const struct qmp_phy_cfg qcs615_pciephy_cfg = {
.phy_status = PHYSTATUS,
};
+static const struct qmp_phy_cfg qcs8300_qmp_gen4x2_pciephy_cfg = {
+ .lanes = 2,
+ .offsets = &qmp_pcie_offsets_v5_20,
+
+ .tbls = {
+ .serdes = sa8775p_qmp_gen4x2_pcie_serdes_alt_tbl,
+ .serdes_num = ARRAY_SIZE(sa8775p_qmp_gen4x2_pcie_serdes_alt_tbl),
+ .tx = sa8775p_qmp_gen4_pcie_tx_tbl,
+ .tx_num = ARRAY_SIZE(sa8775p_qmp_gen4_pcie_tx_tbl),
+ .rx = qcs8300_qmp_gen4x2_pcie_rx_alt_tbl,
+ .rx_num = ARRAY_SIZE(qcs8300_qmp_gen4x2_pcie_rx_alt_tbl),
+ .pcs = sa8775p_qmp_gen4x2_pcie_pcs_alt_tbl,
+ .pcs_num = ARRAY_SIZE(sa8775p_qmp_gen4x2_pcie_pcs_alt_tbl),
+ .pcs_misc = sa8775p_qmp_gen4_pcie_pcs_misc_tbl,
+ .pcs_misc_num = ARRAY_SIZE(sa8775p_qmp_gen4_pcie_pcs_misc_tbl),
+ },
+
+ .tbls_rc = &(const struct qmp_phy_cfg_tbls) {
+ .serdes = sa8775p_qmp_gen4x2_pcie_rc_serdes_alt_tbl,
+ .serdes_num = ARRAY_SIZE(sa8775p_qmp_gen4x2_pcie_rc_serdes_alt_tbl),
+ .pcs_misc = sa8775p_qmp_gen4_pcie_rc_pcs_misc_tbl,
+ .pcs_misc_num = ARRAY_SIZE(sa8775p_qmp_gen4_pcie_rc_pcs_misc_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_v5_20_regs_layout,
+
+ .pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
+ .phy_status = PHYSTATUS_4_20,
+};
+
static const struct qmp_phy_cfg sdm845_qmp_pciephy_cfg = {
.lanes = 1,
@@ -4876,6 +4962,9 @@ static const struct of_device_id qmp_pcie_of_match_table[] = {
}, {
.compatible = "qcom,qcs615-qmp-gen3x1-pcie-phy",
.data = &qcs615_pciephy_cfg,
+ }, {
+ .compatible = "qcom,qcs8300-qmp-gen4x2-pcie-phy",
+ .data = &qcs8300_qmp_gen4x2_pciephy_cfg,
}, {
.compatible = "qcom,sa8775p-qmp-gen4x2-pcie-phy",
.data = &sa8775p_qmp_gen4x2_pciephy_cfg,
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 3/8] dt-bindings: PCI: qcom,pcie-sa8775p: document qcs8300
2024-12-20 5:52 [PATCH v3 0/8] pci: qcom: Add QCS8300 PCIe support Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 1/8] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS8300 QMP PCIe PHY Gen4 x2 Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 2/8] phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300 Ziyue Zhang
@ 2024-12-20 5:52 ` Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 4/8] PCI: qcom: Add QCS8300 PCIe support Ziyue Zhang
` (4 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Ziyue Zhang @ 2024-12-20 5:52 UTC (permalink / raw)
To: vkoul, kishon, robh, krzk+dt, conor+dt, dmitry.baryshkov,
neil.armstrong, abel.vesa, manivannan.sadhasivam, lpieralisi, kw,
bhelgaas, andersson, konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan, Ziyue Zhang
Add compatible for qcs8300 platform.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
.../devicetree/bindings/pci/qcom,pcie-sa8775p.yaml | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-sa8775p.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-sa8775p.yaml
index efde49d1bef8..19e3ee1b380d 100644
--- a/Documentation/devicetree/bindings/pci/qcom,pcie-sa8775p.yaml
+++ b/Documentation/devicetree/bindings/pci/qcom,pcie-sa8775p.yaml
@@ -16,7 +16,12 @@ description:
properties:
compatible:
- const: qcom,pcie-sa8775p
+ oneOf:
+ - const: qcom,pcie-sa8775p
+ - items:
+ - enum:
+ - qcom,pcie-qcs8300
+ - const: qcom,pcie-sa8775p
reg:
minItems: 6
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 4/8] PCI: qcom: Add QCS8300 PCIe support
2024-12-20 5:52 [PATCH v3 0/8] pci: qcom: Add QCS8300 PCIe support Ziyue Zhang
` (2 preceding siblings ...)
2024-12-20 5:52 ` [PATCH v3 3/8] dt-bindings: PCI: qcom,pcie-sa8775p: document qcs8300 Ziyue Zhang
@ 2024-12-20 5:52 ` Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 5/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 soc Ziyue Zhang
` (3 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Ziyue Zhang @ 2024-12-20 5:52 UTC (permalink / raw)
To: vkoul, kishon, robh, krzk+dt, conor+dt, dmitry.baryshkov,
neil.armstrong, abel.vesa, manivannan.sadhasivam, lpieralisi, kw,
bhelgaas, andersson, konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan, Ziyue Zhang
Add support for QCS8300 SoC that uses controller version 5.90 so reusing
the 1.34.0 config.
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 dc102d8bd58c..e4e77facfb47 100644
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -1843,6 +1843,7 @@ static const struct of_device_id qcom_pcie_match[] = {
{ .compatible = "qcom,pcie-ipq9574", .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-qcs8300", .data = &cfg_1_34_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 related [flat|nested] 15+ messages in thread
* [PATCH v3 5/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 soc
2024-12-20 5:52 [PATCH v3 0/8] pci: qcom: Add QCS8300 PCIe support Ziyue Zhang
` (3 preceding siblings ...)
2024-12-20 5:52 ` [PATCH v3 4/8] PCI: qcom: Add QCS8300 PCIe support Ziyue Zhang
@ 2024-12-20 5:52 ` Ziyue Zhang
2024-12-20 10:16 ` Konrad Dybcio
2024-12-20 5:52 ` [PATCH v3 6/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 platform Ziyue Zhang
` (2 subsequent siblings)
7 siblings, 1 reply; 15+ messages in thread
From: Ziyue Zhang @ 2024-12-20 5:52 UTC (permalink / raw)
To: vkoul, kishon, robh, krzk+dt, conor+dt, dmitry.baryshkov,
neil.armstrong, abel.vesa, manivannan.sadhasivam, lpieralisi, kw,
bhelgaas, andersson, konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan, Ziyue Zhang
Add configurations in devicetree for PCIe0, including registers, clocks,
interrupts and phy setting sequence.
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
arch/arm64/boot/dts/qcom/qcs8300.dtsi | 168 +++++++++++++++++++++++++-
1 file changed, 167 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/qcs8300.dtsi b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
index 73abf2ef9c9f..c160b8c76982 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
@@ -558,7 +558,7 @@ gcc: clock-controller@100000 {
#power-domain-cells = <1>;
clocks = <&rpmhcc RPMH_CXO_CLK>,
<&sleep_clk>,
- <0>,
+ <&pcie0_phy>,
<0>,
<0>,
<0>,
@@ -663,6 +663,172 @@ mmss_noc: interconnect@17a0000 {
qcom,bcm-voters = <&apps_bcm_voter>;
};
+ pcie0: pci@1c00000 {
+ device_type = "pci";
+ compatible = "qcom,pcie-qcs8300", "qcom,pcie-sa8775p";
+ reg = <0x0 0x01c00000 0x0 0x3000>,
+ <0x0 0x40000000 0x0 0xf20>,
+ <0x0 0x40000f20 0x0 0xa8>,
+ <0x0 0x40001000 0x0 0x4000>,
+ <0x0 0x40100000 0x0 0x100000>,
+ <0x0 0x01c03000 0x0 0x1000>;
+ reg-names = "parf",
+ "dbi",
+ "elbi",
+ "atu",
+ "config",
+ "mhi";
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>,
+ <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>;
+ bus-range = <0x00 0xff>;
+
+ dma-coherent;
+
+ linux,pci-domain = <0>;
+ num-lanes = <2>;
+
+ interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 306 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 GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &intc GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &intc GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &intc GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>;
+
+ 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>;
+ clock-names = "aux",
+ "cfg",
+ "bus_master",
+ "bus_slave",
+ "slave_q2a";
+
+ assigned-clocks = <&gcc GCC_PCIE_0_AUX_CLK>;
+ assigned-clock-rates = <19200000>;
+
+ interconnects = <&pcie_anoc MASTER_PCIE_0 QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+ <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+ &config_noc SLAVE_PCIE_0 QCOM_ICC_TAG_ACTIVE_ONLY>;
+ interconnect-names = "pcie-mem",
+ "cpu-pcie";
+
+ iommu-map = <0x0 &pcie_smmu 0x0000 0x1>,
+ <0x100 &pcie_smmu 0x0001 0x1>;
+
+ resets = <&gcc GCC_PCIE_0_BCR>,
+ <&gcc GCC_PCIE_0_LINK_DOWN_BCR>;
+ reset-names = "pci",
+ "link_down";
+
+ power-domains = <&gcc GCC_PCIE_0_GDSC>;
+
+ phys = <&pcie0_phy>;
+ phy-names = "pciephy";
+
+ status = "disabled";
+
+ pcie3_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ /* GEN 1 x1 */
+ opp-2500000 {
+ opp-hz = /bits/ 64 <2500000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ opp-peak-kBps = <250000 1>;
+ };
+
+ /* GEN 1 x2 and GEN 2 x1 */
+ opp-5000000 {
+ opp-hz = /bits/ 64 <5000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ opp-peak-kBps = <500000 1>;
+ };
+
+ /* GEN 2 x2 */
+ opp-10000000 {
+ opp-hz = /bits/ 64 <10000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ opp-peak-kBps = <1000000 1>;
+ };
+
+ /* GEN 3 x1 */
+ opp-8000000 {
+ opp-hz = /bits/ 64 <8000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ opp-peak-kBps = <984500 1>;
+ };
+
+ /* GEN 3 x2 and GEN 4 x1 */
+ opp-16000000 {
+ opp-hz = /bits/ 64 <16000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ opp-peak-kBps = <1969000 1>;
+ };
+
+ /* GEN 4 x2 */
+ opp-32000000 {
+ opp-hz = /bits/ 64 <32000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ opp-peak-kBps = <3938000 1>;
+ };
+ };
+ };
+
+ pcie0_phy: phy@1c04000 {
+ compatible = "qcom,qcs8300-qmp-gen4x2-pcie-phy";
+ reg = <0x0 0x01c04000 0x0 0x2000>;
+
+ clocks = <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+ <&gcc GCC_PCIE_CLKREF_EN>,
+ <&gcc GCC_PCIE_0_PHY_RCHNG_CLK>,
+ <&gcc GCC_PCIE_0_PIPE_CLK>,
+ <&gcc GCC_PCIE_0_PIPEDIV2_CLK>,
+ <&gcc GCC_PCIE_0_PHY_AUX_CLK>;
+ clock-names = "cfg_ahb",
+ "ref",
+ "rchng",
+ "pipe",
+ "pipediv2",
+ "phy_aux";
+
+ resets = <&gcc GCC_PCIE_0_PHY_BCR>;
+ reset-names = "phy";
+
+ assigned-clocks = <&gcc GCC_PCIE_0_PHY_RCHNG_CLK>;
+ assigned-clock-rates = <100000000>;
+
+ #clock-cells = <0>;
+ clock-output-names = "pcie_0_pipe_clk";
+
+ #phy-cells = <0>;
+
+ status = "disabled";
+ };
+
ufs_mem_hc: ufs@1d84000 {
compatible = "qcom,qcs8300-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
reg = <0x0 0x01d84000 0x0 0x3000>;
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 6/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 platform
2024-12-20 5:52 [PATCH v3 0/8] pci: qcom: Add QCS8300 PCIe support Ziyue Zhang
` (4 preceding siblings ...)
2024-12-20 5:52 ` [PATCH v3 5/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 soc Ziyue Zhang
@ 2024-12-20 5:52 ` Ziyue Zhang
2024-12-20 10:17 ` Konrad Dybcio
2024-12-20 5:52 ` [PATCH v3 7/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 soc Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 8/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 platform Ziyue Zhang
7 siblings, 1 reply; 15+ messages in thread
From: Ziyue Zhang @ 2024-12-20 5:52 UTC (permalink / raw)
To: vkoul, kishon, robh, krzk+dt, conor+dt, dmitry.baryshkov,
neil.armstrong, abel.vesa, manivannan.sadhasivam, lpieralisi, kw,
bhelgaas, andersson, konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan, Ziyue Zhang
Add configurations in devicetree for PCIe0, board related gpios,
PMIC regulators, etc.
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 42 +++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
index 85b84778e85a..fe3200914f79 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
@@ -196,6 +196,23 @@ vreg_l9c: ldo9 {
};
};
+&pcie0 {
+ perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&pcie0_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie0_phy {
+ vdda-phy-supply = <&vreg_l6a>;
+ vdda-pll-supply = <&vreg_l5a>;
+
+ status = "okay";
+};
+
&qupv3_id_0 {
status = "okay";
};
@@ -215,6 +232,31 @@ &remoteproc_gpdsp {
status = "okay";
};
+&tlmm {
+ pcie0_default_state: pcie0-default-state {
+ wake-pins {
+ pins = "gpio0";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ clkreq-pins {
+ pins = "gpio1";
+ function = "pcie0_clkreq";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-pins {
+ pins = "gpio2";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+};
+
&uart7 {
status = "okay";
};
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 7/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 soc
2024-12-20 5:52 [PATCH v3 0/8] pci: qcom: Add QCS8300 PCIe support Ziyue Zhang
` (5 preceding siblings ...)
2024-12-20 5:52 ` [PATCH v3 6/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 platform Ziyue Zhang
@ 2024-12-20 5:52 ` Ziyue Zhang
2025-01-03 13:14 ` Konrad Dybcio
2024-12-20 5:52 ` [PATCH v3 8/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 platform Ziyue Zhang
7 siblings, 1 reply; 15+ messages in thread
From: Ziyue Zhang @ 2024-12-20 5:52 UTC (permalink / raw)
To: vkoul, kishon, robh, krzk+dt, conor+dt, dmitry.baryshkov,
neil.armstrong, abel.vesa, manivannan.sadhasivam, lpieralisi, kw,
bhelgaas, andersson, konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan, Ziyue Zhang
Add configurations in devicetree for PCIe1, including registers, clocks,
interrupts and phy setting sequence.
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
arch/arm64/boot/dts/qcom/qcs8300.dtsi | 181 +++++++++++++++++++++++++-
1 file changed, 180 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/qcs8300.dtsi b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
index c160b8c76982..a7768c243ea4 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300.dtsi
+++ b/arch/arm64/boot/dts/qcom/qcs8300.dtsi
@@ -559,7 +559,7 @@ gcc: clock-controller@100000 {
clocks = <&rpmhcc RPMH_CXO_CLK>,
<&sleep_clk>,
<&pcie0_phy>,
- <0>,
+ <&pcie1_phy>,
<0>,
<0>,
<0>,
@@ -829,6 +829,185 @@ pcie0_phy: phy@1c04000 {
status = "disabled";
};
+ pcie1: pci@1c10000 {
+ device_type = "pci";
+ compatible = "qcom,pcie-qcs8300", "qcom,pcie-sa8775p";
+ reg = <0x0 0x01c10000 0x0 0x3000>,
+ <0x0 0x60000000 0x0 0xf20>,
+ <0x0 0x60000f20 0x0 0xa8>,
+ <0x0 0x60001000 0x0 0x4000>,
+ <0x0 0x60100000 0x0 0x100000>,
+ <0x0 0x01c13000 0x0 0x1000>;
+ reg-names = "parf",
+ "dbi",
+ "elbi",
+ "atu",
+ "config",
+ "mhi";
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>,
+ <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x1fd00000>;
+ bus-range = <0x00 0xff>;
+
+ dma-coherent;
+
+ linux,pci-domain = <1>;
+ num-lanes = <4>;
+
+ interrupts = <GIC_SPI 519 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+ <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 518 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 GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &intc GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &intc GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &intc GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
+
+ clocks = <&gcc GCC_PCIE_1_AUX_CLK>,
+ <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+ <&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
+ <&gcc GCC_PCIE_1_SLV_AXI_CLK>,
+ <&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>;
+ clock-names = "aux",
+ "cfg",
+ "bus_master",
+ "bus_slave",
+ "slave_q2a";
+
+ assigned-clocks = <&gcc GCC_PCIE_1_AUX_CLK>;
+ assigned-clock-rates = <19200000>;
+
+ interconnects = <&pcie_anoc MASTER_PCIE_1 QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+ <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+ &config_noc SLAVE_PCIE_1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+ interconnect-names = "pcie-mem", "cpu-pcie";
+
+ iommu-map = <0x0 &pcie_smmu 0x0080 0x1>,
+ <0x100 &pcie_smmu 0x0081 0x1>;
+
+ resets = <&gcc GCC_PCIE_1_BCR>,
+ <&gcc GCC_PCIE_1_LINK_DOWN_BCR>;
+ reset-names = "pci",
+ "link_down";
+
+ power-domains = <&gcc GCC_PCIE_1_GDSC>;
+
+ phys = <&pcie1_phy>;
+ phy-names = "pciephy";
+
+ status = "disabled";
+
+ pcie3_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ /* GEN 1 x1 */
+ opp-2500000 {
+ opp-hz = /bits/ 64 <2500000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ opp-peak-kBps = <250000 1>;
+ };
+
+ /* GEN 1 x2 and GEN 2 x1 */
+ opp-5000000 {
+ opp-hz = /bits/ 64 <5000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ opp-peak-kBps = <500000 1>;
+ };
+
+ /* GEN 1 x4 and GEN 2 x2 */
+ opp-10000000 {
+ opp-hz = /bits/ 64 <10000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ opp-peak-kBps = <1000000 1>;
+ };
+
+ /* GEN 2 x4 */
+ opp-20000000 {
+ opp-hz = /bits/ 64 <20000000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ opp-peak-kBps = <2000000 1>;
+ };
+
+ /* GEN 3 x1 */
+ opp-8000000 {
+ opp-hz = /bits/ 64 <8000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ opp-peak-kBps = <984500 1>;
+ };
+
+ /* GEN 3 x2 and GEN 4 x1 */
+ opp-16000000 {
+ opp-hz = /bits/ 64 <16000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ opp-peak-kBps = <1969000 1>;
+ };
+
+ /* GEN 3 x4 and GEN 4 x2 */
+ opp-32000000 {
+ opp-hz = /bits/ 64 <32000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ opp-peak-kBps = <3938000 1>;
+ };
+
+ /* GEN 4 x4 */
+ opp-64000000 {
+ opp-hz = /bits/ 64 <64000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ opp-peak-kBps = <7876000 1>;
+ };
+ };
+ };
+
+ pcie1_phy: phy@1c14000 {
+ compatible = "qcom,sa8775p-qmp-gen4x4-pcie-phy";
+ reg = <0x0 0x01c14000 0x0 0x4000>;
+
+ clocks = <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+ <&gcc GCC_PCIE_CLKREF_EN>,
+ <&gcc GCC_PCIE_1_PHY_RCHNG_CLK>,
+ <&gcc GCC_PCIE_1_PIPE_CLK>,
+ <&gcc GCC_PCIE_1_PIPEDIV2_CLK>,
+ <&gcc GCC_PCIE_1_PHY_AUX_CLK>;
+ clock-names = "cfg_ahb",
+ "ref",
+ "rchng",
+ "pipe",
+ "pipediv2",
+ "phy_aux";
+
+ assigned-clocks = <&gcc GCC_PCIE_1_PHY_RCHNG_CLK>;
+ assigned-clock-rates = <100000000>;
+
+ resets = <&gcc GCC_PCIE_1_PHY_BCR>;
+ reset-names = "phy";
+
+ #clock-cells = <0>;
+ clock-output-names = "pcie_1_pipe_clk";
+
+ #phy-cells = <0>;
+
+ status = "disabled";
+ };
+
ufs_mem_hc: ufs@1d84000 {
compatible = "qcom,qcs8300-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
reg = <0x0 0x01d84000 0x0 0x3000>;
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 8/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 platform
2024-12-20 5:52 [PATCH v3 0/8] pci: qcom: Add QCS8300 PCIe support Ziyue Zhang
` (6 preceding siblings ...)
2024-12-20 5:52 ` [PATCH v3 7/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 soc Ziyue Zhang
@ 2024-12-20 5:52 ` Ziyue Zhang
2024-12-20 10:17 ` Konrad Dybcio
7 siblings, 1 reply; 15+ messages in thread
From: Ziyue Zhang @ 2024-12-20 5:52 UTC (permalink / raw)
To: vkoul, kishon, robh, krzk+dt, conor+dt, dmitry.baryshkov,
neil.armstrong, abel.vesa, manivannan.sadhasivam, lpieralisi, kw,
bhelgaas, andersson, konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan, Ziyue Zhang
Add configurations in devicetree for PCIe1, board related gpios,
PMIC regulators, etc.
Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
---
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 40 +++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
index fe3200914f79..d4b0488a2e23 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
@@ -213,6 +213,23 @@ &pcie0_phy {
status = "okay";
};
+&pcie1 {
+ perst-gpios = <&tlmm 23 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&pcie1_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie1_phy {
+ vdda-phy-supply = <&vreg_l6a>;
+ vdda-pll-supply = <&vreg_l5a>;
+
+ status = "okay";
+};
+
&qupv3_id_0 {
status = "okay";
};
@@ -255,6 +272,29 @@ perst-pins {
bias-pull-down;
};
};
+
+ pcie1_default_state: pcie1-default-state {
+ wake-pins {
+ pins = "gpio21";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ clkreq-pins {
+ pins = "gpio22";
+ function = "pcie1_clkreq";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-pins {
+ pins = "gpio23";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
};
&uart7 {
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v3 5/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 soc
2024-12-20 5:52 ` [PATCH v3 5/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 soc Ziyue Zhang
@ 2024-12-20 10:16 ` Konrad Dybcio
0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2024-12-20 10:16 UTC (permalink / raw)
To: Ziyue Zhang, vkoul, kishon, robh, krzk+dt, conor+dt,
dmitry.baryshkov, neil.armstrong, abel.vesa,
manivannan.sadhasivam, lpieralisi, kw, bhelgaas, andersson,
konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan
On 20.12.2024 6:52 AM, Ziyue Zhang wrote:
> Add configurations in devicetree for PCIe0, including registers, clocks,
> interrupts and phy setting sequence.
>
> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 6/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 platform
2024-12-20 5:52 ` [PATCH v3 6/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 platform Ziyue Zhang
@ 2024-12-20 10:17 ` Konrad Dybcio
0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2024-12-20 10:17 UTC (permalink / raw)
To: Ziyue Zhang, vkoul, kishon, robh, krzk+dt, conor+dt,
dmitry.baryshkov, neil.armstrong, abel.vesa,
manivannan.sadhasivam, lpieralisi, kw, bhelgaas, andersson,
konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan
On 20.12.2024 6:52 AM, Ziyue Zhang wrote:
> Add configurations in devicetree for PCIe0, board related gpios,
> PMIC regulators, etc.
>
> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 8/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 platform
2024-12-20 5:52 ` [PATCH v3 8/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 platform Ziyue Zhang
@ 2024-12-20 10:17 ` Konrad Dybcio
0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2024-12-20 10:17 UTC (permalink / raw)
To: Ziyue Zhang, vkoul, kishon, robh, krzk+dt, conor+dt,
dmitry.baryshkov, neil.armstrong, abel.vesa,
manivannan.sadhasivam, lpieralisi, kw, bhelgaas, andersson,
konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan
On 20.12.2024 6:52 AM, Ziyue Zhang wrote:
> Add configurations in devicetree for PCIe1, board related gpios,
> PMIC regulators, etc.
>
> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 2/8] phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300
2024-12-20 5:52 ` [PATCH v3 2/8] phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300 Ziyue Zhang
@ 2024-12-21 6:13 ` kernel test robot
2024-12-21 22:04 ` kernel test robot
1 sibling, 0 replies; 15+ messages in thread
From: kernel test robot @ 2024-12-21 6:13 UTC (permalink / raw)
To: Ziyue Zhang, vkoul, kishon, robh, krzk+dt, conor+dt,
dmitry.baryshkov, neil.armstrong, abel.vesa,
manivannan.sadhasivam, lpieralisi, kw, bhelgaas, andersson,
konradybcio
Cc: oe-kbuild-all, linux-phy, devicetree, linux-kernel, linux-arm-msm,
linux-pci, quic_qianyu, quic_krichai, quic_vbadigan, Ziyue Zhang
Hi Ziyue,
kernel test robot noticed the following build errors:
[auto build test ERROR on 4176cf5c5651c33769de83bb61b0287f4ec7719f]
url: https://github.com/intel-lab-lkp/linux/commits/Ziyue-Zhang/dt-bindings-phy-qcom-sc8280xp-qmp-pcie-phy-Document-the-QCS8300-QMP-PCIe-PHY-Gen4-x2/20241220-135722
base: 4176cf5c5651c33769de83bb61b0287f4ec7719f
patch link: https://lore.kernel.org/r/20241220055239.2744024-3-quic_ziyuzhan%40quicinc.com
patch subject: [PATCH v3 2/8] phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300
config: arm64-randconfig-004-20241221 (https://download.01.org/0day-ci/archive/20241221/202412211301.bQO6vXpo-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241221/202412211301.bQO6vXpo-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412211301.bQO6vXpo-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/phy/qualcomm/phy-qcom-qmp-pcie.c:3419:35: error: 'pciephy_v5_20_regs_layout' undeclared here (not in a function); did you mean 'pciephy_v5_regs_layout'?
3419 | .regs = pciephy_v5_20_regs_layout,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| pciephy_v5_regs_layout
vim +3419 drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
3390
3391 static const struct qmp_phy_cfg qcs8300_qmp_gen4x2_pciephy_cfg = {
3392 .lanes = 2,
3393 .offsets = &qmp_pcie_offsets_v5_20,
3394
3395 .tbls = {
3396 .serdes = sa8775p_qmp_gen4x2_pcie_serdes_alt_tbl,
3397 .serdes_num = ARRAY_SIZE(sa8775p_qmp_gen4x2_pcie_serdes_alt_tbl),
3398 .tx = sa8775p_qmp_gen4_pcie_tx_tbl,
3399 .tx_num = ARRAY_SIZE(sa8775p_qmp_gen4_pcie_tx_tbl),
3400 .rx = qcs8300_qmp_gen4x2_pcie_rx_alt_tbl,
3401 .rx_num = ARRAY_SIZE(qcs8300_qmp_gen4x2_pcie_rx_alt_tbl),
3402 .pcs = sa8775p_qmp_gen4x2_pcie_pcs_alt_tbl,
3403 .pcs_num = ARRAY_SIZE(sa8775p_qmp_gen4x2_pcie_pcs_alt_tbl),
3404 .pcs_misc = sa8775p_qmp_gen4_pcie_pcs_misc_tbl,
3405 .pcs_misc_num = ARRAY_SIZE(sa8775p_qmp_gen4_pcie_pcs_misc_tbl),
3406 },
3407
3408 .tbls_rc = &(const struct qmp_phy_cfg_tbls) {
3409 .serdes = sa8775p_qmp_gen4x2_pcie_rc_serdes_alt_tbl,
3410 .serdes_num = ARRAY_SIZE(sa8775p_qmp_gen4x2_pcie_rc_serdes_alt_tbl),
3411 .pcs_misc = sa8775p_qmp_gen4_pcie_rc_pcs_misc_tbl,
3412 .pcs_misc_num = ARRAY_SIZE(sa8775p_qmp_gen4_pcie_rc_pcs_misc_tbl),
3413 },
3414
3415 .reset_list = sdm845_pciephy_reset_l,
3416 .num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l),
3417 .vreg_list = qmp_phy_vreg_l,
3418 .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
> 3419 .regs = pciephy_v5_20_regs_layout,
3420
3421 .pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
3422 .phy_status = PHYSTATUS_4_20,
3423 };
3424
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 2/8] phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300
2024-12-20 5:52 ` [PATCH v3 2/8] phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300 Ziyue Zhang
2024-12-21 6:13 ` kernel test robot
@ 2024-12-21 22:04 ` kernel test robot
1 sibling, 0 replies; 15+ messages in thread
From: kernel test robot @ 2024-12-21 22:04 UTC (permalink / raw)
To: Ziyue Zhang, vkoul, kishon, robh, krzk+dt, conor+dt,
dmitry.baryshkov, neil.armstrong, abel.vesa,
manivannan.sadhasivam, lpieralisi, kw, bhelgaas, andersson,
konradybcio
Cc: llvm, oe-kbuild-all, linux-phy, devicetree, linux-kernel,
linux-arm-msm, linux-pci, quic_qianyu, quic_krichai,
quic_vbadigan, Ziyue Zhang
Hi Ziyue,
kernel test robot noticed the following build errors:
[auto build test ERROR on 4176cf5c5651c33769de83bb61b0287f4ec7719f]
url: https://github.com/intel-lab-lkp/linux/commits/Ziyue-Zhang/dt-bindings-phy-qcom-sc8280xp-qmp-pcie-phy-Document-the-QCS8300-QMP-PCIe-PHY-Gen4-x2/20241220-135722
base: 4176cf5c5651c33769de83bb61b0287f4ec7719f
patch link: https://lore.kernel.org/r/20241220055239.2744024-3-quic_ziyuzhan%40quicinc.com
patch subject: [PATCH v3 2/8] phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300
config: arm64-randconfig-002-20241221 (https://download.01.org/0day-ci/archive/20241222/202412220527.dEQSSoG8-lkp@intel.com/config)
compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241222/202412220527.dEQSSoG8-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412220527.dEQSSoG8-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/phy/qualcomm/phy-qcom-qmp-pcie.c:3419:12: error: use of undeclared identifier 'pciephy_v5_20_regs_layout'
.regs = pciephy_v5_20_regs_layout,
^
1 error generated.
vim +/pciephy_v5_20_regs_layout +3419 drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
3390
3391 static const struct qmp_phy_cfg qcs8300_qmp_gen4x2_pciephy_cfg = {
3392 .lanes = 2,
3393 .offsets = &qmp_pcie_offsets_v5_20,
3394
3395 .tbls = {
3396 .serdes = sa8775p_qmp_gen4x2_pcie_serdes_alt_tbl,
3397 .serdes_num = ARRAY_SIZE(sa8775p_qmp_gen4x2_pcie_serdes_alt_tbl),
3398 .tx = sa8775p_qmp_gen4_pcie_tx_tbl,
3399 .tx_num = ARRAY_SIZE(sa8775p_qmp_gen4_pcie_tx_tbl),
3400 .rx = qcs8300_qmp_gen4x2_pcie_rx_alt_tbl,
3401 .rx_num = ARRAY_SIZE(qcs8300_qmp_gen4x2_pcie_rx_alt_tbl),
3402 .pcs = sa8775p_qmp_gen4x2_pcie_pcs_alt_tbl,
3403 .pcs_num = ARRAY_SIZE(sa8775p_qmp_gen4x2_pcie_pcs_alt_tbl),
3404 .pcs_misc = sa8775p_qmp_gen4_pcie_pcs_misc_tbl,
3405 .pcs_misc_num = ARRAY_SIZE(sa8775p_qmp_gen4_pcie_pcs_misc_tbl),
3406 },
3407
3408 .tbls_rc = &(const struct qmp_phy_cfg_tbls) {
3409 .serdes = sa8775p_qmp_gen4x2_pcie_rc_serdes_alt_tbl,
3410 .serdes_num = ARRAY_SIZE(sa8775p_qmp_gen4x2_pcie_rc_serdes_alt_tbl),
3411 .pcs_misc = sa8775p_qmp_gen4_pcie_rc_pcs_misc_tbl,
3412 .pcs_misc_num = ARRAY_SIZE(sa8775p_qmp_gen4_pcie_rc_pcs_misc_tbl),
3413 },
3414
3415 .reset_list = sdm845_pciephy_reset_l,
3416 .num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l),
3417 .vreg_list = qmp_phy_vreg_l,
3418 .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
> 3419 .regs = pciephy_v5_20_regs_layout,
3420
3421 .pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
3422 .phy_status = PHYSTATUS_4_20,
3423 };
3424
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v3 7/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 soc
2024-12-20 5:52 ` [PATCH v3 7/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 soc Ziyue Zhang
@ 2025-01-03 13:14 ` Konrad Dybcio
0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2025-01-03 13:14 UTC (permalink / raw)
To: Ziyue Zhang, vkoul, kishon, robh, krzk+dt, conor+dt,
dmitry.baryshkov, neil.armstrong, abel.vesa,
manivannan.sadhasivam, lpieralisi, kw, bhelgaas, andersson,
konradybcio
Cc: linux-phy, devicetree, linux-kernel, linux-arm-msm, linux-pci,
quic_qianyu, quic_krichai, quic_vbadigan
On 20.12.2024 6:52 AM, Ziyue Zhang wrote:
> Add configurations in devicetree for PCIe1, including registers, clocks,
> interrupts and phy setting sequence.
>
> Signed-off-by: Ziyue Zhang <quic_ziyuzhan@quicinc.com>
> ---
Acked-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-01-03 13:14 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-20 5:52 [PATCH v3 0/8] pci: qcom: Add QCS8300 PCIe support Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 1/8] dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: Document the QCS8300 QMP PCIe PHY Gen4 x2 Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 2/8] phy: qcom-qmp-pcie: add dual lane PHY support for QCS8300 Ziyue Zhang
2024-12-21 6:13 ` kernel test robot
2024-12-21 22:04 ` kernel test robot
2024-12-20 5:52 ` [PATCH v3 3/8] dt-bindings: PCI: qcom,pcie-sa8775p: document qcs8300 Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 4/8] PCI: qcom: Add QCS8300 PCIe support Ziyue Zhang
2024-12-20 5:52 ` [PATCH v3 5/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 soc Ziyue Zhang
2024-12-20 10:16 ` Konrad Dybcio
2024-12-20 5:52 ` [PATCH v3 6/8] arm64: dts: qcom: qcs8300: enable pcie0 for qcs8300 platform Ziyue Zhang
2024-12-20 10:17 ` Konrad Dybcio
2024-12-20 5:52 ` [PATCH v3 7/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 soc Ziyue Zhang
2025-01-03 13:14 ` Konrad Dybcio
2024-12-20 5:52 ` [PATCH v3 8/8] arm64: dts: qcom: qcs8300: enable pcie1 for qcs8300 platform Ziyue Zhang
2024-12-20 10:17 ` Konrad Dybcio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).