* [PATCH 0/4] PCI: qcom: Add support for Eliza
@ 2026-05-21 14:05 Krishna Chaitanya Chundru
2026-05-21 14:05 ` [PATCH 1/4] dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy Krishna Chaitanya Chundru
` (3 more replies)
0 siblings, 4 replies; 17+ messages in thread
From: Krishna Chaitanya Chundru @ 2026-05-21 14:05 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Krishna Chaitanya Chundru
This series adds PCIe support for the Qualcomm Eliza SoC. Eliza includes
two PCIe root complex controllers capable of 8GT/s x1 and 8GT/s x2,
both using the cfg_1_9_0 configuration.
The QMP PCIe PHY support adds a new Gen3x1 PHY configuration with
Eliza-specific initialization tables, and reuses the existing SM8550
Gen3x2 configuration for the x2 PHY instance.
The series consists of:
- dt-bindings for the Eliza PCIe QMP PHY
- dt-bindings schema for the Eliza PCIe controller
- Driver entry in the Qcom PCIe controller for Eliza
- QMP PCIe PHY initialization tables and configuration for Eliza
Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
---
Krishna Chaitanya Chundru (4):
dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy
dt-bindings: PCI: qcom: Document the Eliza PCIe Controller
PCI: qcom: Add Support for Eliza
phy: qcom: qmp-pcie: Add QMP PCIe PHY support for Eliza
.../devicetree/bindings/pci/qcom,pcie-eliza.yaml | 165 +++++++++++++++++++++
.../bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 6 +
drivers/pci/controller/dwc/pcie-qcom.c | 1 +
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 139 +++++++++++++++++
drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6.h | 1 +
5 files changed, 312 insertions(+)
---
base-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731
change-id: 20260427-eliza-e53155ae8821
Best regards,
--
Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 17+ messages in thread* [PATCH 1/4] dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy 2026-05-21 14:05 [PATCH 0/4] PCI: qcom: Add support for Eliza Krishna Chaitanya Chundru @ 2026-05-21 14:05 ` Krishna Chaitanya Chundru 2026-05-21 14:21 ` sashiko-bot 2026-05-22 6:46 ` Krzysztof Kozlowski 2026-05-21 14:05 ` [PATCH 2/4] dt-bindings: PCI: qcom: Document the Eliza PCIe Controller Krishna Chaitanya Chundru ` (2 subsequent siblings) 3 siblings, 2 replies; 17+ messages in thread From: Krishna Chaitanya Chundru @ 2026-05-21 14:05 UTC (permalink / raw) To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci, Krishna Chaitanya Chundru Add compatibles for the Eliza PCIe QMP PHY's, which supports Gen3x1 and Gen3x2 configurations. Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com> --- .../devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 6 ++++++ 1 file changed, 6 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 3a35120a77ec..be4bbc327982 100644 --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml @@ -16,6 +16,8 @@ description: properties: compatible: enum: + - qcom,eliza-qmp-gen3x1-pcie-phy + - qcom,eliza-qmp-gen3x2-pcie-phy - qcom,glymur-qmp-gen4x2-pcie-phy - qcom,glymur-qmp-gen5x4-pcie-phy - qcom,kaanapali-qmp-gen3x2-pcie-phy @@ -181,6 +183,8 @@ allOf: compatible: contains: enum: + - qcom,eliza-qmp-gen3x1-pcie-phy + - qcom,eliza-qmp-gen3x2-pcie-phy - qcom,glymur-qmp-gen4x2-pcie-phy - qcom,glymur-qmp-gen5x4-pcie-phy - qcom,qcs8300-qmp-gen4x2-pcie-phy @@ -206,6 +210,8 @@ allOf: compatible: contains: enum: + - qcom,eliza-qmp-gen3x1-pcie-phy + - qcom,eliza-qmp-gen3x2-pcie-phy - qcom,glymur-qmp-gen4x2-pcie-phy - qcom,glymur-qmp-gen5x4-pcie-phy - qcom,kaanapali-qmp-gen3x2-pcie-phy -- 2.34.1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 1/4] dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy 2026-05-21 14:05 ` [PATCH 1/4] dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy Krishna Chaitanya Chundru @ 2026-05-21 14:21 ` sashiko-bot 2026-05-22 6:46 ` Krzysztof Kozlowski 1 sibling, 0 replies; 17+ messages in thread From: sashiko-bot @ 2026-05-21 14:21 UTC (permalink / raw) To: Krishna Chaitanya Chundru Cc: linux-pci, vkoul, conor+dt, linux-phy, olteanv, neil.armstrong, robh, devicetree Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [High] The new Eliza PCIe PHY compatibles are placed in the wrong conditional blocks, incorrectly constraining them to require 6 clocks and 2 resets. -- commit 8532696e8f5cf63303348c425688fe2c2383eed6 Author: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com> dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy Add compatibles for the Eliza PCIe QMP PHY's, which supports Gen3x1 and Gen3x2 configurations. > 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 3a35120a77ec0..be4bbc327982f 100644 > --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml > +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml [ ... ] > @@ -181,6 +183,8 @@ allOf: > compatible: > contains: > enum: > + - qcom,eliza-qmp-gen3x1-pcie-phy > + - qcom,eliza-qmp-gen3x2-pcie-phy > - qcom,glymur-qmp-gen4x2-pcie-phy > - qcom,glymur-qmp-gen5x4-pcie-phy > - qcom,qcs8300-qmp-gen4x2-pcie-phy [Severity: High] Are these compatibles placed in the correct conditional block? By placing the Eliza compatibles in this group, the schema enforces a minimum of 6 clocks and 2 resets. However, the driver implementation introduced in the series expects only 1 reset. This mismatch will prevent structurally correct device tree nodes from passing schema validation. -- Sashiko AI review · https://sashiko.dev/#/patchset/20260521-eliza-v1-0-97cdbe88389d@oss.qualcomm.com?part=1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 1/4] dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy 2026-05-21 14:05 ` [PATCH 1/4] dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy Krishna Chaitanya Chundru 2026-05-21 14:21 ` sashiko-bot @ 2026-05-22 6:46 ` Krzysztof Kozlowski 1 sibling, 0 replies; 17+ messages in thread From: Krzysztof Kozlowski @ 2026-05-22 6:46 UTC (permalink / raw) To: Krishna Chaitanya Chundru Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On Thu, May 21, 2026 at 07:35:29PM +0530, Krishna Chaitanya Chundru wrote: > Add compatibles for the Eliza PCIe QMP PHY's, which supports Gen3x1 and > Gen3x2 configurations. > > Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com> > --- > .../devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 6 ++++++ > 1 file changed, 6 insertions(+) Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Best regards, Krzysztof -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 2/4] dt-bindings: PCI: qcom: Document the Eliza PCIe Controller 2026-05-21 14:05 [PATCH 0/4] PCI: qcom: Add support for Eliza Krishna Chaitanya Chundru 2026-05-21 14:05 ` [PATCH 1/4] dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy Krishna Chaitanya Chundru @ 2026-05-21 14:05 ` Krishna Chaitanya Chundru 2026-05-22 6:50 ` Krzysztof Kozlowski 2026-05-21 14:05 ` [PATCH 3/4] PCI: qcom: Add Support for Eliza Krishna Chaitanya Chundru 2026-05-21 14:05 ` [PATCH 4/4] phy: qcom: qmp-pcie: Add QMP PCIe PHY support " Krishna Chaitanya Chundru 3 siblings, 1 reply; 17+ messages in thread From: Krishna Chaitanya Chundru @ 2026-05-21 14:05 UTC (permalink / raw) To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci, Krishna Chaitanya Chundru Add a dedicated schema for the PCIe root complex controller found on the Qualcomm Eliza SoC. The controller is based on the Synopsis DesignWare PCIe IP and requires a platform-specific set of clocks that differ from existing Qcom PCIe schemas. Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com> --- .../devicetree/bindings/pci/qcom,pcie-eliza.yaml | 165 +++++++++++++++++++++ 1 file changed, 165 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/qcom,pcie-eliza.yaml b/Documentation/devicetree/bindings/pci/qcom,pcie-eliza.yaml new file mode 100644 index 000000000000..826e2adf4fda --- /dev/null +++ b/Documentation/devicetree/bindings/pci/qcom,pcie-eliza.yaml @@ -0,0 +1,165 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pci/qcom,pcie-eliza.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Eliza PCI Express Root Complex + +maintainers: + - Bjorn Andersson <andersson@kernel.org> + - Manivannan Sadhasivam <mani@kernel.org> + +description: + Qualcomm ELIZA SoC (and compatible) PCIe root complex controller is based on + the Synopsis DesignWare PCIe IP. + +properties: + compatible: + const: qcom,pcie-eliza + + reg: + minItems: 5 + maxItems: 6 + + reg-names: + minItems: 5 + items: + - const: parf # Qualcomm specific registers + - const: dbi # DesignWare PCIe registers + - const: elbi # External local bus interface registers + - const: atu # ATU address space + - const: config # PCIe configuration space + - const: mhi # MHI registers + + clocks: + maxItems: 7 + + clock-names: + items: + - const: aux # Auxiliary clock + - const: cfg # Configuration clock + - const: bus_master # Master AXI clock + - const: bus_slave # Slave AXI clock + - const: slave_q2a # Slave Q2A clock + - const: ddrss_sf_tbu # PCIe SF TBU clock + - const: cnoc_sf_axi # Config NoC PCIe1 AXI clock + + interrupts: + minItems: 8 + maxItems: 9 + + interrupt-names: + minItems: 8 + items: + - const: msi0 + - const: msi1 + - const: msi2 + - const: msi3 + - const: msi4 + - const: msi5 + - const: msi6 + - const: msi7 + - const: global + + resets: + maxItems: 2 + + reset-names: + items: + - const: pci # PCIe core reset + - const: link_down # PCIe link down reset + +required: + - power-domains + - resets + - reset-names + +allOf: + - $ref: qcom,pcie-common.yaml# + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/clock/qcom,eliza-gcc.h> + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/interconnect/qcom,eliza-rpmh.h> + + soc { + #address-cells = <2>; + #size-cells = <2>; + + pcie@1c00000 { + compatible = "qcom,pcie-eliza"; + reg = <0 0x01c00000 0 0x3000>, + <0 0x40000000 0 0xf1d>, + <0 0x40000f20 0 0xa8>, + <0 0x40001000 0 0x1000>, + <0 0x40100000 0 0x100000>; + reg-names = "parf", "dbi", "elbi", "atu", "config"; + ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>, + <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x3d00000>; + + bus-range = <0x00 0xff>; + device_type = "pci"; + linux,pci-domain = <0>; + num-lanes = <1>; + + #address-cells = <3>; + #size-cells = <2>; + + clocks = <&gcc GCC_PCIE_0_AUX_CLK>, + <&gcc GCC_PCIE_0_CFG_AHB_CLK>, + <&gcc GCC_PCIE_0_MSTR_AXI_CLK>, + <&gcc GCC_PCIE_0_SLV_AXI_CLK>, + <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>, + <&gcc GCC_DDRSS_PCIE_SF_QTB_CLK>, + <&gcc GCC_CNOC_PCIE_SF_AXI_CLK>; + clock-names = "aux", + "cfg", + "bus_master", + "bus_slave", + "slave_q2a", + "ddrss_sf_tbu", + "cnoc_sf_axi"; + + dma-coherent; + + interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 478 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 479 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 653 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "msi0", "msi1", "msi2", "msi3", + "msi4", "msi5", "msi6", "msi7", "global"; + #interrupt-cells = <1>; + interrupt-map-mask = <0 0 0 0x7>; + interrupt-map = <0 0 0 1 &intc 0 0 0 564 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ + <0 0 0 2 &intc 0 0 0 565 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ + <0 0 0 3 &intc 0 0 0 566 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ + <0 0 0 4 &intc 0 0 0 567 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ + + interconnects = <&pcie_noc MASTER_PCIE_0 0 &mc_virt SLAVE_EBI1 0>, + <&gem_noc MASTER_APPSS_PROC 0 &cnoc_main SLAVE_PCIE_0 0>; + interconnect-names = "pcie-mem", "cpu-pcie"; + + iommu-map = <0x0 &apps_smmu 0x1480 0x1>, + <0x100 &apps_smmu 0x1481 0x1>; + + pinctrl-0 = <&pcie0_default_state>; + pinctrl-names = "default"; + + power-domains = <&gcc GCC_PCIE_0_GDSC>; + + resets = <&gcc GCC_PCIE_0_BCR>, + <&gcc GCC_PCIE_0_LINK_DOWN_BCR>; + reset-names = "pci", + "link_down"; + + }; + }; -- 2.34.1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 2/4] dt-bindings: PCI: qcom: Document the Eliza PCIe Controller 2026-05-21 14:05 ` [PATCH 2/4] dt-bindings: PCI: qcom: Document the Eliza PCIe Controller Krishna Chaitanya Chundru @ 2026-05-22 6:50 ` Krzysztof Kozlowski 2026-05-22 9:17 ` Krishna Chaitanya Chundru 0 siblings, 1 reply; 17+ messages in thread From: Krzysztof Kozlowski @ 2026-05-22 6:50 UTC (permalink / raw) To: Krishna Chaitanya Chundru Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On Thu, May 21, 2026 at 07:35:30PM +0530, Krishna Chaitanya Chundru wrote: > +description: > + Qualcomm ELIZA SoC (and compatible) PCIe root complex controller is based on > + the Synopsis DesignWare PCIe IP. > + > +properties: > + compatible: > + const: qcom,pcie-eliza All new pcie compatibles moved to correct format. > + > + reg: > + minItems: 5 > + maxItems: 6 > + > + reg-names: > + minItems: 5 > + items: > + - const: parf # Qualcomm specific registers > + - const: dbi # DesignWare PCIe registers > + - const: elbi # External local bus interface registers > + - const: atu # ATU address space > + - const: config # PCIe configuration space > + - const: mhi # MHI registers > + > + clocks: > + maxItems: 7 > + > + clock-names: > + items: > + - const: aux # Auxiliary clock > + - const: cfg # Configuration clock > + - const: bus_master # Master AXI clock > + - const: bus_slave # Slave AXI clock > + - const: slave_q2a # Slave Q2A clock > + - const: ddrss_sf_tbu # PCIe SF TBU clock > + - const: cnoc_sf_axi # Config NoC PCIe1 AXI clock > + > + interrupts: > + minItems: 8 This should not be flexible. Neither 'reg'. > + maxItems: 9 > + > + interrupt-names: > + minItems: 8 > + items: > + - const: msi0 > + - const: msi1 > + - const: msi2 > + - const: msi3 > + - const: msi4 > + - const: msi5 > + - const: msi6 > + - const: msi7 > + - const: global > + > + resets: > + maxItems: 2 > + > + reset-names: > + items: > + - const: pci # PCIe core reset > + - const: link_down # PCIe link down reset > + > +required: > + - power-domains > + - resets > + - reset-names > + > +allOf: > + - $ref: qcom,pcie-common.yaml# > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/qcom,eliza-gcc.h> > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/interconnect/qcom,eliza-rpmh.h> > + > + soc { > + #address-cells = <2>; > + #size-cells = <2>; > + > + pcie@1c00000 { > + compatible = "qcom,pcie-eliza"; > + reg = <0 0x01c00000 0 0x3000>, > + <0 0x40000000 0 0xf1d>, > + <0 0x40000f20 0 0xa8>, > + <0 0x40001000 0 0x1000>, > + <0 0x40100000 0 0x100000>; > + reg-names = "parf", "dbi", "elbi", "atu", "config"; > + ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>, > + <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x3d00000>; > + > + bus-range = <0x00 0xff>; > + device_type = "pci"; > + linux,pci-domain = <0>; > + num-lanes = <1>; > + > + #address-cells = <3>; > + #size-cells = <2>; > + > + clocks = <&gcc GCC_PCIE_0_AUX_CLK>, > + <&gcc GCC_PCIE_0_CFG_AHB_CLK>, > + <&gcc GCC_PCIE_0_MSTR_AXI_CLK>, > + <&gcc GCC_PCIE_0_SLV_AXI_CLK>, > + <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>, > + <&gcc GCC_DDRSS_PCIE_SF_QTB_CLK>, > + <&gcc GCC_CNOC_PCIE_SF_AXI_CLK>; > + clock-names = "aux", > + "cfg", > + "bus_master", > + "bus_slave", > + "slave_q2a", > + "ddrss_sf_tbu", > + "cnoc_sf_axi"; > + > + dma-coherent; > + > + interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 478 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 479 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 653 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "msi0", "msi1", "msi2", "msi3", > + "msi4", "msi5", "msi6", "msi7", "global"; > + #interrupt-cells = <1>; > + interrupt-map-mask = <0 0 0 0x7>; > + interrupt-map = <0 0 0 1 &intc 0 0 0 564 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ > + <0 0 0 2 &intc 0 0 0 565 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ > + <0 0 0 3 &intc 0 0 0 566 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ > + <0 0 0 4 &intc 0 0 0 567 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ > + > + interconnects = <&pcie_noc MASTER_PCIE_0 0 &mc_virt SLAVE_EBI1 0>, > + <&gem_noc MASTER_APPSS_PROC 0 &cnoc_main SLAVE_PCIE_0 0>; > + interconnect-names = "pcie-mem", "cpu-pcie"; > + > + iommu-map = <0x0 &apps_smmu 0x1480 0x1>, > + <0x100 &apps_smmu 0x1481 0x1>; > + > + pinctrl-0 = <&pcie0_default_state>; > + pinctrl-names = "default"; > + > + power-domains = <&gcc GCC_PCIE_0_GDSC>; > + > + resets = <&gcc GCC_PCIE_0_BCR>, > + <&gcc GCC_PCIE_0_LINK_DOWN_BCR>; > + reset-names = "pci", > + "link_down"; > + Drop stray blank line. > + }; > + }; > > -- > 2.34.1 > -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 2/4] dt-bindings: PCI: qcom: Document the Eliza PCIe Controller 2026-05-22 6:50 ` Krzysztof Kozlowski @ 2026-05-22 9:17 ` Krishna Chaitanya Chundru 0 siblings, 0 replies; 17+ messages in thread From: Krishna Chaitanya Chundru @ 2026-05-22 9:17 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On 5/22/2026 12:20 PM, Krzysztof Kozlowski wrote: > On Thu, May 21, 2026 at 07:35:30PM +0530, Krishna Chaitanya Chundru wrote: >> +description: >> + Qualcomm ELIZA SoC (and compatible) PCIe root complex controller is based on >> + the Synopsis DesignWare PCIe IP. >> + >> +properties: >> + compatible: >> + const: qcom,pcie-eliza > All new pcie compatibles moved to correct format. Ack, I will change it to qcom,elize-pcie >> + >> + reg: >> + minItems: 5 >> + maxItems: 6 >> + >> + reg-names: >> + minItems: 5 >> + items: >> + - const: parf # Qualcomm specific registers >> + - const: dbi # DesignWare PCIe registers >> + - const: elbi # External local bus interface registers >> + - const: atu # ATU address space >> + - const: config # PCIe configuration space >> + - const: mhi # MHI registers >> + >> + clocks: >> + maxItems: 7 >> + >> + clock-names: >> + items: >> + - const: aux # Auxiliary clock >> + - const: cfg # Configuration clock >> + - const: bus_master # Master AXI clock >> + - const: bus_slave # Slave AXI clock >> + - const: slave_q2a # Slave Q2A clock >> + - const: ddrss_sf_tbu # PCIe SF TBU clock >> + - const: cnoc_sf_axi # Config NoC PCIe1 AXI clock >> + >> + interrupts: >> + minItems: 8 > This should not be flexible. Neither 'reg'. ack I will remove minItems >> + maxItems: 9 >> + >> + interrupt-names: >> + minItems: 8 >> + items: >> + - const: msi0 >> + - const: msi1 >> + - const: msi2 >> + - const: msi3 >> + - const: msi4 >> + - const: msi5 >> + - const: msi6 >> + - const: msi7 >> + - const: global >> + >> + resets: >> + maxItems: 2 >> + >> + reset-names: >> + items: >> + - const: pci # PCIe core reset >> + - const: link_down # PCIe link down reset >> + >> +required: >> + - power-domains >> + - resets >> + - reset-names >> + >> +allOf: >> + - $ref: qcom,pcie-common.yaml# >> + >> +unevaluatedProperties: false >> + >> +examples: >> + - | >> + #include <dt-bindings/clock/qcom,eliza-gcc.h> >> + #include <dt-bindings/interrupt-controller/arm-gic.h> >> + #include <dt-bindings/interconnect/qcom,eliza-rpmh.h> >> + >> + soc { >> + #address-cells = <2>; >> + #size-cells = <2>; >> + >> + pcie@1c00000 { >> + compatible = "qcom,pcie-eliza"; >> + reg = <0 0x01c00000 0 0x3000>, >> + <0 0x40000000 0 0xf1d>, >> + <0 0x40000f20 0 0xa8>, >> + <0 0x40001000 0 0x1000>, >> + <0 0x40100000 0 0x100000>; >> + reg-names = "parf", "dbi", "elbi", "atu", "config"; >> + ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>, >> + <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x3d00000>; >> + >> + bus-range = <0x00 0xff>; >> + device_type = "pci"; >> + linux,pci-domain = <0>; >> + num-lanes = <1>; >> + >> + #address-cells = <3>; >> + #size-cells = <2>; >> + >> + clocks = <&gcc GCC_PCIE_0_AUX_CLK>, >> + <&gcc GCC_PCIE_0_CFG_AHB_CLK>, >> + <&gcc GCC_PCIE_0_MSTR_AXI_CLK>, >> + <&gcc GCC_PCIE_0_SLV_AXI_CLK>, >> + <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>, >> + <&gcc GCC_DDRSS_PCIE_SF_QTB_CLK>, >> + <&gcc GCC_CNOC_PCIE_SF_AXI_CLK>; >> + clock-names = "aux", >> + "cfg", >> + "bus_master", >> + "bus_slave", >> + "slave_q2a", >> + "ddrss_sf_tbu", >> + "cnoc_sf_axi"; >> + >> + dma-coherent; >> + >> + interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 478 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 479 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 653 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; >> + interrupt-names = "msi0", "msi1", "msi2", "msi3", >> + "msi4", "msi5", "msi6", "msi7", "global"; >> + #interrupt-cells = <1>; >> + interrupt-map-mask = <0 0 0 0x7>; >> + interrupt-map = <0 0 0 1 &intc 0 0 0 564 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ >> + <0 0 0 2 &intc 0 0 0 565 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ >> + <0 0 0 3 &intc 0 0 0 566 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ >> + <0 0 0 4 &intc 0 0 0 567 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ >> + >> + interconnects = <&pcie_noc MASTER_PCIE_0 0 &mc_virt SLAVE_EBI1 0>, >> + <&gem_noc MASTER_APPSS_PROC 0 &cnoc_main SLAVE_PCIE_0 0>; >> + interconnect-names = "pcie-mem", "cpu-pcie"; >> + >> + iommu-map = <0x0 &apps_smmu 0x1480 0x1>, >> + <0x100 &apps_smmu 0x1481 0x1>; >> + >> + pinctrl-0 = <&pcie0_default_state>; >> + pinctrl-names = "default"; >> + >> + power-domains = <&gcc GCC_PCIE_0_GDSC>; >> + >> + resets = <&gcc GCC_PCIE_0_BCR>, >> + <&gcc GCC_PCIE_0_LINK_DOWN_BCR>; >> + reset-names = "pci", >> + "link_down"; >> + > Drop stray blank line. ack. - Krishna Chaitanya. >> + }; >> + }; >> >> -- >> 2.34.1 >> -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 3/4] PCI: qcom: Add Support for Eliza 2026-05-21 14:05 [PATCH 0/4] PCI: qcom: Add support for Eliza Krishna Chaitanya Chundru 2026-05-21 14:05 ` [PATCH 1/4] dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy Krishna Chaitanya Chundru 2026-05-21 14:05 ` [PATCH 2/4] dt-bindings: PCI: qcom: Document the Eliza PCIe Controller Krishna Chaitanya Chundru @ 2026-05-21 14:05 ` Krishna Chaitanya Chundru 2026-05-22 6:51 ` Krzysztof Kozlowski 2026-05-21 14:05 ` [PATCH 4/4] phy: qcom: qmp-pcie: Add QMP PCIe PHY support " Krishna Chaitanya Chundru 3 siblings, 1 reply; 17+ messages in thread From: Krishna Chaitanya Chundru @ 2026-05-21 14:05 UTC (permalink / raw) To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci, Krishna Chaitanya Chundru Add support for Eliza soc, which has two PCIe controllers capable of 8GT/s X1 and 8GT/s X2, using the cfg_1_9_0 configuration. Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.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 af6bf5cce65b..40f0a5f247eb 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -2123,6 +2123,7 @@ static int qcom_pcie_resume_noirq(struct device *dev) 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-eliza", .data = &cfg_1_9_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 }, -- 2.34.1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 3/4] PCI: qcom: Add Support for Eliza 2026-05-21 14:05 ` [PATCH 3/4] PCI: qcom: Add Support for Eliza Krishna Chaitanya Chundru @ 2026-05-22 6:51 ` Krzysztof Kozlowski 2026-05-22 9:31 ` Krishna Chaitanya Chundru 0 siblings, 1 reply; 17+ messages in thread From: Krzysztof Kozlowski @ 2026-05-22 6:51 UTC (permalink / raw) To: Krishna Chaitanya Chundru Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On Thu, May 21, 2026 at 07:35:31PM +0530, Krishna Chaitanya Chundru wrote: > Add support for Eliza soc, which has two PCIe controllers capable > of 8GT/s X1 and 8GT/s X2, using the cfg_1_9_0 configuration. > > Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.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 af6bf5cce65b..40f0a5f247eb 100644 > --- a/drivers/pci/controller/dwc/pcie-qcom.c > +++ b/drivers/pci/controller/dwc/pcie-qcom.c > @@ -2123,6 +2123,7 @@ static int qcom_pcie_resume_noirq(struct device *dev) > 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-eliza", .data = &cfg_1_9_0 }, So compatible with sm8550. Why isn't this explained in commit msg of the binding? Anyway, drop the change, pointless. Look how other devices handle this - do you see kaanapali here? No. Best regards, Krzysztof -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 3/4] PCI: qcom: Add Support for Eliza 2026-05-22 6:51 ` Krzysztof Kozlowski @ 2026-05-22 9:31 ` Krishna Chaitanya Chundru 2026-05-22 9:34 ` Krzysztof Kozlowski 0 siblings, 1 reply; 17+ messages in thread From: Krishna Chaitanya Chundru @ 2026-05-22 9:31 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On 5/22/2026 12:21 PM, Krzysztof Kozlowski wrote: > On Thu, May 21, 2026 at 07:35:31PM +0530, Krishna Chaitanya Chundru wrote: >> Add support for Eliza soc, which has two PCIe controllers capable >> of 8GT/s X1 and 8GT/s X2, using the cfg_1_9_0 configuration. >> >> Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.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 af6bf5cce65b..40f0a5f247eb 100644 >> --- a/drivers/pci/controller/dwc/pcie-qcom.c >> +++ b/drivers/pci/controller/dwc/pcie-qcom.c >> @@ -2123,6 +2123,7 @@ static int qcom_pcie_resume_noirq(struct device *dev) >> 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-eliza", .data = &cfg_1_9_0 }, > So compatible with sm8550. Why isn't this explained in commit msg of > the binding? No, PCIe controller is not compatible with sm8550, we are just re using the boot sequence used by the sm8550. > Anyway, drop the change, pointless. Look how other devices handle this - > do you see kaanapali here? No. As we are going to use different dts schema for this controller we can't really re-use like how we have done in kaanapali case. kaanpali is reusing sm8550 schema, where this controller can't use sm8550 schema, as some clocks are different. - Krishna Chaitanya. > > Best regards, > Krzysztof > -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 3/4] PCI: qcom: Add Support for Eliza 2026-05-22 9:31 ` Krishna Chaitanya Chundru @ 2026-05-22 9:34 ` Krzysztof Kozlowski 2026-05-22 10:48 ` Manivannan Sadhasivam 0 siblings, 1 reply; 17+ messages in thread From: Krzysztof Kozlowski @ 2026-05-22 9:34 UTC (permalink / raw) To: Krishna Chaitanya Chundru Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On 22/05/2026 11:31, Krishna Chaitanya Chundru wrote: > > > On 5/22/2026 12:21 PM, Krzysztof Kozlowski wrote: >> On Thu, May 21, 2026 at 07:35:31PM +0530, Krishna Chaitanya Chundru wrote: >>> Add support for Eliza soc, which has two PCIe controllers capable >>> of 8GT/s X1 and 8GT/s X2, using the cfg_1_9_0 configuration. >>> >>> Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.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 af6bf5cce65b..40f0a5f247eb 100644 >>> --- a/drivers/pci/controller/dwc/pcie-qcom.c >>> +++ b/drivers/pci/controller/dwc/pcie-qcom.c >>> @@ -2123,6 +2123,7 @@ static int qcom_pcie_resume_noirq(struct device *dev) >>> 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-eliza", .data = &cfg_1_9_0 }, >> So compatible with sm8550. Why isn't this explained in commit msg of >> the binding? > No, PCIe controller is not compatible with sm8550, we are just re using the boot > sequence used by the sm8550. Then with what it is compatible? You cannot use someone else's match data and claim they are not compatible. This is contradictory to itself. >> Anyway, drop the change, pointless. Look how other devices handle this - >> do you see kaanapali here? No. > As we are going to use different dts schema for this controller we can't > really re-use > like how we have done in kaanapali case. kaanpali is reusing sm8550 schema, where > this controller can't use sm8550 schema, as some clocks are different. OK, schema is different, that's fine and might need some adjustments. However this commit clearly states devices are compatible and this needs to be fixed. Best regards, Krzysztof -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 3/4] PCI: qcom: Add Support for Eliza 2026-05-22 9:34 ` Krzysztof Kozlowski @ 2026-05-22 10:48 ` Manivannan Sadhasivam 2026-05-22 11:03 ` Krzysztof Kozlowski 0 siblings, 1 reply; 17+ messages in thread From: Manivannan Sadhasivam @ 2026-05-22 10:48 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Krishna Chaitanya Chundru, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On Fri, May 22, 2026 at 11:34:30AM +0200, Krzysztof Kozlowski wrote: > On 22/05/2026 11:31, Krishna Chaitanya Chundru wrote: > > > > > > On 5/22/2026 12:21 PM, Krzysztof Kozlowski wrote: > >> On Thu, May 21, 2026 at 07:35:31PM +0530, Krishna Chaitanya Chundru wrote: > >>> Add support for Eliza soc, which has two PCIe controllers capable > >>> of 8GT/s X1 and 8GT/s X2, using the cfg_1_9_0 configuration. > >>> > >>> Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.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 af6bf5cce65b..40f0a5f247eb 100644 > >>> --- a/drivers/pci/controller/dwc/pcie-qcom.c > >>> +++ b/drivers/pci/controller/dwc/pcie-qcom.c > >>> @@ -2123,6 +2123,7 @@ static int qcom_pcie_resume_noirq(struct device *dev) > >>> 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-eliza", .data = &cfg_1_9_0 }, > >> So compatible with sm8550. Why isn't this explained in commit msg of > >> the binding? > > No, PCIe controller is not compatible with sm8550, we are just re using the boot > > sequence used by the sm8550. > > Then with what it is compatible? You cannot use someone else's match > data and claim they are not compatible. This is contradictory to itself. > 'cfg_1_9_0' is the match data of base PCIe IP v1.9.0, not just SM8550. The 'ops' callbacks for 'cfg_1_9_0' are compatible with PCIe IPs used in many SoCs such as SM8550, SM8450, SM8350, SM8250, SM8150, SDX55, SC8180X, and SC7280. And Eliza is also falling into the same category. @Krishna: You need to reword the commit message to clearly state the fact that PCIe controller found in Eliza SoC is compatible with base IP version 1.9.0, so it reuses 'cfg_1_9_0' match data. - Mani -- மணிவண்ணன் சதாசிவம் -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 3/4] PCI: qcom: Add Support for Eliza 2026-05-22 10:48 ` Manivannan Sadhasivam @ 2026-05-22 11:03 ` Krzysztof Kozlowski 2026-05-25 6:11 ` Manivannan Sadhasivam 0 siblings, 1 reply; 17+ messages in thread From: Krzysztof Kozlowski @ 2026-05-22 11:03 UTC (permalink / raw) To: Manivannan Sadhasivam Cc: Krishna Chaitanya Chundru, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On 22/05/2026 12:48, Manivannan Sadhasivam wrote: > On Fri, May 22, 2026 at 11:34:30AM +0200, Krzysztof Kozlowski wrote: >> On 22/05/2026 11:31, Krishna Chaitanya Chundru wrote: >>> >>> >>> On 5/22/2026 12:21 PM, Krzysztof Kozlowski wrote: >>>> On Thu, May 21, 2026 at 07:35:31PM +0530, Krishna Chaitanya Chundru wrote: >>>>> Add support for Eliza soc, which has two PCIe controllers capable >>>>> of 8GT/s X1 and 8GT/s X2, using the cfg_1_9_0 configuration. >>>>> >>>>> Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.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 af6bf5cce65b..40f0a5f247eb 100644 >>>>> --- a/drivers/pci/controller/dwc/pcie-qcom.c >>>>> +++ b/drivers/pci/controller/dwc/pcie-qcom.c >>>>> @@ -2123,6 +2123,7 @@ static int qcom_pcie_resume_noirq(struct device *dev) >>>>> 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-eliza", .data = &cfg_1_9_0 }, >>>> So compatible with sm8550. Why isn't this explained in commit msg of >>>> the binding? >>> No, PCIe controller is not compatible with sm8550, we are just re using the boot >>> sequence used by the sm8550. >> >> Then with what it is compatible? You cannot use someone else's match >> data and claim they are not compatible. This is contradictory to itself. >> > > 'cfg_1_9_0' is the match data of base PCIe IP v1.9.0, not just SM8550. The 'ops' > callbacks for 'cfg_1_9_0' are compatible with PCIe IPs used in many SoCs such as > SM8550, SM8450, SM8350, SM8250, SM8150, SDX55, SC8180X, and SC7280. And Eliza is > also falling into the same category. > And if all implementations uses the same SW interface, why are you claiming these are not compatible? I don't care with which device this is compatible, BTW. I do care about incomplete or incorrect hardware description. Best regards, Krzysztof -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 3/4] PCI: qcom: Add Support for Eliza 2026-05-22 11:03 ` Krzysztof Kozlowski @ 2026-05-25 6:11 ` Manivannan Sadhasivam 2026-05-25 12:22 ` Krzysztof Kozlowski 0 siblings, 1 reply; 17+ messages in thread From: Manivannan Sadhasivam @ 2026-05-25 6:11 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Krishna Chaitanya Chundru, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On Fri, May 22, 2026 at 01:03:09PM +0200, Krzysztof Kozlowski wrote: > On 22/05/2026 12:48, Manivannan Sadhasivam wrote: > > On Fri, May 22, 2026 at 11:34:30AM +0200, Krzysztof Kozlowski wrote: > >> On 22/05/2026 11:31, Krishna Chaitanya Chundru wrote: > >>> > >>> > >>> On 5/22/2026 12:21 PM, Krzysztof Kozlowski wrote: > >>>> On Thu, May 21, 2026 at 07:35:31PM +0530, Krishna Chaitanya Chundru wrote: > >>>>> Add support for Eliza soc, which has two PCIe controllers capable > >>>>> of 8GT/s X1 and 8GT/s X2, using the cfg_1_9_0 configuration. > >>>>> > >>>>> Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.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 af6bf5cce65b..40f0a5f247eb 100644 > >>>>> --- a/drivers/pci/controller/dwc/pcie-qcom.c > >>>>> +++ b/drivers/pci/controller/dwc/pcie-qcom.c > >>>>> @@ -2123,6 +2123,7 @@ static int qcom_pcie_resume_noirq(struct device *dev) > >>>>> 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-eliza", .data = &cfg_1_9_0 }, > >>>> So compatible with sm8550. Why isn't this explained in commit msg of > >>>> the binding? > >>> No, PCIe controller is not compatible with sm8550, we are just re using the boot > >>> sequence used by the sm8550. > >> > >> Then with what it is compatible? You cannot use someone else's match > >> data and claim they are not compatible. This is contradictory to itself. > >> > > > > 'cfg_1_9_0' is the match data of base PCIe IP v1.9.0, not just SM8550. The 'ops' > > callbacks for 'cfg_1_9_0' are compatible with PCIe IPs used in many SoCs such as > > SM8550, SM8450, SM8350, SM8250, SM8150, SDX55, SC8180X, and SC7280. And Eliza is > > also falling into the same category. > > > And if all implementations uses the same SW interface, why are you > claiming these are not compatible? > I didn't 'claim' these SoCs are not compatible. In fact, I explicitly said that Eliza is compatible with the base IP v1.9.0. But the resources such as clocks, regulators might be different between them, though the SWI is compatible. So Eliza deserves a new compatible. Also, the direct baseline of Eliza is not supported in upstream. So by 'compatible', if you are referring to 'fallback' in DT, then using SM8750 would be appropriate. - Mani -- மணிவண்ணன் சதாசிவம் -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 3/4] PCI: qcom: Add Support for Eliza 2026-05-25 6:11 ` Manivannan Sadhasivam @ 2026-05-25 12:22 ` Krzysztof Kozlowski 0 siblings, 0 replies; 17+ messages in thread From: Krzysztof Kozlowski @ 2026-05-25 12:22 UTC (permalink / raw) To: Manivannan Sadhasivam Cc: Krishna Chaitanya Chundru, Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On 25/05/2026 08:11, Manivannan Sadhasivam wrote: > On Fri, May 22, 2026 at 01:03:09PM +0200, Krzysztof Kozlowski wrote: >> On 22/05/2026 12:48, Manivannan Sadhasivam wrote: >>> On Fri, May 22, 2026 at 11:34:30AM +0200, Krzysztof Kozlowski wrote: >>>> On 22/05/2026 11:31, Krishna Chaitanya Chundru wrote: >>>>> >>>>> >>>>> On 5/22/2026 12:21 PM, Krzysztof Kozlowski wrote: >>>>>> On Thu, May 21, 2026 at 07:35:31PM +0530, Krishna Chaitanya Chundru wrote: >>>>>>> Add support for Eliza soc, which has two PCIe controllers capable >>>>>>> of 8GT/s X1 and 8GT/s X2, using the cfg_1_9_0 configuration. >>>>>>> >>>>>>> Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.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 af6bf5cce65b..40f0a5f247eb 100644 >>>>>>> --- a/drivers/pci/controller/dwc/pcie-qcom.c >>>>>>> +++ b/drivers/pci/controller/dwc/pcie-qcom.c >>>>>>> @@ -2123,6 +2123,7 @@ static int qcom_pcie_resume_noirq(struct device *dev) >>>>>>> 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-eliza", .data = &cfg_1_9_0 }, >>>>>> So compatible with sm8550. Why isn't this explained in commit msg of >>>>>> the binding? >>>>> No, PCIe controller is not compatible with sm8550, we are just re using the boot >>>>> sequence used by the sm8550. >>>> >>>> Then with what it is compatible? You cannot use someone else's match >>>> data and claim they are not compatible. This is contradictory to itself. >>>> >>> >>> 'cfg_1_9_0' is the match data of base PCIe IP v1.9.0, not just SM8550. The 'ops' >>> callbacks for 'cfg_1_9_0' are compatible with PCIe IPs used in many SoCs such as >>> SM8550, SM8450, SM8350, SM8250, SM8150, SDX55, SC8180X, and SC7280. And Eliza is >>> also falling into the same category. >>> >> And if all implementations uses the same SW interface, why are you >> claiming these are not compatible? >> > > I didn't 'claim' these SoCs are not compatible. In fact, I explicitly said that > Eliza is compatible with the base IP v1.9.0. But the resources such as clocks, > regulators might be different between them, though the SWI is compatible. So > Eliza deserves a new compatible. Whether Eliza deserves a new compatible was NEVER a part of discussion here. Bindings are very clear here and do not leave any room for interpretation. We discuss ONLY this patch. > > Also, the direct baseline of Eliza is not supported in upstream. So by > 'compatible', if you are referring to 'fallback' in DT, then using SM8750 would > be appropriate. You still won't get an entry for sm8750, so not sure where does that bring you... Best regards, Krzysztof -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 4/4] phy: qcom: qmp-pcie: Add QMP PCIe PHY support for Eliza 2026-05-21 14:05 [PATCH 0/4] PCI: qcom: Add support for Eliza Krishna Chaitanya Chundru ` (2 preceding siblings ...) 2026-05-21 14:05 ` [PATCH 3/4] PCI: qcom: Add Support for Eliza Krishna Chaitanya Chundru @ 2026-05-21 14:05 ` Krishna Chaitanya Chundru 2026-05-25 8:42 ` Dmitry Baryshkov 3 siblings, 1 reply; 17+ messages in thread From: Krishna Chaitanya Chundru @ 2026-05-21 14:05 UTC (permalink / raw) To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci, Krishna Chaitanya Chundru Add QMP PCIe PHY support for the Eliza SoC. Introduce a new Gen3x1 PHY configuration with Eliza-specific initialization tables, and reuse the existing sm8550 Gen3x2 configuration for the Gen3x2 PHY instance. Also add the missing QPHY_PCIE_V6_PCS_PCIE_INT_AUX_CLK_CONFIG1 register definition to the PCIe V6 PCS header. Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com> --- drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 139 ++++++++++++++++++++++++ drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6.h | 1 + 2 files changed, 140 insertions(+) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c index fed2fc9bb311..113c5f8f1dbc 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c @@ -198,6 +198,112 @@ static const struct qmp_phy_init_tbl msm8998_pcie_pcs_tbl[] = { QMP_PHY_INIT_CFG(QPHY_V3_PCS_SIGDET_CNTRL, 0x03), }; +static const struct qmp_phy_init_tbl eliza_qmp_gen3x1_pcie_serdes_tbl[] = { + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE1_MODE1, 0x93), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE2_MODE1, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CP_CTRL_MODE1, 0x02), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_RCTRL_MODE1, 0x16), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_CCTRL_MODE1, 0x36), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CORECLK_DIV_MODE1, 0x04), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP1_MODE1, 0x0a), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP2_MODE1, 0x1a), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DEC_START_MODE1, 0x34), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START1_MODE1, 0x55), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START2_MODE1, 0x55), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START3_MODE1, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_HSCLK_SEL_1, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_VCO_TUNE1_MODE1, 0xB4), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_VCO_TUNE2_MODE1, 0x03), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE1_MODE0, 0xf8), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE2_MODE0, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CP_CTRL_MODE0, 0x02), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_RCTRL_MODE0, 0x16), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_CCTRL_MODE0, 0x36), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP1_MODE0, 0x04), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP2_MODE0, 0x0d), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DEC_START_MODE0, 0x41), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START1_MODE0, 0xab), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START2_MODE0, 0xaa), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START3_MODE0, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_VCO_TUNE1_MODE0, 0x24), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_BG_TIMER, 0x0a), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_EN_CENTER, 0x01), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_PER1, 0x62), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_PER2, 0x02), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CLK_ENABLE1, 0x90), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SYS_CLK_CTRL, 0x82), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_IVCO, 0x07), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SYSCLK_EN_SEL, 0x08), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP_EN, 0x42), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_VCO_TUNE_MAP, 0x14), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CLK_SELECT, 0x34), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CORE_CLK_EN, 0xA0), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CMN_CONFIG_1, 0x16), + QMP_PHY_INIT_CFG(QSERDES_V6_COM_ADDITIONAL_MISC_3, 0x0F), +}; + +static const struct qmp_phy_init_tbl eliza_qmp_gen3x1_pcie_pcs_tbl[] = { + QMP_PHY_INIT_CFG(QPHY_V6_PCS_REFGEN_REQ_CONFIG1, 0x05), + QMP_PHY_INIT_CFG(QPHY_V6_PCS_G3S2_PRE_GAIN, 0x2E), + QMP_PHY_INIT_CFG(QPHY_V6_PCS_RX_SIGDET_LVL, 0x77), + QMP_PHY_INIT_CFG(QPHY_V6_PCS_RATE_SLEW_CNTRL1, 0x0B), + QMP_PHY_INIT_CFG(QPHY_V6_PCS_PCS_TX_RX_CONFIG, 0x0C), + QMP_PHY_INIT_CFG(QPHY_V6_PCS_EQ_CONFIG2, 0x0F), +}; + +static const struct qmp_phy_init_tbl eliza_qmp_gen3x1_pcie_misc_pcs_tbl[] = { + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_PCS_PCIE_POWER_STATE_CONFIG2, 0x1D), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_PCS_PCIE_ENDPOINT_REFCLK_DRIVE, 0xC1), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_PCS_PCIE_INT_AUX_CLK_CONFIG1, 0x00), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_PCS_PCIE_OSC_DTCT_ACTIONS, 0x00), + QMP_PHY_INIT_CFG(QPHY_PCIE_V6_PCS_PCIE_RXEQEVAL_TIME, 0x27), +}; + +static const struct qmp_phy_init_tbl eliza_qmp_gen3x1_pcie_tx_tbl[] = { + QMP_PHY_INIT_CFG(QSERDES_V6_TX_RES_CODE_LANE_OFFSET_TX, 0x17), + QMP_PHY_INIT_CFG(QSERDES_V6_TX_RES_CODE_LANE_OFFSET_RX, 0x06), + QMP_PHY_INIT_CFG(QSERDES_V6_TX_LANE_MODE_1, 0x15), + QMP_PHY_INIT_CFG(QSERDES_V6_TX_LANE_MODE_4, 0x3F), + QMP_PHY_INIT_CFG(QSERDES_V6_TX_RCV_DETECT_LVL_2, 0x12), + QMP_PHY_INIT_CFG(QSERDES_V6_TX_PI_QEC_CTRL, 0x02), +}; + +static const struct qmp_phy_init_tbl eliza_qmp_gen3x1_pcie_rx_tbl[] = { + QMP_PHY_INIT_CFG(QSERDES_V6_RX_UCDR_FO_GAIN, 0x09), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_UCDR_SO_GAIN, 0x05), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_UCDR_SO_SATURATION_AND_ENABLE, 0x7F), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_UCDR_PI_CONTROLS, 0xF0), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_UCDR_SB2_THRESH1, 0x08), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_UCDR_SB2_THRESH2, 0x08), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_AUX_DATA_TCOARSE_TFINE, 0x30), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_TX_ADAPT_POST_THRESH, 0xF0), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_VGA_CAL_CNTRL1, 0x04), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_VGA_CAL_CNTRL2, 0x0F), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_GM_CAL, 0x0D), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_EQU_ADAPTOR_CNTRL2, 0x0E), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_EQU_ADAPTOR_CNTRL3, 0x4A), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_EQU_ADAPTOR_CNTRL4, 0x0A), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_IDAC_TSETTLE_LOW, 0x07), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_EQ_OFFSET_ADAPTOR_CNTRL1, 0x14), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_SIDGET_ENABLES, 0x0C), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_00_LOW, 0x3F), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_00_HIGH, 0xBF), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_00_HIGH2, 0xBF), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_00_HIGH3, 0xB7), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_00_HIGH4, 0xEA), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_01_LOW, 0xDC), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_01_HIGH, 0x5C), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_01_HIGH2, 0x9C), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_01_HIGH3, 0x1A), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_01_HIGH4, 0x89), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_10_HIGH, 0x94), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_10_HIGH2, 0x5B), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_10_HIGH3, 0x1A), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_RX_MODE_10_HIGH4, 0x89), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_DFE_CTLE_POST_CAL_OFFSET, 0x38), + QMP_PHY_INIT_CFG(QSERDES_V6_RX_SIGDET_CAL_TRIM, 0x08), +}; + static const struct qmp_phy_init_tbl ipq6018_pcie_serdes_tbl[] = { QMP_PHY_INIT_CFG(QSERDES_PLL_SSC_PER1, 0x7d), QMP_PHY_INIT_CFG(QSERDES_PLL_SSC_PER2, 0x01), @@ -3532,6 +3638,33 @@ static const struct qmp_pcie_offsets qmp_pcie_offsets_v8_50 = { .txrxz = 0xd000, }; +static const struct qmp_phy_cfg eliza_qmp_gen3x1_pciephy_cfg = { + .lanes = 1, + + .offsets = &qmp_pcie_offsets_v5, + + .tbls = { + .serdes = eliza_qmp_gen3x1_pcie_serdes_tbl, + .serdes_num = ARRAY_SIZE(eliza_qmp_gen3x1_pcie_serdes_tbl), + .tx = eliza_qmp_gen3x1_pcie_tx_tbl, + .tx_num = ARRAY_SIZE(eliza_qmp_gen3x1_pcie_tx_tbl), + .rx = eliza_qmp_gen3x1_pcie_rx_tbl, + .rx_num = ARRAY_SIZE(eliza_qmp_gen3x1_pcie_rx_tbl), + .pcs = eliza_qmp_gen3x1_pcie_pcs_tbl, + .pcs_num = ARRAY_SIZE(eliza_qmp_gen3x1_pcie_pcs_tbl), + .pcs_misc = eliza_qmp_gen3x1_pcie_misc_pcs_tbl, + .pcs_misc_num = ARRAY_SIZE(eliza_qmp_gen3x1_pcie_misc_pcs_tbl), + }, + .reset_list = sdm845_pciephy_reset_l, + .num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l), + .vreg_list = qmp_phy_vreg_l, + .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l), + .regs = pciephy_v6_regs_layout, + + .pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL, + .phy_status = PHYSTATUS, +}; + static const struct qmp_phy_cfg ipq8074_pciephy_cfg = { .lanes = 1, @@ -5399,6 +5532,12 @@ static int qmp_pcie_probe(struct platform_device *pdev) static const struct of_device_id qmp_pcie_of_match_table[] = { { + .compatible = "qcom,eliza-qmp-gen3x1-pcie-phy", + .data = &eliza_qmp_gen3x1_pciephy_cfg, + }, { + .compatible = "qcom,eliza-qmp-gen3x2-pcie-phy", + .data = &sm8550_qmp_gen3x2_pciephy_cfg, + }, { .compatible = "qcom,glymur-qmp-gen4x2-pcie-phy", .data = &glymur_qmp_gen4x2_pciephy_cfg, }, { diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6.h b/drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6.h index 45397cb3c0c6..17a0f9d18acf 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6.h +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6.h @@ -12,6 +12,7 @@ #define QPHY_PCIE_V6_PCS_PCIE_POWER_STATE_CONFIG2 0x0c #define QPHY_PCIE_V6_PCS_PCIE_POWER_STATE_CONFIG4 0x14 #define QPHY_PCIE_V6_PCS_PCIE_ENDPOINT_REFCLK_DRIVE 0x20 +#define QPHY_PCIE_V6_PCS_PCIE_INT_AUX_CLK_CONFIG1 0x54 #define QPHY_PCIE_V6_PCS_PCIE_OSC_DTCT_ACTIONS 0x94 #define QPHY_PCIE_V6_PCS_LANE1_INSIG_SW_CTRL2 0x024 -- 2.34.1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 4/4] phy: qcom: qmp-pcie: Add QMP PCIe PHY support for Eliza 2026-05-21 14:05 ` [PATCH 4/4] phy: qcom: qmp-pcie: Add QMP PCIe PHY support " Krishna Chaitanya Chundru @ 2026-05-25 8:42 ` Dmitry Baryshkov 0 siblings, 0 replies; 17+ messages in thread From: Dmitry Baryshkov @ 2026-05-25 8:42 UTC (permalink / raw) To: Krishna Chaitanya Chundru Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Lorenzo Pieralisi, Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Helgaas, Bjorn Andersson, linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci On Thu, May 21, 2026 at 07:35:32PM +0530, Krishna Chaitanya Chundru wrote: > Add QMP PCIe PHY support for the Eliza SoC. Introduce a new Gen3x1 PHY > configuration with Eliza-specific initialization tables, and reuse the > existing sm8550 Gen3x2 configuration for the Gen3x2 PHY instance. > > Also add the missing QPHY_PCIE_V6_PCS_PCIE_INT_AUX_CLK_CONFIG1 register > definition to the PCIe V6 PCS header. > > Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com> > --- > drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 139 ++++++++++++++++++++++++ > drivers/phy/qualcomm/phy-qcom-qmp-pcs-pcie-v6.h | 1 + > 2 files changed, 140 insertions(+) > > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c > index fed2fc9bb311..113c5f8f1dbc 100644 > --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c > @@ -198,6 +198,112 @@ static const struct qmp_phy_init_tbl msm8998_pcie_pcs_tbl[] = { > QMP_PHY_INIT_CFG(QPHY_V3_PCS_SIGDET_CNTRL, 0x03), > }; > > +static const struct qmp_phy_init_tbl eliza_qmp_gen3x1_pcie_serdes_tbl[] = { > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE1_MODE1, 0x93), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE2_MODE1, 0x01), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CP_CTRL_MODE1, 0x02), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_RCTRL_MODE1, 0x16), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_CCTRL_MODE1, 0x36), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CORECLK_DIV_MODE1, 0x04), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP1_MODE1, 0x0a), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP2_MODE1, 0x1a), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DEC_START_MODE1, 0x34), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START1_MODE1, 0x55), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START2_MODE1, 0x55), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START3_MODE1, 0x01), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_HSCLK_SEL_1, 0x01), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_VCO_TUNE1_MODE1, 0xB4), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_VCO_TUNE2_MODE1, 0x03), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE1_MODE0, 0xf8), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_SSC_STEP_SIZE2_MODE0, 0x01), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CP_CTRL_MODE0, 0x02), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_RCTRL_MODE0, 0x16), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_PLL_CCTRL_MODE0, 0x36), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP1_MODE0, 0x04), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_LOCK_CMP2_MODE0, 0x0d), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DEC_START_MODE0, 0x41), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START1_MODE0, 0xab), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START2_MODE0, 0xaa), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_DIV_FRAC_START3_MODE0, 0x01), [...] > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CORE_CLK_EN, 0xA0), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_CMN_CONFIG_1, 0x16), > + QMP_PHY_INIT_CFG(QSERDES_V6_COM_ADDITIONAL_MISC_3, 0x0F), lowercase all the hex. Be uniform, please. > +}; > + -- With best wishes Dmitry -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2026-05-25 12:22 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-21 14:05 [PATCH 0/4] PCI: qcom: Add support for Eliza Krishna Chaitanya Chundru 2026-05-21 14:05 ` [PATCH 1/4] dt-bindings: phy: sc8280xp-qmp-pcie: Document Eliza PCIe phy Krishna Chaitanya Chundru 2026-05-21 14:21 ` sashiko-bot 2026-05-22 6:46 ` Krzysztof Kozlowski 2026-05-21 14:05 ` [PATCH 2/4] dt-bindings: PCI: qcom: Document the Eliza PCIe Controller Krishna Chaitanya Chundru 2026-05-22 6:50 ` Krzysztof Kozlowski 2026-05-22 9:17 ` Krishna Chaitanya Chundru 2026-05-21 14:05 ` [PATCH 3/4] PCI: qcom: Add Support for Eliza Krishna Chaitanya Chundru 2026-05-22 6:51 ` Krzysztof Kozlowski 2026-05-22 9:31 ` Krishna Chaitanya Chundru 2026-05-22 9:34 ` Krzysztof Kozlowski 2026-05-22 10:48 ` Manivannan Sadhasivam 2026-05-22 11:03 ` Krzysztof Kozlowski 2026-05-25 6:11 ` Manivannan Sadhasivam 2026-05-25 12:22 ` Krzysztof Kozlowski 2026-05-21 14:05 ` [PATCH 4/4] phy: qcom: qmp-pcie: Add QMP PCIe PHY support " Krishna Chaitanya Chundru 2026-05-25 8:42 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox