* [PATCH v6 0/6] Enable IPQ5018 PCI support
@ 2025-03-21 12:14 George Moussalem via B4 Relay
2025-03-21 12:14 ` [PATCH v6 1/6] dt-bindings: phy: qcom: uniphy-pcie: Add ipq5018 compatible George Moussalem via B4 Relay
` (7 more replies)
0 siblings, 8 replies; 27+ messages in thread
From: George Moussalem via B4 Relay @ 2025-03-21 12:14 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
George Moussalem, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
This patch series adds the relevant phy and controller
DT configurations for enabling PCI gen2 support
on IPQ5018. IPQ5018 has two phys and two controllers,
one dual-lane and one single-lane.
Last patch series (v3) submitted dates back to August 30, 2024.
As I've worked to add IPQ5018 platform support in OpenWrt, I'm
continuing the efforts to add Linux kernel support.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
Changes in v6:
- Fixed issues reported by 'make dt_bindings_check' as per Rob's bot
- Removed Krzysztof's Ack-tag on
- Link to v5: https://lore.kernel.org/r/20250321-ipq5018-pcie-v5-0-aae2caa1f418@outlook.com
Changes in v5:
- Re-ordered reg and reg-names in dt-bindings and dts to align with
other IPQ SoCs
- Corrected nr of interrupts in dt-bindings: phy: qcom: Add IPQ5018 SoC
- Corrected ranges property of pcie controller nodes
- Removed newlines between cells properties in pcie phy nodes
- Modified dt bindings to add descriptions and separate conditions for
ipq5018 and ipq5332 as they have different nr of clocks and resets
As such, also removed Krzysztof's RB tag for validation
- Ran dtbs_check and fixed:
interrupt-map property in pcie nodes:
/soc@0/pcie@80000000:interrupt-map: Cell 13 is not a phandle(0)
/soc@0/pcie@a0000000:interrupt-map: Cell 13 is not a phandle(0)
- Added missing gpio header file to ipq5018-rdp432-c2.dts
- Added MHI register requirement to bindings and to PCIe nodes as per:
Depends-on: <20250317100029.881286-2-quic_varada@quicinc.com>
- Link to v4: https://lore.kernel.org/all/DS7PR19MB8883F2538AA7D047E13C102B9DD22@DS7PR19MB8883.namprd19.prod.outlook.com/
Changes in v4:
- removed dependency as the following have been applied:
dt-bindings: phy: qcom,uniphy-pcie: Document PCIe uniphy
phy: qcom: Introduce PCIe UNIPHY 28LP driver
dt-bindings: PCI: qcom: Document the IPQ5332 PCIe controller
Link: https://lore.kernel.org/all/20250313080600.1719505-1-quic_varada@quicinc.com/
- added Mani's RB tag to: PCI: qcom: Add support for IPQ5018
- Removed power-domains property requirement in dt-bindings for IPQ5018
and removed Krzysztof's RB tag from:
dt-bindings: PCI: qcom: Add IPQ5018 SoC
- fixed author chain and retained Sricharan Ramabadhran in SoB tags and
kept Nitheesh Sekar as the original author
- Removed comments as per Konrad's comment in:
arm64: dts: qcom: ipq5018: Add PCIe related nodes
- Link to v3 submitted by Sricharan Ramabadhran:
Link: https://lore.kernel.org/all/20240830081132.4016860-1-quic_srichara@quicinc.com/
- Link to v3, incorrectly versioned:
Link: https://lore.kernel.org/all/DS7PR19MB8883BC190797BECAA78EC50F9DCB2@DS7PR19MB8883.namprd19.prod.outlook.com/
Changes in v3 (incorrectly versioned):
- Depends on
Link: https://patchwork.kernel.org/project/linux-arm-msm/cover/20250220094251.230936-1-quic_varada@quicinc.com/
- Added 8 MSI SPI and 1 global interrupts (Thanks Mani for confirming)
- Added hw revision (internal/synopsys) and nr of lanes in patch 4
commit msg
- Sorted reg addresses and moved PCIe nodes accordingly
- Moved to GIC based interrupts
- Added rootport node in controller nodes
- Tested on Linksys devices (MX5500/SPNMX56)
- Link to v2: https://lore.kernel.org/all/20240827045757.1101194-1-quic_srichara com/
Changes in v3:
- Added Reviewed-by tag for patch#1.
- Fixed dev_err_probe usage in patch#3.
- Added pinctrl/wak pins for pcie1 in patch#6.
Changes in v2:
- Fixed all review comments from Krzysztof, Robert Marko,
Dmitry Baryshkov, Manivannan Sadhasivam, Konrad Dybcio.
- Updated the respective patches for their changes.
- Link to v1: https://lore.kernel.org/lkml/32389b66-48f3-8ee8-e2f1-1613feed3cc7@gmail.com/T/
---
Nitheesh Sekar (6):
dt-bindings: phy: qcom: uniphy-pcie: Add ipq5018 compatible
phy: qualcomm: qcom-uniphy-pcie 28LP add support for IPQ5018
dt-bindings: PCI: qcom: Add IPQ5018 SoC
PCI: qcom: Add support for IPQ5018
arm64: dts: qcom: ipq5018: Add PCIe related nodes
arm64: dts: qcom: ipq5018: Enable PCIe
.../devicetree/bindings/pci/qcom,pcie.yaml | 50 +++++
.../bindings/phy/qcom,ipq5332-uniphy-pcie-phy.yaml | 49 ++++-
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 40 ++++
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 ++++++++++++++++++++-
drivers/pci/controller/dwc/pcie-qcom.c | 1 +
drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c | 45 ++++
6 files changed, 409 insertions(+), 10 deletions(-)
---
base-commit: 5744a64fddfc33629f3bcc9a06a646f7443077a7
change-id: 20250321-ipq5018-pcie-1d44abf0e2f5
Best regards,
--
George Moussalem <george.moussalem@outlook.com>
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v6 1/6] dt-bindings: phy: qcom: uniphy-pcie: Add ipq5018 compatible
2025-03-21 12:14 [PATCH v6 0/6] Enable IPQ5018 PCI support George Moussalem via B4 Relay
@ 2025-03-21 12:14 ` George Moussalem via B4 Relay
2025-03-22 20:16 ` Rob Herring (Arm)
2025-03-21 12:14 ` [PATCH v6 2/6] phy: qualcomm: qcom-uniphy-pcie 28LP add support for IPQ5018 George Moussalem via B4 Relay
` (6 subsequent siblings)
7 siblings, 1 reply; 27+ messages in thread
From: George Moussalem via B4 Relay @ 2025-03-21 12:14 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
George Moussalem, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
From: Nitheesh Sekar <quic_nsekar@quicinc.com>
The IPQ5018 SoC contains a Gen2 1 and 2-lane PCIe UNIPHY which is the
same as the one found in IPQ5332. As such, add IPQ5018 compatible.
Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
.../bindings/phy/qcom,ipq5332-uniphy-pcie-phy.yaml | 49 ++++++++++++++++++----
1 file changed, 41 insertions(+), 8 deletions(-)
diff --git a/Documentation/devicetree/bindings/phy/qcom,ipq5332-uniphy-pcie-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,ipq5332-uniphy-pcie-phy.yaml
index e39168d55d23..6e9df81441e9 100644
--- a/Documentation/devicetree/bindings/phy/qcom,ipq5332-uniphy-pcie-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,ipq5332-uniphy-pcie-phy.yaml
@@ -11,26 +11,24 @@ maintainers:
- Varadarajan Narayanan <quic_varada@quicinc.com>
description:
- PCIe and USB combo PHY found in Qualcomm IPQ5332 SoC
+ PCIe and USB combo PHY found in Qualcomm IPQ5018 & IPQ5332 SoCs
properties:
compatible:
enum:
+ - qcom,ipq5018-uniphy-pcie-phy
- qcom,ipq5332-uniphy-pcie-phy
reg:
maxItems: 1
clocks:
- items:
- - description: pcie pipe clock
- - description: pcie ahb clock
+ minItems: 1
+ maxItems: 2
resets:
- items:
- - description: phy reset
- - description: ahb reset
- - description: cfg reset
+ minItems: 2
+ maxItems: 3
"#phy-cells":
const: 0
@@ -53,6 +51,41 @@ required:
additionalProperties: false
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,ipq5018-uniphy-pcie-phy
+ then:
+ properties:
+ clocks:
+ items:
+ - description: pcie pipe clock
+ resets:
+ items:
+ - description: phy reset
+ - description: cfg reset
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,ipq5332-uniphy-pcie-phy
+ then:
+ properties:
+ clocks:
+ items:
+ - description: pcie pipe clock
+ - description: pcie ahb clock
+ resets:
+ items:
+ - description: phy reset
+ - description: ahb reset
+ - description: cfg reset
+
examples:
- |
#include <dt-bindings/clock/qcom,ipq5332-gcc.h>
--
2.48.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v6 2/6] phy: qualcomm: qcom-uniphy-pcie 28LP add support for IPQ5018
2025-03-21 12:14 [PATCH v6 0/6] Enable IPQ5018 PCI support George Moussalem via B4 Relay
2025-03-21 12:14 ` [PATCH v6 1/6] dt-bindings: phy: qcom: uniphy-pcie: Add ipq5018 compatible George Moussalem via B4 Relay
@ 2025-03-21 12:14 ` George Moussalem via B4 Relay
2025-03-21 14:10 ` Dmitry Baryshkov
2025-03-21 12:14 ` [PATCH v6 3/6] dt-bindings: PCI: qcom: Add IPQ5018 SoC George Moussalem via B4 Relay
` (5 subsequent siblings)
7 siblings, 1 reply; 27+ messages in thread
From: George Moussalem via B4 Relay @ 2025-03-21 12:14 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
George Moussalem, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
From: Nitheesh Sekar <quic_nsekar@quicinc.com>
The Qualcomm UNIPHY PCIe PHY 28LP is found on both IPQ5332 and IPQ5018.
Adding the PHY init sequence, pipe clock rate, and compatible for IPQ5018.
Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c | 45 ++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c b/drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c
index c8b2a3818880..324c0a5d658e 100644
--- a/drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c
+++ b/drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c
@@ -75,6 +75,40 @@ struct qcom_uniphy_pcie {
#define phy_to_dw_phy(x) container_of((x), struct qca_uni_pcie_phy, phy)
+static const struct qcom_uniphy_pcie_regs ipq5018_regs[] = {
+ {
+ .offset = SSCG_CTRL_REG_4,
+ .val = 0x1cb9,
+ }, {
+ .offset = SSCG_CTRL_REG_5,
+ .val = 0x023a,
+ }, {
+ .offset = SSCG_CTRL_REG_3,
+ .val = 0xd360,
+ }, {
+ .offset = SSCG_CTRL_REG_1,
+ .val = 0x1,
+ }, {
+ .offset = SSCG_CTRL_REG_2,
+ .val = 0xeb,
+ }, {
+ .offset = CDR_CTRL_REG_4,
+ .val = 0x3f9,
+ }, {
+ .offset = CDR_CTRL_REG_5,
+ .val = 0x1c9,
+ }, {
+ .offset = CDR_CTRL_REG_2,
+ .val = 0x419,
+ }, {
+ .offset = CDR_CTRL_REG_1,
+ .val = 0x200,
+ }, {
+ .offset = PCS_INTERNAL_CONTROL_2,
+ .val = 0xf101,
+ },
+};
+
static const struct qcom_uniphy_pcie_regs ipq5332_regs[] = {
{
.offset = PHY_CFG_PLLCFG,
@@ -88,6 +122,14 @@ static const struct qcom_uniphy_pcie_regs ipq5332_regs[] = {
},
};
+static const struct qcom_uniphy_pcie_data ipq5018_data = {
+ .lane_offset = 0x800,
+ .phy_type = PHY_TYPE_PCIE_GEN2,
+ .init_seq = ipq5018_regs,
+ .init_seq_num = ARRAY_SIZE(ipq5018_regs),
+ .pipe_clk_rate = 125 * MEGA,
+};
+
static const struct qcom_uniphy_pcie_data ipq5332_data = {
.lane_offset = 0x800,
.phy_type = PHY_TYPE_PCIE_GEN3,
@@ -212,6 +254,9 @@ static inline int phy_pipe_clk_register(struct qcom_uniphy_pcie *phy, int id)
static const struct of_device_id qcom_uniphy_pcie_id_table[] = {
{
+ .compatible = "qcom,ipq5018-uniphy-pcie-phy",
+ .data = &ipq5018_data,
+ }, {
.compatible = "qcom,ipq5332-uniphy-pcie-phy",
.data = &ipq5332_data,
}, {
--
2.48.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v6 3/6] dt-bindings: PCI: qcom: Add IPQ5018 SoC
2025-03-21 12:14 [PATCH v6 0/6] Enable IPQ5018 PCI support George Moussalem via B4 Relay
2025-03-21 12:14 ` [PATCH v6 1/6] dt-bindings: phy: qcom: uniphy-pcie: Add ipq5018 compatible George Moussalem via B4 Relay
2025-03-21 12:14 ` [PATCH v6 2/6] phy: qualcomm: qcom-uniphy-pcie 28LP add support for IPQ5018 George Moussalem via B4 Relay
@ 2025-03-21 12:14 ` George Moussalem via B4 Relay
2025-03-24 7:50 ` Krzysztof Kozlowski
2025-03-24 7:52 ` Manivannan Sadhasivam
2025-03-21 12:14 ` [PATCH v6 4/6] PCI: qcom: Add support for IPQ5018 George Moussalem via B4 Relay
` (4 subsequent siblings)
7 siblings, 2 replies; 27+ messages in thread
From: George Moussalem via B4 Relay @ 2025-03-21 12:14 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
George Moussalem, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
From: Nitheesh Sekar <quic_nsekar@quicinc.com>
Add support for the PCIe controller on the Qualcomm
IPQ5108 SoC to the bindings.
Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
.../devicetree/bindings/pci/qcom,pcie.yaml | 50 ++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml
index 469b99fa0f0e..668ff03f2561 100644
--- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml
+++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml
@@ -21,6 +21,7 @@ properties:
- qcom,pcie-apq8064
- qcom,pcie-apq8084
- qcom,pcie-ipq4019
+ - qcom,pcie-ipq5018
- qcom,pcie-ipq6018
- qcom,pcie-ipq8064
- qcom,pcie-ipq8064-v2
@@ -168,6 +169,7 @@ allOf:
compatible:
contains:
enum:
+ - qcom,pcie-ipq5018
- qcom,pcie-ipq6018
- qcom,pcie-ipq8074-gen3
- qcom,pcie-ipq9574
@@ -324,6 +326,53 @@ allOf:
- const: ahb # AHB reset
- const: phy_ahb # PHY AHB reset
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,pcie-ipq5018
+ then:
+ properties:
+ clocks:
+ minItems: 6
+ maxItems: 6
+ clock-names:
+ items:
+ - const: iface # PCIe to SysNOC BIU clock
+ - const: axi_m # AXI Master clock
+ - const: axi_s # AXI Slave clock
+ - const: ahb # AHB clock
+ - const: aux # Auxiliary clock
+ - const: axi_bridge # AXI bridge clock
+ resets:
+ minItems: 8
+ maxItems: 8
+ reset-names:
+ items:
+ - const: pipe # PIPE reset
+ - const: sleep # Sleep reset
+ - const: sticky # Core sticky reset
+ - const: axi_m # AXI master reset
+ - const: axi_s # AXI slave reset
+ - const: ahb # AHB reset
+ - const: axi_m_sticky # AXI master sticky reset
+ - const: axi_s_sticky # AXI slave sticky reset
+ 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
+
- if:
properties:
compatible:
@@ -564,6 +613,7 @@ allOf:
enum:
- qcom,pcie-apq8064
- qcom,pcie-ipq4019
+ - qcom,pcie-ipq5018
- qcom,pcie-ipq8064
- qcom,pcie-ipq8064v2
- qcom,pcie-ipq8074
--
2.48.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v6 4/6] PCI: qcom: Add support for IPQ5018
2025-03-21 12:14 [PATCH v6 0/6] Enable IPQ5018 PCI support George Moussalem via B4 Relay
` (2 preceding siblings ...)
2025-03-21 12:14 ` [PATCH v6 3/6] dt-bindings: PCI: qcom: Add IPQ5018 SoC George Moussalem via B4 Relay
@ 2025-03-21 12:14 ` George Moussalem via B4 Relay
2025-03-21 12:14 ` [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes George Moussalem via B4 Relay
` (3 subsequent siblings)
7 siblings, 0 replies; 27+ messages in thread
From: George Moussalem via B4 Relay @ 2025-03-21 12:14 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
George Moussalem, 20250317100029.881286-2-quic_varada,
Sricharan R
From: Nitheesh Sekar <quic_nsekar@quicinc.com>
Add IPQ5018 platform with is based on Qcom IP rev. 2.9.0
and Synopsys IP rev. 5.00a.
The platform itself has two PCIe Gen2 controllers: one single-lane and
one dual-lane. So let's add the IPQ5018 compatible and re-use 2_9_0 ops.
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
Signed-off-by: Sricharan R <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.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 dc98ae63362d..e91bbe218569 100644
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -1840,6 +1840,7 @@ static const struct of_device_id qcom_pcie_match[] = {
{ .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 },
{ .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 },
{ .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },
+ { .compatible = "qcom,pcie-ipq5018", .data = &cfg_2_9_0 },
{ .compatible = "qcom,pcie-ipq6018", .data = &cfg_2_9_0 },
{ .compatible = "qcom,pcie-ipq8064", .data = &cfg_2_1_0 },
{ .compatible = "qcom,pcie-ipq8064-v2", .data = &cfg_2_1_0 },
--
2.48.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes
2025-03-21 12:14 [PATCH v6 0/6] Enable IPQ5018 PCI support George Moussalem via B4 Relay
` (3 preceding siblings ...)
2025-03-21 12:14 ` [PATCH v6 4/6] PCI: qcom: Add support for IPQ5018 George Moussalem via B4 Relay
@ 2025-03-21 12:14 ` George Moussalem via B4 Relay
2025-03-21 14:10 ` Dmitry Baryshkov
2025-03-24 7:56 ` Manivannan Sadhasivam
2025-03-21 12:14 ` [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe George Moussalem via B4 Relay
` (2 subsequent siblings)
7 siblings, 2 replies; 27+ messages in thread
From: George Moussalem via B4 Relay @ 2025-03-21 12:14 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
George Moussalem, 20250317100029.881286-2-quic_varada,
Sricharan R
From: Nitheesh Sekar <quic_nsekar@quicinc.com>
Add phy and controller nodes for a 2-lane Gen2 and
a 1-lane Gen2 PCIe bus. IPQ5018 has 8 MSI SPI interrupts and
one global interrupt.
Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
Signed-off-by: Sricharan R <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 +++++++++++++++++++++++++++++++++-
1 file changed, 232 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
index 8914f2ef0bc4..d08034b57e80 100644
--- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
@@ -147,6 +147,40 @@ usbphy0: phy@5b000 {
status = "disabled";
};
+ pcie1_phy: phy@7e000{
+ compatible = "qcom,ipq5018-uniphy-pcie-phy";
+ reg = <0x0007e000 0x800>;
+
+ clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
+
+ resets = <&gcc GCC_PCIE1_PHY_BCR>,
+ <&gcc GCC_PCIE1PHY_PHY_BCR>;
+
+ #clock-cells = <0>;
+ #phy-cells = <0>;
+
+ num-lanes = <1>;
+
+ status = "disabled";
+ };
+
+ pcie0_phy: phy@86000{
+ compatible = "qcom,ipq5018-uniphy-pcie-phy";
+ reg = <0x00086000 0x800>;
+
+ clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
+
+ resets = <&gcc GCC_PCIE0_PHY_BCR>,
+ <&gcc GCC_PCIE0PHY_PHY_BCR>;
+
+ #clock-cells = <0>;
+ #phy-cells = <0>;
+
+ num-lanes = <2>;
+
+ status = "disabled";
+ };
+
tlmm: pinctrl@1000000 {
compatible = "qcom,ipq5018-tlmm";
reg = <0x01000000 0x300000>;
@@ -170,8 +204,8 @@ gcc: clock-controller@1800000 {
reg = <0x01800000 0x80000>;
clocks = <&xo_board_clk>,
<&sleep_clk>,
- <0>,
- <0>,
+ <&pcie0_phy>,
+ <&pcie1_phy>,
<0>,
<0>,
<0>,
@@ -387,6 +421,202 @@ frame@b128000 {
status = "disabled";
};
};
+
+ pcie1: pcie@80000000 {
+ compatible = "qcom,pcie-ipq5018";
+ reg = <0x80000000 0xf1d>,
+ <0x80000f20 0xa8>,
+ <0x80001000 0x1000>,
+ <0x00078000 0x3000>,
+ <0x80100000 0x1000>,
+ <0x0007b000 0x1000>;
+ reg-names = "dbi",
+ "elbi",
+ "atu",
+ "parf",
+ "config",
+ "mhi";
+ device_type = "pci";
+ linux,pci-domain = <0>;
+ bus-range = <0x00 0xff>;
+ num-lanes = <1>;
+ max-link-speed = <2>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ phys = <&pcie1_phy>;
+ phy-names ="pciephy";
+
+ ranges = <0x01000000 0 0x00000000 0x80200000 0 0x00100000>,
+ <0x02000000 0 0x80300000 0x80300000 0 0x10000000>;
+
+ msi-map = <0x0 &v2m0 0x0 0xff8>;
+
+ interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 119 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 142 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &intc 0 0 143 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &intc 0 0 144 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &intc 0 0 145 IRQ_TYPE_LEVEL_HIGH>;
+
+ clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>,
+ <&gcc GCC_PCIE1_AXI_M_CLK>,
+ <&gcc GCC_PCIE1_AXI_S_CLK>,
+ <&gcc GCC_PCIE1_AHB_CLK>,
+ <&gcc GCC_PCIE1_AUX_CLK>,
+ <&gcc GCC_PCIE1_AXI_S_BRIDGE_CLK>;
+ clock-names = "iface",
+ "axi_m",
+ "axi_s",
+ "ahb",
+ "aux",
+ "axi_bridge";
+
+ resets = <&gcc GCC_PCIE1_PIPE_ARES>,
+ <&gcc GCC_PCIE1_SLEEP_ARES>,
+ <&gcc GCC_PCIE1_CORE_STICKY_ARES>,
+ <&gcc GCC_PCIE1_AXI_MASTER_ARES>,
+ <&gcc GCC_PCIE1_AXI_SLAVE_ARES>,
+ <&gcc GCC_PCIE1_AHB_ARES>,
+ <&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>,
+ <&gcc GCC_PCIE1_AXI_SLAVE_STICKY_ARES>;
+ reset-names = "pipe",
+ "sleep",
+ "sticky",
+ "axi_m",
+ "axi_s",
+ "ahb",
+ "axi_m_sticky",
+ "axi_s_sticky";
+
+ status = "disabled";
+
+ pcie@0 {
+ device_type = "pci";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ };
+ };
+
+ pcie0: pcie@a0000000 {
+ compatible = "qcom,pcie-ipq5018";
+ reg = <0xa0000000 0xf1d>,
+ <0xa0000f20 0xa8>,
+ <0xa0001000 0x1000>,
+ <0x00080000 0x3000>,
+ <0xa0100000 0x1000>,
+ <0x00083000 0x1000>;
+ reg-names = "dbi",
+ "elbi",
+ "atu",
+ "parf",
+ "config",
+ "mhi";
+ device_type = "pci";
+ linux,pci-domain = <1>;
+ bus-range = <0x00 0xff>;
+ num-lanes = <2>;
+ max-link-speed = <2>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ phys = <&pcie0_phy>;
+ phy-names ="pciephy";
+
+ ranges = <0x01000000 0 0x00000000 0xa0200000 0 0x00100000>,
+ <0x02000000 0 0xa0300000 0xa0300000 0 0x10000000>;
+
+ msi-map = <0x0 &v2m0 0x0 0xff8>;
+
+ interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 51 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 75 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &intc 0 0 78 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &intc 0 0 79 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &intc 0 0 83 IRQ_TYPE_LEVEL_HIGH>;
+
+ clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
+ <&gcc GCC_PCIE0_AXI_M_CLK>,
+ <&gcc GCC_PCIE0_AXI_S_CLK>,
+ <&gcc GCC_PCIE0_AHB_CLK>,
+ <&gcc GCC_PCIE0_AUX_CLK>,
+ <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>;
+ clock-names = "iface",
+ "axi_m",
+ "axi_s",
+ "ahb",
+ "aux",
+ "axi_bridge";
+
+ resets = <&gcc GCC_PCIE0_PIPE_ARES>,
+ <&gcc GCC_PCIE0_SLEEP_ARES>,
+ <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
+ <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
+ <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
+ <&gcc GCC_PCIE0_AHB_ARES>,
+ <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
+ <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
+ reset-names = "pipe",
+ "sleep",
+ "sticky",
+ "axi_m",
+ "axi_s",
+ "ahb",
+ "axi_m_sticky",
+ "axi_s_sticky";
+
+ status = "disabled";
+
+ pcie@0 {
+ device_type = "pci";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ };
+ };
};
timer {
--
2.48.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe
2025-03-21 12:14 [PATCH v6 0/6] Enable IPQ5018 PCI support George Moussalem via B4 Relay
` (4 preceding siblings ...)
2025-03-21 12:14 ` [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes George Moussalem via B4 Relay
@ 2025-03-21 12:14 ` George Moussalem via B4 Relay
2025-03-21 14:13 ` Dmitry Baryshkov
` (2 more replies)
2025-03-21 15:05 ` [PATCH v6 0/6] Enable IPQ5018 PCI support Rob Herring (Arm)
2025-03-24 7:47 ` Krzysztof Kozlowski
7 siblings, 3 replies; 27+ messages in thread
From: George Moussalem via B4 Relay @ 2025-03-21 12:14 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
George Moussalem, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
From: Nitheesh Sekar <quic_nsekar@quicinc.com>
Enable the PCIe controller and PHY nodes for RDP 432-c2.
Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
---
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 40 ++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
index 8460b538eb6a..43def95e9275 100644
--- a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
+++ b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
@@ -9,6 +9,8 @@
#include "ipq5018.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+
/ {
model = "Qualcomm Technologies, Inc. IPQ5018/AP-RDP432.1-C2";
compatible = "qcom,ipq5018-rdp432-c2", "qcom,ipq5018";
@@ -28,6 +30,20 @@ &blsp1_uart1 {
status = "okay";
};
+&pcie0 {
+ pinctrl-0 = <&pcie0_default>;
+ pinctrl-names = "default";
+
+ perst-gpios = <&tlmm 15 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 16 GPIO_ACTIVE_LOW>;
+
+ status = "okay";
+};
+
+&pcie0_phy {
+ status = "okay";
+};
+
&sdhc_1 {
pinctrl-0 = <&sdc_default_state>;
pinctrl-names = "default";
@@ -43,6 +59,30 @@ &sleep_clk {
};
&tlmm {
+ pcie0_default: pcie0-default-state {
+ clkreq-n-pins {
+ pins = "gpio14";
+ function = "pcie0_clk";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio15";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ output-low;
+ };
+
+ wake-n-pins {
+ pins = "gpio16";
+ function = "pcie0_wake";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+ };
+
sdc_default_state: sdc-default-state {
clk-pins {
pins = "gpio9";
--
2.48.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [PATCH v6 2/6] phy: qualcomm: qcom-uniphy-pcie 28LP add support for IPQ5018
2025-03-21 12:14 ` [PATCH v6 2/6] phy: qualcomm: qcom-uniphy-pcie 28LP add support for IPQ5018 George Moussalem via B4 Relay
@ 2025-03-21 14:10 ` Dmitry Baryshkov
0 siblings, 0 replies; 27+ messages in thread
From: Dmitry Baryshkov @ 2025-03-21 14:10 UTC (permalink / raw)
To: george.moussalem
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-phy, devicetree, linux-kernel,
linux-pci, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
On Fri, Mar 21, 2025 at 04:14:40PM +0400, George Moussalem via B4 Relay wrote:
> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>
> The Qualcomm UNIPHY PCIe PHY 28LP is found on both IPQ5332 and IPQ5018.
> Adding the PHY init sequence, pipe clock rate, and compatible for IPQ5018.
>
> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
> drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c | 45 ++++++++++++++++++++++++
> 1 file changed, 45 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes
2025-03-21 12:14 ` [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes George Moussalem via B4 Relay
@ 2025-03-21 14:10 ` Dmitry Baryshkov
2025-03-24 7:56 ` Manivannan Sadhasivam
1 sibling, 0 replies; 27+ messages in thread
From: Dmitry Baryshkov @ 2025-03-21 14:10 UTC (permalink / raw)
To: george.moussalem
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-phy, devicetree, linux-kernel,
linux-pci, 20250317100029.881286-2-quic_varada, Sricharan R
On Fri, Mar 21, 2025 at 04:14:43PM +0400, George Moussalem via B4 Relay wrote:
> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>
> Add phy and controller nodes for a 2-lane Gen2 and
> a 1-lane Gen2 PCIe bus. IPQ5018 has 8 MSI SPI interrupts and
> one global interrupt.
>
> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
> Signed-off-by: Sricharan R <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
> arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 +++++++++++++++++++++++++++++++++-
> 1 file changed, 232 insertions(+), 2 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe
2025-03-21 12:14 ` [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe George Moussalem via B4 Relay
@ 2025-03-21 14:13 ` Dmitry Baryshkov
2025-03-24 8:06 ` George Moussalem
2025-03-24 7:58 ` Manivannan Sadhasivam
2025-03-24 19:39 ` Konrad Dybcio
2 siblings, 1 reply; 27+ messages in thread
From: Dmitry Baryshkov @ 2025-03-21 14:13 UTC (permalink / raw)
To: george.moussalem
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-phy, devicetree, linux-kernel,
linux-pci, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
On Fri, Mar 21, 2025 at 04:14:44PM +0400, George Moussalem via B4 Relay wrote:
> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>
> Enable the PCIe controller and PHY nodes for RDP 432-c2.
>
> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
> arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 40 ++++++++++++++++++++++++++
> 1 file changed, 40 insertions(+)
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Minor question below.
> +
> +&pcie0_phy {
> + status = "okay";
If you have schematics, are you sure that there are no supplies for the
PCIe PHY / PCIe PLLs on this board?
> +};
> +
> &sdhc_1 {
> pinctrl-0 = <&sdc_default_state>;
> pinctrl-names = "default";
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 0/6] Enable IPQ5018 PCI support
2025-03-21 12:14 [PATCH v6 0/6] Enable IPQ5018 PCI support George Moussalem via B4 Relay
` (5 preceding siblings ...)
2025-03-21 12:14 ` [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe George Moussalem via B4 Relay
@ 2025-03-21 15:05 ` Rob Herring (Arm)
2025-03-24 7:47 ` Krzysztof Kozlowski
7 siblings, 0 replies; 27+ messages in thread
From: Rob Herring (Arm) @ 2025-03-21 15:05 UTC (permalink / raw)
To: George Moussalem
Cc: Sricharan Ramabadhran, linux-kernel, linux-arm-msm, linux-pci,
devicetree, Lorenzo Pieralisi, Kishon Vijay Abraham I, Vinod Koul,
Nitheesh Sekar, linux-phy, Bjorn Andersson,
20250317100029.881286-2-quic_varada, Conor Dooley,
Varadarajan Narayanan, Bjorn Helgaas, Krzysztof Wilczyński,
Manivannan Sadhasivam, Konrad Dybcio, Krzysztof Kozlowski
On Fri, 21 Mar 2025 16:14:38 +0400, George Moussalem wrote:
> This patch series adds the relevant phy and controller
> DT configurations for enabling PCI gen2 support
> on IPQ5018. IPQ5018 has two phys and two controllers,
> one dual-lane and one single-lane.
>
> Last patch series (v3) submitted dates back to August 30, 2024.
> As I've worked to add IPQ5018 platform support in OpenWrt, I'm
> continuing the efforts to add Linux kernel support.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
> Changes in v6:
> - Fixed issues reported by 'make dt_bindings_check' as per Rob's bot
> - Removed Krzysztof's Ack-tag on
> - Link to v5: https://lore.kernel.org/r/20250321-ipq5018-pcie-v5-0-aae2caa1f418@outlook.com
>
> Changes in v5:
> - Re-ordered reg and reg-names in dt-bindings and dts to align with
> other IPQ SoCs
> - Corrected nr of interrupts in dt-bindings: phy: qcom: Add IPQ5018 SoC
> - Corrected ranges property of pcie controller nodes
> - Removed newlines between cells properties in pcie phy nodes
> - Modified dt bindings to add descriptions and separate conditions for
> ipq5018 and ipq5332 as they have different nr of clocks and resets
> As such, also removed Krzysztof's RB tag for validation
> - Ran dtbs_check and fixed:
> interrupt-map property in pcie nodes:
> /soc@0/pcie@80000000:interrupt-map: Cell 13 is not a phandle(0)
> /soc@0/pcie@a0000000:interrupt-map: Cell 13 is not a phandle(0)
> - Added missing gpio header file to ipq5018-rdp432-c2.dts
> - Added MHI register requirement to bindings and to PCIe nodes as per:
> Depends-on: <20250317100029.881286-2-quic_varada@quicinc.com>
> - Link to v4: https://lore.kernel.org/all/DS7PR19MB8883F2538AA7D047E13C102B9DD22@DS7PR19MB8883.namprd19.prod.outlook.com/
>
> Changes in v4:
> - removed dependency as the following have been applied:
> dt-bindings: phy: qcom,uniphy-pcie: Document PCIe uniphy
> phy: qcom: Introduce PCIe UNIPHY 28LP driver
> dt-bindings: PCI: qcom: Document the IPQ5332 PCIe controller
> Link: https://lore.kernel.org/all/20250313080600.1719505-1-quic_varada@quicinc.com/
> - added Mani's RB tag to: PCI: qcom: Add support for IPQ5018
> - Removed power-domains property requirement in dt-bindings for IPQ5018
> and removed Krzysztof's RB tag from:
> dt-bindings: PCI: qcom: Add IPQ5018 SoC
> - fixed author chain and retained Sricharan Ramabadhran in SoB tags and
> kept Nitheesh Sekar as the original author
> - Removed comments as per Konrad's comment in:
> arm64: dts: qcom: ipq5018: Add PCIe related nodes
> - Link to v3 submitted by Sricharan Ramabadhran:
> Link: https://lore.kernel.org/all/20240830081132.4016860-1-quic_srichara@quicinc.com/
> - Link to v3, incorrectly versioned:
> Link: https://lore.kernel.org/all/DS7PR19MB8883BC190797BECAA78EC50F9DCB2@DS7PR19MB8883.namprd19.prod.outlook.com/
>
> Changes in v3 (incorrectly versioned):
> - Depends on
> Link: https://patchwork.kernel.org/project/linux-arm-msm/cover/20250220094251.230936-1-quic_varada@quicinc.com/
> - Added 8 MSI SPI and 1 global interrupts (Thanks Mani for confirming)
> - Added hw revision (internal/synopsys) and nr of lanes in patch 4
> commit msg
> - Sorted reg addresses and moved PCIe nodes accordingly
> - Moved to GIC based interrupts
> - Added rootport node in controller nodes
> - Tested on Linksys devices (MX5500/SPNMX56)
> - Link to v2: https://lore.kernel.org/all/20240827045757.1101194-1-quic_srichara com/
>
> Changes in v3:
> - Added Reviewed-by tag for patch#1.
> - Fixed dev_err_probe usage in patch#3.
> - Added pinctrl/wak pins for pcie1 in patch#6.
>
> Changes in v2:
> - Fixed all review comments from Krzysztof, Robert Marko,
> Dmitry Baryshkov, Manivannan Sadhasivam, Konrad Dybcio.
> - Updated the respective patches for their changes.
> - Link to v1: https://lore.kernel.org/lkml/32389b66-48f3-8ee8-e2f1-1613feed3cc7@gmail.com/T/
>
> ---
> Nitheesh Sekar (6):
> dt-bindings: phy: qcom: uniphy-pcie: Add ipq5018 compatible
> phy: qualcomm: qcom-uniphy-pcie 28LP add support for IPQ5018
> dt-bindings: PCI: qcom: Add IPQ5018 SoC
> PCI: qcom: Add support for IPQ5018
> arm64: dts: qcom: ipq5018: Add PCIe related nodes
> arm64: dts: qcom: ipq5018: Enable PCIe
>
> .../devicetree/bindings/pci/qcom,pcie.yaml | 50 +++++
> .../bindings/phy/qcom,ipq5332-uniphy-pcie-phy.yaml | 49 ++++-
> arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 40 ++++
> arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 ++++++++++++++++++++-
> drivers/pci/controller/dwc/pcie-qcom.c | 1 +
> drivers/phy/qualcomm/phy-qcom-uniphy-pcie-28lp.c | 45 ++++
> 6 files changed, 409 insertions(+), 10 deletions(-)
> ---
> base-commit: 5744a64fddfc33629f3bcc9a06a646f7443077a7
> change-id: 20250321-ipq5018-pcie-1d44abf0e2f5
>
> Best regards,
> --
> George Moussalem <george.moussalem@outlook.com>
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/qcom/' for 20250321-ipq5018-pcie-v6-0-b7d659a76205@outlook.com:
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb: pcie@80000000: reg: [[2147483648, 3869], [2147487520, 168], [2147487744, 4096], [491520, 12288], [2148532224, 4096], [503808, 4096]] is too long
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie.yaml#
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb: pcie@80000000: reg-names: ['dbi', 'elbi', 'atu', 'parf', 'config', 'mhi'] is too long
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie.yaml#
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb: pcie@a0000000: reg: [[2684354560, 3869], [2684358432, 168], [2684358656, 4096], [524288, 12288], [2685403136, 4096], [536576, 4096]] is too long
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie.yaml#
arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dtb: pcie@a0000000: reg-names: ['dbi', 'elbi', 'atu', 'parf', 'config', 'mhi'] is too long
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie.yaml#
arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: pcie@80000000: reg: [[2147483648, 3869], [2147487520, 168], [2147487744, 4096], [491520, 12288], [2148532224, 4096], [503808, 4096]] is too long
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie.yaml#
arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: pcie@80000000: reg-names: ['dbi', 'elbi', 'atu', 'parf', 'config', 'mhi'] is too long
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie.yaml#
arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: pcie@a0000000: reg: [[2684354560, 3869], [2684358432, 168], [2684358656, 4096], [524288, 12288], [2685403136, 4096], [536576, 4096]] is too long
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie.yaml#
arch/arm64/boot/dts/qcom/ipq5018-tplink-archer-ax55-v1.dtb: pcie@a0000000: reg-names: ['dbi', 'elbi', 'atu', 'parf', 'config', 'mhi'] is too long
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie.yaml#
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 1/6] dt-bindings: phy: qcom: uniphy-pcie: Add ipq5018 compatible
2025-03-21 12:14 ` [PATCH v6 1/6] dt-bindings: phy: qcom: uniphy-pcie: Add ipq5018 compatible George Moussalem via B4 Relay
@ 2025-03-22 20:16 ` Rob Herring (Arm)
0 siblings, 0 replies; 27+ messages in thread
From: Rob Herring (Arm) @ 2025-03-22 20:16 UTC (permalink / raw)
To: George Moussalem
Cc: Manivannan Sadhasivam, Lorenzo Pieralisi, Sricharan Ramabadhran,
Krzysztof Kozlowski, linux-arm-msm, devicetree, linux-phy,
linux-pci, Bjorn Andersson, Krzysztof Wilczyński,
Nitheesh Sekar, Varadarajan Narayanan, Conor Dooley,
Konrad Dybcio, Vinod Koul, Bjorn Helgaas,
20250317100029.881286-2-quic_varada, linux-kernel,
Kishon Vijay Abraham I
On Fri, 21 Mar 2025 16:14:39 +0400, George Moussalem wrote:
> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>
> The IPQ5018 SoC contains a Gen2 1 and 2-lane PCIe UNIPHY which is the
> same as the one found in IPQ5332. As such, add IPQ5018 compatible.
>
> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
> .../bindings/phy/qcom,ipq5332-uniphy-pcie-phy.yaml | 49 ++++++++++++++++++----
> 1 file changed, 41 insertions(+), 8 deletions(-)
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 0/6] Enable IPQ5018 PCI support
2025-03-21 12:14 [PATCH v6 0/6] Enable IPQ5018 PCI support George Moussalem via B4 Relay
` (6 preceding siblings ...)
2025-03-21 15:05 ` [PATCH v6 0/6] Enable IPQ5018 PCI support Rob Herring (Arm)
@ 2025-03-24 7:47 ` Krzysztof Kozlowski
2025-03-25 7:55 ` George Moussalem
7 siblings, 1 reply; 27+ messages in thread
From: Krzysztof Kozlowski @ 2025-03-24 7:47 UTC (permalink / raw)
To: George Moussalem
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-phy, devicetree, linux-kernel,
linux-pci, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
On Fri, Mar 21, 2025 at 04:14:38PM +0400, George Moussalem wrote:
> This patch series adds the relevant phy and controller
> DT configurations for enabling PCI gen2 support
> on IPQ5018. IPQ5018 has two phys and two controllers,
> one dual-lane and one single-lane.
>
> Last patch series (v3) submitted dates back to August 30, 2024.
> As I've worked to add IPQ5018 platform support in OpenWrt, I'm
> continuing the efforts to add Linux kernel support.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
> Changes in v6:
> - Fixed issues reported by 'make dt_bindings_check' as per Rob's bot
> - Removed Krzysztof's Ack-tag on
Why?
Again, I cannot compare this serie:
b4 diff '20250321-ipq5018-pcie-v6-0-b7d659a76205@outlook.com'
Grabbing thread from lore.kernel.org/all/20250321-ipq5018-pcie-v6-0-b7d659a76205@outlook.com/t.mbox.gz
Checking for older revisions
Grabbing search results from lore.kernel.org
Nothing matching that query.
---
Analyzing 12 messages in the thread
Could not find lower series to compare against.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 3/6] dt-bindings: PCI: qcom: Add IPQ5018 SoC
2025-03-21 12:14 ` [PATCH v6 3/6] dt-bindings: PCI: qcom: Add IPQ5018 SoC George Moussalem via B4 Relay
@ 2025-03-24 7:50 ` Krzysztof Kozlowski
2025-03-24 7:52 ` Manivannan Sadhasivam
1 sibling, 0 replies; 27+ messages in thread
From: Krzysztof Kozlowski @ 2025-03-24 7:50 UTC (permalink / raw)
To: George Moussalem
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-phy, devicetree, linux-kernel,
linux-pci, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
On Fri, Mar 21, 2025 at 04:14:41PM +0400, George Moussalem wrote:
> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>
> Add support for the PCIe controller on the Qualcomm
> IPQ5108 SoC to the bindings.
>
> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
> .../devicetree/bindings/pci/qcom,pcie.yaml | 50 ++++++++++++++++++++++
> 1 file changed, 50 insertions(+)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 3/6] dt-bindings: PCI: qcom: Add IPQ5018 SoC
2025-03-21 12:14 ` [PATCH v6 3/6] dt-bindings: PCI: qcom: Add IPQ5018 SoC George Moussalem via B4 Relay
2025-03-24 7:50 ` Krzysztof Kozlowski
@ 2025-03-24 7:52 ` Manivannan Sadhasivam
1 sibling, 0 replies; 27+ messages in thread
From: Manivannan Sadhasivam @ 2025-03-24 7:52 UTC (permalink / raw)
To: george.moussalem
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
20250317100029.881286-2-quic_varada, Sricharan Ramabadhran
On Fri, Mar 21, 2025 at 04:14:41PM +0400, George Moussalem via B4 Relay wrote:
> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>
> Add support for the PCIe controller on the Qualcomm
> IPQ5108 SoC to the bindings.
>
> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
- Mani
> ---
> .../devicetree/bindings/pci/qcom,pcie.yaml | 50 ++++++++++++++++++++++
> 1 file changed, 50 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml
> index 469b99fa0f0e..668ff03f2561 100644
> --- a/Documentation/devicetree/bindings/pci/qcom,pcie.yaml
> +++ b/Documentation/devicetree/bindings/pci/qcom,pcie.yaml
> @@ -21,6 +21,7 @@ properties:
> - qcom,pcie-apq8064
> - qcom,pcie-apq8084
> - qcom,pcie-ipq4019
> + - qcom,pcie-ipq5018
> - qcom,pcie-ipq6018
> - qcom,pcie-ipq8064
> - qcom,pcie-ipq8064-v2
> @@ -168,6 +169,7 @@ allOf:
> compatible:
> contains:
> enum:
> + - qcom,pcie-ipq5018
> - qcom,pcie-ipq6018
> - qcom,pcie-ipq8074-gen3
> - qcom,pcie-ipq9574
> @@ -324,6 +326,53 @@ allOf:
> - const: ahb # AHB reset
> - const: phy_ahb # PHY AHB reset
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,pcie-ipq5018
> + then:
> + properties:
> + clocks:
> + minItems: 6
> + maxItems: 6
> + clock-names:
> + items:
> + - const: iface # PCIe to SysNOC BIU clock
> + - const: axi_m # AXI Master clock
> + - const: axi_s # AXI Slave clock
> + - const: ahb # AHB clock
> + - const: aux # Auxiliary clock
> + - const: axi_bridge # AXI bridge clock
> + resets:
> + minItems: 8
> + maxItems: 8
> + reset-names:
> + items:
> + - const: pipe # PIPE reset
> + - const: sleep # Sleep reset
> + - const: sticky # Core sticky reset
> + - const: axi_m # AXI master reset
> + - const: axi_s # AXI slave reset
> + - const: ahb # AHB reset
> + - const: axi_m_sticky # AXI master sticky reset
> + - const: axi_s_sticky # AXI slave sticky reset
> + 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
> +
> - if:
> properties:
> compatible:
> @@ -564,6 +613,7 @@ allOf:
> enum:
> - qcom,pcie-apq8064
> - qcom,pcie-ipq4019
> + - qcom,pcie-ipq5018
> - qcom,pcie-ipq8064
> - qcom,pcie-ipq8064v2
> - qcom,pcie-ipq8074
>
> --
> 2.48.1
>
>
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes
2025-03-21 12:14 ` [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes George Moussalem via B4 Relay
2025-03-21 14:10 ` Dmitry Baryshkov
@ 2025-03-24 7:56 ` Manivannan Sadhasivam
2025-03-24 11:18 ` Praveenkumar I
1 sibling, 1 reply; 27+ messages in thread
From: Manivannan Sadhasivam @ 2025-03-24 7:56 UTC (permalink / raw)
To: george.moussalem
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
20250317100029.881286-2-quic_varada, Sricharan R
On Fri, Mar 21, 2025 at 04:14:43PM +0400, George Moussalem via B4 Relay wrote:
> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>
> Add phy and controller nodes for a 2-lane Gen2 and
Controller is Gen 3 capable but you are limiting it to Gen 2.
> a 1-lane Gen2 PCIe bus. IPQ5018 has 8 MSI SPI interrupts and
> one global interrupt.
>
> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
> Signed-off-by: Sricharan R <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
One comment below. With that addressed,
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> ---
> arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 +++++++++++++++++++++++++++++++++-
> 1 file changed, 232 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> index 8914f2ef0bc4..d08034b57e80 100644
> --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> @@ -147,6 +147,40 @@ usbphy0: phy@5b000 {
> status = "disabled";
> };
>
> + pcie1_phy: phy@7e000{
> + compatible = "qcom,ipq5018-uniphy-pcie-phy";
> + reg = <0x0007e000 0x800>;
> +
> + clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
> +
> + resets = <&gcc GCC_PCIE1_PHY_BCR>,
> + <&gcc GCC_PCIE1PHY_PHY_BCR>;
> +
> + #clock-cells = <0>;
> + #phy-cells = <0>;
> +
> + num-lanes = <1>;
> +
> + status = "disabled";
> + };
> +
> + pcie0_phy: phy@86000{
> + compatible = "qcom,ipq5018-uniphy-pcie-phy";
> + reg = <0x00086000 0x800>;
> +
> + clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
> +
> + resets = <&gcc GCC_PCIE0_PHY_BCR>,
> + <&gcc GCC_PCIE0PHY_PHY_BCR>;
> +
> + #clock-cells = <0>;
> + #phy-cells = <0>;
> +
> + num-lanes = <2>;
> +
> + status = "disabled";
> + };
> +
> tlmm: pinctrl@1000000 {
> compatible = "qcom,ipq5018-tlmm";
> reg = <0x01000000 0x300000>;
> @@ -170,8 +204,8 @@ gcc: clock-controller@1800000 {
> reg = <0x01800000 0x80000>;
> clocks = <&xo_board_clk>,
> <&sleep_clk>,
> - <0>,
> - <0>,
> + <&pcie0_phy>,
> + <&pcie1_phy>,
> <0>,
> <0>,
> <0>,
> @@ -387,6 +421,202 @@ frame@b128000 {
> status = "disabled";
> };
> };
> +
> + pcie1: pcie@80000000 {
> + compatible = "qcom,pcie-ipq5018";
> + reg = <0x80000000 0xf1d>,
> + <0x80000f20 0xa8>,
> + <0x80001000 0x1000>,
> + <0x00078000 0x3000>,
> + <0x80100000 0x1000>,
> + <0x0007b000 0x1000>;
> + reg-names = "dbi",
> + "elbi",
> + "atu",
> + "parf",
> + "config",
> + "mhi";
> + device_type = "pci";
> + linux,pci-domain = <0>;
> + bus-range = <0x00 0xff>;
> + num-lanes = <1>;
> + max-link-speed = <2>;
This still needs some justification. If Qcom folks didn't reply, atleast move
this to board dts with a comment saying that the link is not coming up with
Gen3.
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe
2025-03-21 12:14 ` [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe George Moussalem via B4 Relay
2025-03-21 14:13 ` Dmitry Baryshkov
@ 2025-03-24 7:58 ` Manivannan Sadhasivam
2025-03-24 19:39 ` Konrad Dybcio
2 siblings, 0 replies; 27+ messages in thread
From: Manivannan Sadhasivam @ 2025-03-24 7:58 UTC (permalink / raw)
To: george.moussalem
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
20250317100029.881286-2-quic_varada, Sricharan Ramabadhran
On Fri, Mar 21, 2025 at 04:14:44PM +0400, George Moussalem via B4 Relay wrote:
> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>
> Enable the PCIe controller and PHY nodes for RDP 432-c2.
>
> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Acked-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
- Mani
> ---
> arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 40 ++++++++++++++++++++++++++
> 1 file changed, 40 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
> index 8460b538eb6a..43def95e9275 100644
> --- a/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
> +++ b/arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts
> @@ -9,6 +9,8 @@
>
> #include "ipq5018.dtsi"
>
> +#include <dt-bindings/gpio/gpio.h>
> +
> / {
> model = "Qualcomm Technologies, Inc. IPQ5018/AP-RDP432.1-C2";
> compatible = "qcom,ipq5018-rdp432-c2", "qcom,ipq5018";
> @@ -28,6 +30,20 @@ &blsp1_uart1 {
> status = "okay";
> };
>
> +&pcie0 {
> + pinctrl-0 = <&pcie0_default>;
> + pinctrl-names = "default";
> +
> + perst-gpios = <&tlmm 15 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 16 GPIO_ACTIVE_LOW>;
> +
> + status = "okay";
> +};
> +
> +&pcie0_phy {
> + status = "okay";
> +};
> +
> &sdhc_1 {
> pinctrl-0 = <&sdc_default_state>;
> pinctrl-names = "default";
> @@ -43,6 +59,30 @@ &sleep_clk {
> };
>
> &tlmm {
> + pcie0_default: pcie0-default-state {
> + clkreq-n-pins {
> + pins = "gpio14";
> + function = "pcie0_clk";
> + drive-strength = <8>;
> + bias-pull-up;
> + };
> +
> + perst-n-pins {
> + pins = "gpio15";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-pull-up;
> + output-low;
> + };
> +
> + wake-n-pins {
> + pins = "gpio16";
> + function = "pcie0_wake";
> + drive-strength = <8>;
> + bias-pull-up;
> + };
> + };
> +
> sdc_default_state: sdc-default-state {
> clk-pins {
> pins = "gpio9";
>
> --
> 2.48.1
>
>
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe
2025-03-21 14:13 ` Dmitry Baryshkov
@ 2025-03-24 8:06 ` George Moussalem
2025-03-24 19:38 ` Konrad Dybcio
0 siblings, 1 reply; 27+ messages in thread
From: George Moussalem @ 2025-03-24 8:06 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-phy, devicetree, linux-kernel,
linux-pci, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
On 3/21/25 18:13, Dmitry Baryshkov wrote:
> On Fri, Mar 21, 2025 at 04:14:44PM +0400, George Moussalem via B4 Relay wrote:
>> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>>
>> Enable the PCIe controller and PHY nodes for RDP 432-c2.
>>
>> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
>> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
>> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
>> ---
>> arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 40 ++++++++++++++++++++++++++
>> 1 file changed, 40 insertions(+)
>
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>
> Minor question below.
>
>> +
>> +&pcie0_phy {
>> + status = "okay";
>
> If you have schematics, are you sure that there are no supplies for the
> PCIe PHY / PCIe PLLs on this board?
I don't have the schematics, but none of the boards I've personally
tested (mostly Linksys devices) require any supply. I've also checked
the downstream board files documented on codelinaro for ipq5018, and
none mention a supply.
>
>> +};
>> +
>> &sdhc_1 {
>> pinctrl-0 = <&sdc_default_state>;
>> pinctrl-names = "default";
>
Best regards,
George
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes
2025-03-24 7:56 ` Manivannan Sadhasivam
@ 2025-03-24 11:18 ` Praveenkumar I
2025-03-24 11:36 ` Dmitry Baryshkov
2025-03-25 16:53 ` Manivannan Sadhasivam
0 siblings, 2 replies; 27+ messages in thread
From: Praveenkumar I @ 2025-03-24 11:18 UTC (permalink / raw)
To: Manivannan Sadhasivam, george.moussalem
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
20250317100029.881286-2-quic_varada, Sricharan R
On 3/24/2025 1:26 PM, Manivannan Sadhasivam wrote:
> On Fri, Mar 21, 2025 at 04:14:43PM +0400, George Moussalem via B4 Relay wrote:
>> From: Nitheesh Sekar<quic_nsekar@quicinc.com>
>>
>> Add phy and controller nodes for a 2-lane Gen2 and
> Controller is Gen 3 capable but you are limiting it to Gen 2.
>
>> a 1-lane Gen2 PCIe bus. IPQ5018 has 8 MSI SPI interrupts and
>> one global interrupt.
>>
>> Signed-off-by: Nitheesh Sekar<quic_nsekar@quicinc.com>
>> Signed-off-by: Sricharan R<quic_srichara@quicinc.com>
>> Signed-off-by: George Moussalem<george.moussalem@outlook.com>
> One comment below. With that addressed,
>
> Reviewed-by: Manivannan Sadhasivam<manivannan.sadhasivam@linaro.org>
>
>> ---
>> arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 +++++++++++++++++++++++++++++++++-
>> 1 file changed, 232 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>> index 8914f2ef0bc4..d08034b57e80 100644
>> --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>> @@ -147,6 +147,40 @@ usbphy0: phy@5b000 {
>> status = "disabled";
>> };
>>
>> + pcie1_phy: phy@7e000{
>> + compatible = "qcom,ipq5018-uniphy-pcie-phy";
>> + reg = <0x0007e000 0x800>;
>> +
>> + clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
>> +
>> + resets = <&gcc GCC_PCIE1_PHY_BCR>,
>> + <&gcc GCC_PCIE1PHY_PHY_BCR>;
>> +
>> + #clock-cells = <0>;
>> + #phy-cells = <0>;
>> +
>> + num-lanes = <1>;
>> +
>> + status = "disabled";
>> + };
>> +
>> + pcie0_phy: phy@86000{
>> + compatible = "qcom,ipq5018-uniphy-pcie-phy";
>> + reg = <0x00086000 0x800>;
>> +
>> + clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
>> +
>> + resets = <&gcc GCC_PCIE0_PHY_BCR>,
>> + <&gcc GCC_PCIE0PHY_PHY_BCR>;
>> +
>> + #clock-cells = <0>;
>> + #phy-cells = <0>;
>> +
>> + num-lanes = <2>;
>> +
>> + status = "disabled";
>> + };
>> +
>> tlmm: pinctrl@1000000 {
>> compatible = "qcom,ipq5018-tlmm";
>> reg = <0x01000000 0x300000>;
>> @@ -170,8 +204,8 @@ gcc: clock-controller@1800000 {
>> reg = <0x01800000 0x80000>;
>> clocks = <&xo_board_clk>,
>> <&sleep_clk>,
>> - <0>,
>> - <0>,
>> + <&pcie0_phy>,
>> + <&pcie1_phy>,
>> <0>,
>> <0>,
>> <0>,
>> @@ -387,6 +421,202 @@ frame@b128000 {
>> status = "disabled";
>> };
>> };
>> +
>> + pcie1: pcie@80000000 {
>> + compatible = "qcom,pcie-ipq5018";
>> + reg = <0x80000000 0xf1d>,
>> + <0x80000f20 0xa8>,
>> + <0x80001000 0x1000>,
>> + <0x00078000 0x3000>,
>> + <0x80100000 0x1000>,
>> + <0x0007b000 0x1000>;
>> + reg-names = "dbi",
>> + "elbi",
>> + "atu",
>> + "parf",
>> + "config",
>> + "mhi";
>> + device_type = "pci";
>> + linux,pci-domain = <0>;
>> + bus-range = <0x00 0xff>;
>> + num-lanes = <1>;
>> + max-link-speed = <2>;
> This still needs some justification. If Qcom folks didn't reply, atleast move
> this to board dts with a comment saying that the link is not coming up with
> Gen3.
>
> - Mani
The IPQ5018 PCIe controller can support Gen3, but the PCIe phy is
limited Gen2 and does not supported Gen3.
Hence, it is restricted using the DTSI property.
--
Thanks,
Praveenkumar
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes
2025-03-24 11:18 ` Praveenkumar I
@ 2025-03-24 11:36 ` Dmitry Baryshkov
2025-03-24 19:40 ` Konrad Dybcio
2025-03-25 16:53 ` Manivannan Sadhasivam
1 sibling, 1 reply; 27+ messages in thread
From: Dmitry Baryshkov @ 2025-03-24 11:36 UTC (permalink / raw)
To: Praveenkumar I
Cc: Manivannan Sadhasivam, george.moussalem, Vinod Koul,
Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Nitheesh Sekar, Varadarajan Narayanan,
Bjorn Helgaas, Lorenzo Pieralisi, Krzysztof Wilczyński,
Bjorn Andersson, Konrad Dybcio, linux-arm-msm, linux-phy,
devicetree, linux-kernel, linux-pci,
20250317100029.881286-2-quic_varada, Sricharan R
On Mon, Mar 24, 2025 at 04:48:34PM +0530, Praveenkumar I wrote:
>
>
> On 3/24/2025 1:26 PM, Manivannan Sadhasivam wrote:
> > On Fri, Mar 21, 2025 at 04:14:43PM +0400, George Moussalem via B4 Relay wrote:
> > > From: Nitheesh Sekar<quic_nsekar@quicinc.com>
> > >
> > > Add phy and controller nodes for a 2-lane Gen2 and
> > Controller is Gen 3 capable but you are limiting it to Gen 2.
> >
> > > a 1-lane Gen2 PCIe bus. IPQ5018 has 8 MSI SPI interrupts and
> > > one global interrupt.
> > >
> > > Signed-off-by: Nitheesh Sekar<quic_nsekar@quicinc.com>
> > > Signed-off-by: Sricharan R<quic_srichara@quicinc.com>
> > > Signed-off-by: George Moussalem<george.moussalem@outlook.com>
> > One comment below. With that addressed,
> >
> > Reviewed-by: Manivannan Sadhasivam<manivannan.sadhasivam@linaro.org>
> >
> > > ---
> > > arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 +++++++++++++++++++++++++++++++++-
> > > 1 file changed, 232 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> > > index 8914f2ef0bc4..d08034b57e80 100644
> > > --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> > > +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> > > @@ -147,6 +147,40 @@ usbphy0: phy@5b000 {
> > > status = "disabled";
> > > };
> > > + pcie1_phy: phy@7e000{
> > > + compatible = "qcom,ipq5018-uniphy-pcie-phy";
> > > + reg = <0x0007e000 0x800>;
> > > +
> > > + clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
> > > +
> > > + resets = <&gcc GCC_PCIE1_PHY_BCR>,
> > > + <&gcc GCC_PCIE1PHY_PHY_BCR>;
> > > +
> > > + #clock-cells = <0>;
> > > + #phy-cells = <0>;
> > > +
> > > + num-lanes = <1>;
> > > +
> > > + status = "disabled";
> > > + };
> > > +
> > > + pcie0_phy: phy@86000{
> > > + compatible = "qcom,ipq5018-uniphy-pcie-phy";
> > > + reg = <0x00086000 0x800>;
> > > +
> > > + clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
> > > +
> > > + resets = <&gcc GCC_PCIE0_PHY_BCR>,
> > > + <&gcc GCC_PCIE0PHY_PHY_BCR>;
> > > +
> > > + #clock-cells = <0>;
> > > + #phy-cells = <0>;
> > > +
> > > + num-lanes = <2>;
> > > +
> > > + status = "disabled";
> > > + };
> > > +
> > > tlmm: pinctrl@1000000 {
> > > compatible = "qcom,ipq5018-tlmm";
> > > reg = <0x01000000 0x300000>;
> > > @@ -170,8 +204,8 @@ gcc: clock-controller@1800000 {
> > > reg = <0x01800000 0x80000>;
> > > clocks = <&xo_board_clk>,
> > > <&sleep_clk>,
> > > - <0>,
> > > - <0>,
> > > + <&pcie0_phy>,
> > > + <&pcie1_phy>,
> > > <0>,
> > > <0>,
> > > <0>,
> > > @@ -387,6 +421,202 @@ frame@b128000 {
> > > status = "disabled";
> > > };
> > > };
> > > +
> > > + pcie1: pcie@80000000 {
> > > + compatible = "qcom,pcie-ipq5018";
> > > + reg = <0x80000000 0xf1d>,
> > > + <0x80000f20 0xa8>,
> > > + <0x80001000 0x1000>,
> > > + <0x00078000 0x3000>,
> > > + <0x80100000 0x1000>,
> > > + <0x0007b000 0x1000>;
> > > + reg-names = "dbi",
> > > + "elbi",
> > > + "atu",
> > > + "parf",
> > > + "config",
> > > + "mhi";
> > > + device_type = "pci";
> > > + linux,pci-domain = <0>;
> > > + bus-range = <0x00 0xff>;
> > > + num-lanes = <1>;
> > > + max-link-speed = <2>;
> > This still needs some justification. If Qcom folks didn't reply, atleast move
> > this to board dts with a comment saying that the link is not coming up with
> > Gen3.
> >
> > - Mani
> The IPQ5018 PCIe controller can support Gen3, but the PCIe phy is limited
> Gen2 and does not supported Gen3.
> Hence, it is restricted using the DTSI property.
Ideally this needs to be negotiated between the PCIe host and PHY
drivers.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe
2025-03-24 8:06 ` George Moussalem
@ 2025-03-24 19:38 ` Konrad Dybcio
0 siblings, 0 replies; 27+ messages in thread
From: Konrad Dybcio @ 2025-03-24 19:38 UTC (permalink / raw)
To: George Moussalem, Dmitry Baryshkov
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-phy, devicetree, linux-kernel,
linux-pci, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
On 3/24/25 9:06 AM, George Moussalem wrote:
>
>
> On 3/21/25 18:13, Dmitry Baryshkov wrote:
>> On Fri, Mar 21, 2025 at 04:14:44PM +0400, George Moussalem via B4 Relay wrote:
>>> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>>>
>>> Enable the PCIe controller and PHY nodes for RDP 432-c2.
>>>
>>> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
>>> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
>>> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
>>> ---
>>> arch/arm64/boot/dts/qcom/ipq5018-rdp432-c2.dts | 40 ++++++++++++++++++++++++++
>>> 1 file changed, 40 insertions(+)
>>
>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>
>> Minor question below.
>>
>>> +
>>> +&pcie0_phy {
>>> + status = "okay";
>>
>> If you have schematics, are you sure that there are no supplies for the
>> PCIe PHY / PCIe PLLs on this board?
>
> I don't have the schematics, but none of the boards I've personally tested (mostly Linksys devices) require any supply. I've also checked the downstream board files documented on codelinaro for ipq5018, and none mention a supply.
It looks like on the reference board it's connected to an essentially
always-on supply, I'd expect that to be the case on yours as well
Konrad
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe
2025-03-21 12:14 ` [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe George Moussalem via B4 Relay
2025-03-21 14:13 ` Dmitry Baryshkov
2025-03-24 7:58 ` Manivannan Sadhasivam
@ 2025-03-24 19:39 ` Konrad Dybcio
2 siblings, 0 replies; 27+ messages in thread
From: Konrad Dybcio @ 2025-03-24 19:39 UTC (permalink / raw)
To: george.moussalem, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
20250317100029.881286-2-quic_varada, Sricharan Ramabadhran
On 3/21/25 1:14 PM, George Moussalem via B4 Relay wrote:
> From: Nitheesh Sekar <quic_nsekar@quicinc.com>
>
> Enable the PCIe controller and PHY nodes for RDP 432-c2.
>
> Signed-off-by: Nitheesh Sekar <quic_nsekar@quicinc.com>
> Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes
2025-03-24 11:36 ` Dmitry Baryshkov
@ 2025-03-24 19:40 ` Konrad Dybcio
0 siblings, 0 replies; 27+ messages in thread
From: Konrad Dybcio @ 2025-03-24 19:40 UTC (permalink / raw)
To: Dmitry Baryshkov, Praveenkumar I
Cc: Manivannan Sadhasivam, george.moussalem, Vinod Koul,
Kishon Vijay Abraham I, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Nitheesh Sekar, Varadarajan Narayanan,
Bjorn Helgaas, Lorenzo Pieralisi, Krzysztof Wilczyński,
Bjorn Andersson, Konrad Dybcio, linux-arm-msm, linux-phy,
devicetree, linux-kernel, linux-pci,
20250317100029.881286-2-quic_varada, Sricharan R
On 3/24/25 12:36 PM, Dmitry Baryshkov wrote:
> On Mon, Mar 24, 2025 at 04:48:34PM +0530, Praveenkumar I wrote:
>>
>>
>> On 3/24/2025 1:26 PM, Manivannan Sadhasivam wrote:
>>> On Fri, Mar 21, 2025 at 04:14:43PM +0400, George Moussalem via B4 Relay wrote:
>>>> From: Nitheesh Sekar<quic_nsekar@quicinc.com>
>>>>
>>>> Add phy and controller nodes for a 2-lane Gen2 and
>>> Controller is Gen 3 capable but you are limiting it to Gen 2.
>>>
>>>> a 1-lane Gen2 PCIe bus. IPQ5018 has 8 MSI SPI interrupts and
>>>> one global interrupt.
>>>>
>>>> Signed-off-by: Nitheesh Sekar<quic_nsekar@quicinc.com>
>>>> Signed-off-by: Sricharan R<quic_srichara@quicinc.com>
>>>> Signed-off-by: George Moussalem<george.moussalem@outlook.com>
>>> One comment below. With that addressed,
>>>
>>> Reviewed-by: Manivannan Sadhasivam<manivannan.sadhasivam@linaro.org>
>>>
>>>> ---
>>>> arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 +++++++++++++++++++++++++++++++++-
>>>> 1 file changed, 232 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>>>> index 8914f2ef0bc4..d08034b57e80 100644
>>>> --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>>>> @@ -147,6 +147,40 @@ usbphy0: phy@5b000 {
>>>> status = "disabled";
>>>> };
>>>> + pcie1_phy: phy@7e000{
>>>> + compatible = "qcom,ipq5018-uniphy-pcie-phy";
>>>> + reg = <0x0007e000 0x800>;
>>>> +
>>>> + clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
>>>> +
>>>> + resets = <&gcc GCC_PCIE1_PHY_BCR>,
>>>> + <&gcc GCC_PCIE1PHY_PHY_BCR>;
>>>> +
>>>> + #clock-cells = <0>;
>>>> + #phy-cells = <0>;
>>>> +
>>>> + num-lanes = <1>;
>>>> +
>>>> + status = "disabled";
>>>> + };
>>>> +
>>>> + pcie0_phy: phy@86000{
>>>> + compatible = "qcom,ipq5018-uniphy-pcie-phy";
>>>> + reg = <0x00086000 0x800>;
>>>> +
>>>> + clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
>>>> +
>>>> + resets = <&gcc GCC_PCIE0_PHY_BCR>,
>>>> + <&gcc GCC_PCIE0PHY_PHY_BCR>;
>>>> +
>>>> + #clock-cells = <0>;
>>>> + #phy-cells = <0>;
>>>> +
>>>> + num-lanes = <2>;
>>>> +
>>>> + status = "disabled";
>>>> + };
>>>> +
>>>> tlmm: pinctrl@1000000 {
>>>> compatible = "qcom,ipq5018-tlmm";
>>>> reg = <0x01000000 0x300000>;
>>>> @@ -170,8 +204,8 @@ gcc: clock-controller@1800000 {
>>>> reg = <0x01800000 0x80000>;
>>>> clocks = <&xo_board_clk>,
>>>> <&sleep_clk>,
>>>> - <0>,
>>>> - <0>,
>>>> + <&pcie0_phy>,
>>>> + <&pcie1_phy>,
>>>> <0>,
>>>> <0>,
>>>> <0>,
>>>> @@ -387,6 +421,202 @@ frame@b128000 {
>>>> status = "disabled";
>>>> };
>>>> };
>>>> +
>>>> + pcie1: pcie@80000000 {
>>>> + compatible = "qcom,pcie-ipq5018";
>>>> + reg = <0x80000000 0xf1d>,
>>>> + <0x80000f20 0xa8>,
>>>> + <0x80001000 0x1000>,
>>>> + <0x00078000 0x3000>,
>>>> + <0x80100000 0x1000>,
>>>> + <0x0007b000 0x1000>;
>>>> + reg-names = "dbi",
>>>> + "elbi",
>>>> + "atu",
>>>> + "parf",
>>>> + "config",
>>>> + "mhi";
>>>> + device_type = "pci";
>>>> + linux,pci-domain = <0>;
>>>> + bus-range = <0x00 0xff>;
>>>> + num-lanes = <1>;
>>>> + max-link-speed = <2>;
>>> This still needs some justification. If Qcom folks didn't reply, atleast move
>>> this to board dts with a comment saying that the link is not coming up with
>>> Gen3.
>>>
>>> - Mani
>> The IPQ5018 PCIe controller can support Gen3, but the PCIe phy is limited
>> Gen2 and does not supported Gen3.
>> Hence, it is restricted using the DTSI property.
>
> Ideally this needs to be negotiated between the PCIe host and PHY
> drivers.
Would it not fall back automatically?
In any case, I'm fine with this, so long as there's a comment above it
Konrad
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 0/6] Enable IPQ5018 PCI support
2025-03-24 7:47 ` Krzysztof Kozlowski
@ 2025-03-25 7:55 ` George Moussalem
0 siblings, 0 replies; 27+ messages in thread
From: George Moussalem @ 2025-03-25 7:55 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Konrad Dybcio, linux-arm-msm, linux-phy, devicetree, linux-kernel,
linux-pci, 20250317100029.881286-2-quic_varada,
Sricharan Ramabadhran
On 3/24/25 11:47, Krzysztof Kozlowski wrote:
> On Fri, Mar 21, 2025 at 04:14:38PM +0400, George Moussalem wrote:
>> This patch series adds the relevant phy and controller
>> DT configurations for enabling PCI gen2 support
>> on IPQ5018. IPQ5018 has two phys and two controllers,
>> one dual-lane and one single-lane.
>>
>> Last patch series (v3) submitted dates back to August 30, 2024.
>> As I've worked to add IPQ5018 platform support in OpenWrt, I'm
>> continuing the efforts to add Linux kernel support.
>>
>> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
>> ---
>> Changes in v6:
>> - Fixed issues reported by 'make dt_bindings_check' as per Rob's bot
>> - Removed Krzysztof's Ack-tag on
>
> Why?
In v5, I modified dt bindings (patch 1) to add descriptions and separate
conditions for ipq5018 and ipq5332 as they have different nr of clocks
and resets but left your tag in there. I removed it in v6 to run the
changes past you again.
I intend to send the next version with comments addressed in patch 5 (to
add a comment above the max-link-speed property). Anything else you
would like to see addressed?
>
> Again, I cannot compare this serie:
>
> b4 diff '20250321-ipq5018-pcie-v6-0-b7d659a76205@outlook.com'
> Grabbing thread from lore.kernel.org/all/20250321-ipq5018-pcie-v6-0-b7d659a76205@outlook.com/t.mbox.gz
> Checking for older revisions
> Grabbing search results from lore.kernel.org
> Nothing matching that query.
> ---
> Analyzing 12 messages in the thread
> Could not find lower series to compare against.
>
I tried 'b4 prep -n <topical branch> -F <message-ID>' to try and preseve
the history but that didn't work, unfortunately. Instead I used -f and
forked it off the master branch of linux-next.
>
>
Best regards,
George
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes
2025-03-24 11:18 ` Praveenkumar I
2025-03-24 11:36 ` Dmitry Baryshkov
@ 2025-03-25 16:53 ` Manivannan Sadhasivam
2025-03-26 7:41 ` Praveenkumar I
1 sibling, 1 reply; 27+ messages in thread
From: Manivannan Sadhasivam @ 2025-03-25 16:53 UTC (permalink / raw)
To: Praveenkumar I
Cc: george.moussalem, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
20250317100029.881286-2-quic_varada, Sricharan R
On Mon, Mar 24, 2025 at 04:48:34PM +0530, Praveenkumar I wrote:
>
>
> On 3/24/2025 1:26 PM, Manivannan Sadhasivam wrote:
> > On Fri, Mar 21, 2025 at 04:14:43PM +0400, George Moussalem via B4 Relay wrote:
> > > From: Nitheesh Sekar<quic_nsekar@quicinc.com>
> > >
> > > Add phy and controller nodes for a 2-lane Gen2 and
> > Controller is Gen 3 capable but you are limiting it to Gen 2.
> >
> > > a 1-lane Gen2 PCIe bus. IPQ5018 has 8 MSI SPI interrupts and
> > > one global interrupt.
> > >
> > > Signed-off-by: Nitheesh Sekar<quic_nsekar@quicinc.com>
> > > Signed-off-by: Sricharan R<quic_srichara@quicinc.com>
> > > Signed-off-by: George Moussalem<george.moussalem@outlook.com>
> > One comment below. With that addressed,
> >
> > Reviewed-by: Manivannan Sadhasivam<manivannan.sadhasivam@linaro.org>
> >
> > > ---
> > > arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 +++++++++++++++++++++++++++++++++-
> > > 1 file changed, 232 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> > > index 8914f2ef0bc4..d08034b57e80 100644
> > > --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> > > +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> > > @@ -147,6 +147,40 @@ usbphy0: phy@5b000 {
> > > status = "disabled";
> > > };
> > > + pcie1_phy: phy@7e000{
> > > + compatible = "qcom,ipq5018-uniphy-pcie-phy";
> > > + reg = <0x0007e000 0x800>;
> > > +
> > > + clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
> > > +
> > > + resets = <&gcc GCC_PCIE1_PHY_BCR>,
> > > + <&gcc GCC_PCIE1PHY_PHY_BCR>;
> > > +
> > > + #clock-cells = <0>;
> > > + #phy-cells = <0>;
> > > +
> > > + num-lanes = <1>;
> > > +
> > > + status = "disabled";
> > > + };
> > > +
> > > + pcie0_phy: phy@86000{
> > > + compatible = "qcom,ipq5018-uniphy-pcie-phy";
> > > + reg = <0x00086000 0x800>;
> > > +
> > > + clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
> > > +
> > > + resets = <&gcc GCC_PCIE0_PHY_BCR>,
> > > + <&gcc GCC_PCIE0PHY_PHY_BCR>;
> > > +
> > > + #clock-cells = <0>;
> > > + #phy-cells = <0>;
> > > +
> > > + num-lanes = <2>;
> > > +
> > > + status = "disabled";
> > > + };
> > > +
> > > tlmm: pinctrl@1000000 {
> > > compatible = "qcom,ipq5018-tlmm";
> > > reg = <0x01000000 0x300000>;
> > > @@ -170,8 +204,8 @@ gcc: clock-controller@1800000 {
> > > reg = <0x01800000 0x80000>;
> > > clocks = <&xo_board_clk>,
> > > <&sleep_clk>,
> > > - <0>,
> > > - <0>,
> > > + <&pcie0_phy>,
> > > + <&pcie1_phy>,
> > > <0>,
> > > <0>,
> > > <0>,
> > > @@ -387,6 +421,202 @@ frame@b128000 {
> > > status = "disabled";
> > > };
> > > };
> > > +
> > > + pcie1: pcie@80000000 {
> > > + compatible = "qcom,pcie-ipq5018";
> > > + reg = <0x80000000 0xf1d>,
> > > + <0x80000f20 0xa8>,
> > > + <0x80001000 0x1000>,
> > > + <0x00078000 0x3000>,
> > > + <0x80100000 0x1000>,
> > > + <0x0007b000 0x1000>;
> > > + reg-names = "dbi",
> > > + "elbi",
> > > + "atu",
> > > + "parf",
> > > + "config",
> > > + "mhi";
> > > + device_type = "pci";
> > > + linux,pci-domain = <0>;
> > > + bus-range = <0x00 0xff>;
> > > + num-lanes = <1>;
> > > + max-link-speed = <2>;
> > This still needs some justification. If Qcom folks didn't reply, atleast move
> > this to board dts with a comment saying that the link is not coming up with
> > Gen3.
> >
> > - Mani
> The IPQ5018 PCIe controller can support Gen3, but the PCIe phy is limited
> Gen2 and does not supported Gen3.
Hmm, so if a Gen 3 capable device is connected, the link will not work at Gen 2?
It seems so from the error that George shared previously.
> Hence, it is restricted using the DTSI property.
>
Ok. George, please add a comment for the property stating the reason.
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes
2025-03-25 16:53 ` Manivannan Sadhasivam
@ 2025-03-26 7:41 ` Praveenkumar I
2025-03-27 17:28 ` Manivannan Sadhasivam
0 siblings, 1 reply; 27+ messages in thread
From: Praveenkumar I @ 2025-03-26 7:41 UTC (permalink / raw)
To: Manivannan Sadhasivam
Cc: george.moussalem, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
20250317100029.881286-2-quic_varada, Sricharan R
On 3/25/2025 10:23 PM, Manivannan Sadhasivam wrote:
> On Mon, Mar 24, 2025 at 04:48:34PM +0530, Praveenkumar I wrote:
>>
>> On 3/24/2025 1:26 PM, Manivannan Sadhasivam wrote:
>>> On Fri, Mar 21, 2025 at 04:14:43PM +0400, George Moussalem via B4 Relay wrote:
>>>> From: Nitheesh Sekar<quic_nsekar@quicinc.com>
>>>>
>>>> Add phy and controller nodes for a 2-lane Gen2 and
>>> Controller is Gen 3 capable but you are limiting it to Gen 2.
>>>
>>>> a 1-lane Gen2 PCIe bus. IPQ5018 has 8 MSI SPI interrupts and
>>>> one global interrupt.
>>>>
>>>> Signed-off-by: Nitheesh Sekar<quic_nsekar@quicinc.com>
>>>> Signed-off-by: Sricharan R<quic_srichara@quicinc.com>
>>>> Signed-off-by: George Moussalem<george.moussalem@outlook.com>
>>> One comment below. With that addressed,
>>>
>>> Reviewed-by: Manivannan Sadhasivam<manivannan.sadhasivam@linaro.org>
>>>
>>>> ---
>>>> arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 +++++++++++++++++++++++++++++++++-
>>>> 1 file changed, 232 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>>>> index 8914f2ef0bc4..d08034b57e80 100644
>>>> --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
>>>> @@ -147,6 +147,40 @@ usbphy0: phy@5b000 {
>>>> status = "disabled";
>>>> };
>>>> + pcie1_phy: phy@7e000{
>>>> + compatible = "qcom,ipq5018-uniphy-pcie-phy";
>>>> + reg = <0x0007e000 0x800>;
>>>> +
>>>> + clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
>>>> +
>>>> + resets = <&gcc GCC_PCIE1_PHY_BCR>,
>>>> + <&gcc GCC_PCIE1PHY_PHY_BCR>;
>>>> +
>>>> + #clock-cells = <0>;
>>>> + #phy-cells = <0>;
>>>> +
>>>> + num-lanes = <1>;
>>>> +
>>>> + status = "disabled";
>>>> + };
>>>> +
>>>> + pcie0_phy: phy@86000{
>>>> + compatible = "qcom,ipq5018-uniphy-pcie-phy";
>>>> + reg = <0x00086000 0x800>;
>>>> +
>>>> + clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
>>>> +
>>>> + resets = <&gcc GCC_PCIE0_PHY_BCR>,
>>>> + <&gcc GCC_PCIE0PHY_PHY_BCR>;
>>>> +
>>>> + #clock-cells = <0>;
>>>> + #phy-cells = <0>;
>>>> +
>>>> + num-lanes = <2>;
>>>> +
>>>> + status = "disabled";
>>>> + };
>>>> +
>>>> tlmm: pinctrl@1000000 {
>>>> compatible = "qcom,ipq5018-tlmm";
>>>> reg = <0x01000000 0x300000>;
>>>> @@ -170,8 +204,8 @@ gcc: clock-controller@1800000 {
>>>> reg = <0x01800000 0x80000>;
>>>> clocks = <&xo_board_clk>,
>>>> <&sleep_clk>,
>>>> - <0>,
>>>> - <0>,
>>>> + <&pcie0_phy>,
>>>> + <&pcie1_phy>,
>>>> <0>,
>>>> <0>,
>>>> <0>,
>>>> @@ -387,6 +421,202 @@ frame@b128000 {
>>>> status = "disabled";
>>>> };
>>>> };
>>>> +
>>>> + pcie1: pcie@80000000 {
>>>> + compatible = "qcom,pcie-ipq5018";
>>>> + reg = <0x80000000 0xf1d>,
>>>> + <0x80000f20 0xa8>,
>>>> + <0x80001000 0x1000>,
>>>> + <0x00078000 0x3000>,
>>>> + <0x80100000 0x1000>,
>>>> + <0x0007b000 0x1000>;
>>>> + reg-names = "dbi",
>>>> + "elbi",
>>>> + "atu",
>>>> + "parf",
>>>> + "config",
>>>> + "mhi";
>>>> + device_type = "pci";
>>>> + linux,pci-domain = <0>;
>>>> + bus-range = <0x00 0xff>;
>>>> + num-lanes = <1>;
>>>> + max-link-speed = <2>;
>>> This still needs some justification. If Qcom folks didn't reply, atleast move
>>> this to board dts with a comment saying that the link is not coming up with
>>> Gen3.
>>>
>>> - Mani
>> The IPQ5018 PCIe controller can support Gen3, but the PCIe phy is limited
>> Gen2 and does not supported Gen3.
> Hmm, so if a Gen 3 capable device is connected, the link will not work at Gen 2?
> It seems so from the error that George shared previously.
No, that is not the case. The link will work with a Gen3 capable device
at Gen2 speed. The failure log shared by George indicates a PHY failure,
which is due to IPQ5018 PHY's hardware limitation.
>
>> Hence, it is restricted using the DTSI property.
>>
> Ok. George, please add a comment for the property stating the reason.
>
> - Mani
>
--
Thanks,
Praveenkumar
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes
2025-03-26 7:41 ` Praveenkumar I
@ 2025-03-27 17:28 ` Manivannan Sadhasivam
0 siblings, 0 replies; 27+ messages in thread
From: Manivannan Sadhasivam @ 2025-03-27 17:28 UTC (permalink / raw)
To: Praveenkumar I
Cc: george.moussalem, Vinod Koul, Kishon Vijay Abraham I, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Nitheesh Sekar,
Varadarajan Narayanan, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Bjorn Andersson, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
20250317100029.881286-2-quic_varada, Sricharan R
On Wed, Mar 26, 2025 at 01:11:35PM +0530, Praveenkumar I wrote:
>
>
> On 3/25/2025 10:23 PM, Manivannan Sadhasivam wrote:
> > On Mon, Mar 24, 2025 at 04:48:34PM +0530, Praveenkumar I wrote:
> > >
> > > On 3/24/2025 1:26 PM, Manivannan Sadhasivam wrote:
> > > > On Fri, Mar 21, 2025 at 04:14:43PM +0400, George Moussalem via B4 Relay wrote:
> > > > > From: Nitheesh Sekar<quic_nsekar@quicinc.com>
> > > > >
> > > > > Add phy and controller nodes for a 2-lane Gen2 and
> > > > Controller is Gen 3 capable but you are limiting it to Gen 2.
> > > >
> > > > > a 1-lane Gen2 PCIe bus. IPQ5018 has 8 MSI SPI interrupts and
> > > > > one global interrupt.
> > > > >
> > > > > Signed-off-by: Nitheesh Sekar<quic_nsekar@quicinc.com>
> > > > > Signed-off-by: Sricharan R<quic_srichara@quicinc.com>
> > > > > Signed-off-by: George Moussalem<george.moussalem@outlook.com>
> > > > One comment below. With that addressed,
> > > >
> > > > Reviewed-by: Manivannan Sadhasivam<manivannan.sadhasivam@linaro.org>
> > > >
> > > > > ---
> > > > > arch/arm64/boot/dts/qcom/ipq5018.dtsi | 234 +++++++++++++++++++++++++++++++++-
> > > > > 1 file changed, 232 insertions(+), 2 deletions(-)
> > > > >
> > > > > diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> > > > > index 8914f2ef0bc4..d08034b57e80 100644
> > > > > --- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> > > > > +++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
> > > > > @@ -147,6 +147,40 @@ usbphy0: phy@5b000 {
> > > > > status = "disabled";
> > > > > };
> > > > > + pcie1_phy: phy@7e000{
> > > > > + compatible = "qcom,ipq5018-uniphy-pcie-phy";
> > > > > + reg = <0x0007e000 0x800>;
> > > > > +
> > > > > + clocks = <&gcc GCC_PCIE1_PIPE_CLK>;
> > > > > +
> > > > > + resets = <&gcc GCC_PCIE1_PHY_BCR>,
> > > > > + <&gcc GCC_PCIE1PHY_PHY_BCR>;
> > > > > +
> > > > > + #clock-cells = <0>;
> > > > > + #phy-cells = <0>;
> > > > > +
> > > > > + num-lanes = <1>;
> > > > > +
> > > > > + status = "disabled";
> > > > > + };
> > > > > +
> > > > > + pcie0_phy: phy@86000{
> > > > > + compatible = "qcom,ipq5018-uniphy-pcie-phy";
> > > > > + reg = <0x00086000 0x800>;
> > > > > +
> > > > > + clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
> > > > > +
> > > > > + resets = <&gcc GCC_PCIE0_PHY_BCR>,
> > > > > + <&gcc GCC_PCIE0PHY_PHY_BCR>;
> > > > > +
> > > > > + #clock-cells = <0>;
> > > > > + #phy-cells = <0>;
> > > > > +
> > > > > + num-lanes = <2>;
> > > > > +
> > > > > + status = "disabled";
> > > > > + };
> > > > > +
> > > > > tlmm: pinctrl@1000000 {
> > > > > compatible = "qcom,ipq5018-tlmm";
> > > > > reg = <0x01000000 0x300000>;
> > > > > @@ -170,8 +204,8 @@ gcc: clock-controller@1800000 {
> > > > > reg = <0x01800000 0x80000>;
> > > > > clocks = <&xo_board_clk>,
> > > > > <&sleep_clk>,
> > > > > - <0>,
> > > > > - <0>,
> > > > > + <&pcie0_phy>,
> > > > > + <&pcie1_phy>,
> > > > > <0>,
> > > > > <0>,
> > > > > <0>,
> > > > > @@ -387,6 +421,202 @@ frame@b128000 {
> > > > > status = "disabled";
> > > > > };
> > > > > };
> > > > > +
> > > > > + pcie1: pcie@80000000 {
> > > > > + compatible = "qcom,pcie-ipq5018";
> > > > > + reg = <0x80000000 0xf1d>,
> > > > > + <0x80000f20 0xa8>,
> > > > > + <0x80001000 0x1000>,
> > > > > + <0x00078000 0x3000>,
> > > > > + <0x80100000 0x1000>,
> > > > > + <0x0007b000 0x1000>;
> > > > > + reg-names = "dbi",
> > > > > + "elbi",
> > > > > + "atu",
> > > > > + "parf",
> > > > > + "config",
> > > > > + "mhi";
> > > > > + device_type = "pci";
> > > > > + linux,pci-domain = <0>;
> > > > > + bus-range = <0x00 0xff>;
> > > > > + num-lanes = <1>;
> > > > > + max-link-speed = <2>;
> > > > This still needs some justification. If Qcom folks didn't reply, atleast move
> > > > this to board dts with a comment saying that the link is not coming up with
> > > > Gen3.
> > > >
> > > > - Mani
> > > The IPQ5018 PCIe controller can support Gen3, but the PCIe phy is limited
> > > Gen2 and does not supported Gen3.
> > Hmm, so if a Gen 3 capable device is connected, the link will not work at Gen 2?
> > It seems so from the error that George shared previously.
> No, that is not the case. The link will work with a Gen3 capable device at
> Gen2 speed. The failure log shared by George indicates a PHY failure, which
> is due to IPQ5018 PHY's hardware limitation.
It doesn't matter. If a Gen 3 device is not going to work with the controller +
phy combo, then it is a host hardware limitation. But I'm OK with adding a
comment and limiting the controller link speed.
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2025-03-27 17:28 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-21 12:14 [PATCH v6 0/6] Enable IPQ5018 PCI support George Moussalem via B4 Relay
2025-03-21 12:14 ` [PATCH v6 1/6] dt-bindings: phy: qcom: uniphy-pcie: Add ipq5018 compatible George Moussalem via B4 Relay
2025-03-22 20:16 ` Rob Herring (Arm)
2025-03-21 12:14 ` [PATCH v6 2/6] phy: qualcomm: qcom-uniphy-pcie 28LP add support for IPQ5018 George Moussalem via B4 Relay
2025-03-21 14:10 ` Dmitry Baryshkov
2025-03-21 12:14 ` [PATCH v6 3/6] dt-bindings: PCI: qcom: Add IPQ5018 SoC George Moussalem via B4 Relay
2025-03-24 7:50 ` Krzysztof Kozlowski
2025-03-24 7:52 ` Manivannan Sadhasivam
2025-03-21 12:14 ` [PATCH v6 4/6] PCI: qcom: Add support for IPQ5018 George Moussalem via B4 Relay
2025-03-21 12:14 ` [PATCH v6 5/6] arm64: dts: qcom: ipq5018: Add PCIe related nodes George Moussalem via B4 Relay
2025-03-21 14:10 ` Dmitry Baryshkov
2025-03-24 7:56 ` Manivannan Sadhasivam
2025-03-24 11:18 ` Praveenkumar I
2025-03-24 11:36 ` Dmitry Baryshkov
2025-03-24 19:40 ` Konrad Dybcio
2025-03-25 16:53 ` Manivannan Sadhasivam
2025-03-26 7:41 ` Praveenkumar I
2025-03-27 17:28 ` Manivannan Sadhasivam
2025-03-21 12:14 ` [PATCH v6 6/6] arm64: dts: qcom: ipq5018: Enable PCIe George Moussalem via B4 Relay
2025-03-21 14:13 ` Dmitry Baryshkov
2025-03-24 8:06 ` George Moussalem
2025-03-24 19:38 ` Konrad Dybcio
2025-03-24 7:58 ` Manivannan Sadhasivam
2025-03-24 19:39 ` Konrad Dybcio
2025-03-21 15:05 ` [PATCH v6 0/6] Enable IPQ5018 PCI support Rob Herring (Arm)
2025-03-24 7:47 ` Krzysztof Kozlowski
2025-03-25 7:55 ` George Moussalem
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox