* [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC
@ 2026-06-30 19:02 Sushrut Shree Trivedi
2026-06-30 19:02 ` [PATCH 1/9] dt-bindings: phy: sc8280xp-qmp-pcie: Document Shikra PCIe phy Sushrut Shree Trivedi
` (8 more replies)
0 siblings, 9 replies; 24+ messages in thread
From: Sushrut Shree Trivedi @ 2026-06-30 19:02 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Sushrut Shree Trivedi
Add PCIe support for Shikra target, by adding dt-bindings for phy,
controller and corresponding phy & controller drivers/device-tree
changes.
Shikra RC is connected to TC9563 PCIe switch on all three
EVK variants: CQS, CQM and IQS. The individual downstream ports
of TC9563 connect like below:
DSP1: M.2 B-Key for 5G Modem
DSP2: M.2 M-Key for NVMe
DSP3: Embedded ethernet device
Power and reset to M.2 B and M.2 M slot are controlled via
TC9563 GPIO's. Hence, add DT nodes to enable TC9563 switch
and include corresponding changes to configure power/reset
to TC9563 endpoints as part of power on sequence.
Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
---
Sushrut Shree Trivedi (9):
dt-bindings: phy: sc8280xp-qmp-pcie: Document Shikra PCIe phy
dt-bindings: PCI: qcom: Document the Shikra PCIe Controller
dt-bindings: PCI: Add bindings for endpoint gpios
PCI: qcom: Add support for Shikra
phy: qcom: qmp-pcie: Add QMP PCIe PHY support for Shikra
PCI/pwrctrl: tc9563: Add API to control endpoint power and reset
arm64: dts: qcom: shikra: Add PCIe PHY and controller nodes
arm64: dts: qcom: shikra-evk: Add TC9563 PCIe switch node for PCIe
arm64: dts: qcom: shikra-(cqm/cqs/iqs)-evk: Enable PCIe PHY node
.../devicetree/bindings/pci/qcom,shikra-pcie.yaml | 211 +++++++++++++++++++++
.../devicetree/bindings/pci/toshiba,tc9563.yaml | 22 ++-
.../bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 2 +
arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts | 7 +
arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts | 7 +
arch/arm64/boot/dts/qcom/shikra-evk.dtsi | 152 +++++++++++++++
arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts | 7 +
arch/arm64/boot/dts/qcom/shikra.dtsi | 154 +++++++++++++++
drivers/pci/controller/dwc/pcie-qcom.c | 1 +
drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c | 152 ++++++++++++---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 73 +++++++
11 files changed, 764 insertions(+), 24 deletions(-)
---
base-commit: 565fa02f75448ce1ddd18bda6b31ad985cf75411
change-id: 20260701-shikra-upstream-14b8668f1001
Best regards,
--
Sushrut Shree Trivedi <sushrut.trivedi@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] 24+ messages in thread
* [PATCH 1/9] dt-bindings: phy: sc8280xp-qmp-pcie: Document Shikra PCIe phy
2026-06-30 19:02 [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC Sushrut Shree Trivedi
@ 2026-06-30 19:02 ` Sushrut Shree Trivedi
2026-07-01 9:50 ` Bartosz Golaszewski
2026-06-30 19:02 ` [PATCH 2/9] dt-bindings: PCI: qcom: Document the Shikra PCIe Controller Sushrut Shree Trivedi
` (7 subsequent siblings)
8 siblings, 1 reply; 24+ messages in thread
From: Sushrut Shree Trivedi @ 2026-06-30 19:02 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Sushrut Shree Trivedi
Document the compatible of the Shikra PCIe phy which supports
Gen2x1.
Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
---
Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
index 108cf9dc86ea..b9b0fa26347b 100644
--- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
@@ -34,6 +34,7 @@ properties:
- qcom,sdm845-qmp-pcie-phy
- qcom,sdx55-qmp-pcie-phy
- qcom,sdx65-qmp-gen4x2-pcie-phy
+ - qcom,shikra-qmp-gen2x1-pcie-phy
- qcom,sm8150-qmp-gen3x1-pcie-phy
- qcom,sm8150-qmp-gen3x2-pcie-phy
- qcom,sm8250-qmp-gen3x1-pcie-phy
@@ -166,6 +167,7 @@ allOf:
- qcom,sdm845-qhp-pcie-phy
- qcom,sdm845-qmp-pcie-phy
- qcom,sdx55-qmp-pcie-phy
+ - qcom,shikra-qmp-gen2x1-pcie-phy
- qcom,sm8150-qmp-gen3x1-pcie-phy
- qcom,sm8150-qmp-gen3x2-pcie-phy
- qcom,sm8250-qmp-gen3x1-pcie-phy
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 2/9] dt-bindings: PCI: qcom: Document the Shikra PCIe Controller
2026-06-30 19:02 [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC Sushrut Shree Trivedi
2026-06-30 19:02 ` [PATCH 1/9] dt-bindings: phy: sc8280xp-qmp-pcie: Document Shikra PCIe phy Sushrut Shree Trivedi
@ 2026-06-30 19:02 ` Sushrut Shree Trivedi
2026-06-30 19:18 ` Bjorn Helgaas
` (2 more replies)
2026-06-30 19:02 ` [PATCH 3/9] dt-bindings: PCI: Add bindings for endpoint gpios Sushrut Shree Trivedi
` (6 subsequent siblings)
8 siblings, 3 replies; 24+ messages in thread
From: Sushrut Shree Trivedi @ 2026-06-30 19:02 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Sushrut Shree Trivedi
Add a dedicated schema for the PCIe controller found on the Shikra
platform.
Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
---
.../devicetree/bindings/pci/qcom,shikra-pcie.yaml | 211 +++++++++++++++++++++
1 file changed, 211 insertions(+)
diff --git a/Documentation/devicetree/bindings/pci/qcom,shikra-pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,shikra-pcie.yaml
new file mode 100644
index 000000000000..f9d1dba9dd2e
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/qcom,shikra-pcie.yaml
@@ -0,0 +1,211 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/qcom,shikra-pcie.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Shikra PCI Express Root Complex
+
+maintainers:
+ - Bjorn Andersson <andersson@kernel.org>
+ - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+
+description:
+ Qualcomm Shikra SoC (and compatible) PCIe root complex controller is based on
+ the Synopsys DesignWare PCIe IP.
+
+properties:
+ compatible:
+ const: qcom,shikra-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:
+ minItems: 7
+ maxItems: 9
+
+ clock-names:
+ minItems: 7
+ 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_memnoc_pcie # PCIe SF MEMNOC clock
+ - const: tile # PCIe tile SYS NoC clock
+ - const: qmip_pcie_ahb # QMIP PCIe AHB 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:
+ minItems: 1
+ maxItems: 2
+
+ reset-names:
+ minItems: 1
+ 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,dispcc-qcm2290.h>
+ #include <dt-bindings/clock/qcom,qcm2290-gpucc.h>
+ #include <dt-bindings/clock/qcom,rpmcc.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ pcie@45e8000 {
+ device_type = "pci";
+ compatible = "qcom,shikra-pcie";
+ reg = <0x0 0x045e8000 0x0 0x3000>,
+ <0x0 0x60000000 0x0 0xf1d>,
+ <0x0 0x60000f20 0x0 0xa8>,
+ <0x0 0x60001000 0x0 0x1000>,
+ <0x0 0x60100000 0x0 0x100000>,
+ <0x0 0x045eb000 0x0 0x1000>;
+ reg-names = "parf",
+ "dbi",
+ "elbi",
+ "atu",
+ "config",
+ "mhi";
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>,
+ <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x3d00000>,
+ <0x03000000 0x4 0x00000000 0x4 0x00000000 0x3 0x0000000>;
+ bus-range = <0x00 0xff>;
+
+ linux,pci-domain = <0>;
+ num-lanes = <1>;
+
+ interrupts = <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 492 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 493 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 494 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 497 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 498 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "msi0",
+ "msi1",
+ "msi2",
+ "msi3",
+ "msi4",
+ "msi5",
+ "msi6",
+ "msi7",
+ "global";
+
+ interrupt-map = <0 0 0 1 &intc 0 0 0 499 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &intc 0 0 0 500 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &intc 0 0 0 501 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &intc 0 0 0 502 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-map-mask = <0 0 0 0x7>;
+ #interrupt-cells = <1>;
+
+ clocks = <&gcc GCC_PCIE_AUX_CLK>,
+ <&gcc GCC_PCIE_CFG_AHB_CLK>,
+ <&gcc GCC_PCIE_MSTR_AXI_CLK>,
+ <&gcc GCC_PCIE_SLV_AXI_CLK>,
+ <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>,
+ <&gcc GCC_DDRSS_MEMNOC_PCIE_SF_CLK>,
+ <&gcc GCC_PCIE_TILE_AXI_SYS_NOC_CLK>,
+ <&gcc GCC_QMIP_PCIE_CFG_AHB_CLK>;
+ clock-names = "aux",
+ "cfg",
+ "bus_master",
+ "bus_slave",
+ "slave_q2a",
+ "ddrss_memnoc_pcie",
+ "tile",
+ "qmip_pcie_ahb";
+
+ assigned-clocks = <&gcc GCC_PCIE_AUX_CLK>;
+ assigned-clock-rates = <19200000>;
+
+ interconnects = <&system_noc MASTER_PCIE2_0 RPM_ALWAYS_TAG
+ &mc_virt SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
+ <&mem_noc MASTER_AMPSS_M0 RPM_ACTIVE_TAG
+ &config_noc SLAVE_PCIE2_0 RPM_ACTIVE_TAG>;
+
+ interconnect-names = "pcie-mem",
+ "cpu-pcie";
+
+ iommu-map = <0x0 &apps_smmu 0x800 0x1>,
+ <0x100 &apps_smmu 0x801 0x1>;
+
+ resets = <&gcc GCC_PCIE_BCR>;
+ reset-names = "pci";
+
+ power-domains = <&gcc GCC_PCIE_GDSC>;
+
+ max-link-speed = <2>;
+
+ operating-points-v2 = <&pcie_opp_table>;
+
+ status = "disabled";
+
+ pcie_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ /* GEN 1 x1 */
+ opp-2500000 {
+ opp-hz = /bits/ 64 <2500000>;
+ required-opps = <&rpmpd_opp_nom>;
+ opp-peak-kBps = <250000 1>;
+ opp-level = <1>;
+ };
+
+ /* GEN 2 x1 */
+ opp-5000000 {
+ opp-hz = /bits/ 64 <5000000>;
+ required-opps = <&rpmpd_opp_nom>;
+ opp-peak-kBps = <500000 1>;
+ opp-level = <2>;
+ };
+ };
+ };
+ };
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 3/9] dt-bindings: PCI: Add bindings for endpoint gpios
2026-06-30 19:02 [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC Sushrut Shree Trivedi
2026-06-30 19:02 ` [PATCH 1/9] dt-bindings: phy: sc8280xp-qmp-pcie: Document Shikra PCIe phy Sushrut Shree Trivedi
2026-06-30 19:02 ` [PATCH 2/9] dt-bindings: PCI: qcom: Document the Shikra PCIe Controller Sushrut Shree Trivedi
@ 2026-06-30 19:02 ` Sushrut Shree Trivedi
2026-06-30 19:22 ` Bjorn Helgaas
` (2 more replies)
2026-06-30 19:02 ` [PATCH 4/9] PCI: qcom: Add support for Shikra Sushrut Shree Trivedi
` (5 subsequent siblings)
8 siblings, 3 replies; 24+ messages in thread
From: Sushrut Shree Trivedi @ 2026-06-30 19:02 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Sushrut Shree Trivedi
Add devicetree bindings for TC9563 GPIO's which are
used to control endpoint power and reset.
Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
---
.../devicetree/bindings/pci/toshiba,tc9563.yaml | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/pci/toshiba,tc9563.yaml b/Documentation/devicetree/bindings/pci/toshiba,tc9563.yaml
index b3ad05d90201..f9f71f28aa92 100644
--- a/Documentation/devicetree/bindings/pci/toshiba,tc9563.yaml
+++ b/Documentation/devicetree/bindings/pci/toshiba,tc9563.yaml
@@ -26,6 +26,11 @@ properties:
reg:
maxItems: 1
+ gpio-controller: true
+
+ '#gpio-cells':
+ const: 2
+
resx-gpios:
maxItems: 1
description:
@@ -69,6 +74,17 @@ $defs:
type: object
properties:
+ reset-gpios:
+ description:
+ Specify the TC9563 GPIO used to reset the endpoint
+ connected to the particular TC9563 downstream port.
+
+ ep-pwr-en-gpios:
+ description:
+ Specify the TC9563 GPIO used for enabling power to
+ the endpoint connected to the particular TC9563
+ downstream port.
+
toshiba,tx-amplitude-microvolt:
description:
Change Tx Margin setting for low power consumption.
@@ -104,7 +120,7 @@ examples:
#address-cells = <3>;
#size-cells = <2>;
- pcie@0 {
+ tc9563: pcie@0 {
device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>;
@@ -120,6 +136,7 @@ examples:
device_type = "pci";
#address-cells = <3>;
#size-cells = <2>;
+ #gpio-cells = <2>;
ranges;
bus-range = <0x02 0xff>;
@@ -154,6 +171,9 @@ examples:
device_type = "pci";
ranges;
bus-range = <0x04 0xff>;
+
+ ep-pwr-en-gpio = <&tc9563 2 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&tc9563 5 GPIO_ACTIVE_LOW>;
};
pcie@3,0 {
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 4/9] PCI: qcom: Add support for Shikra
2026-06-30 19:02 [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC Sushrut Shree Trivedi
` (2 preceding siblings ...)
2026-06-30 19:02 ` [PATCH 3/9] dt-bindings: PCI: Add bindings for endpoint gpios Sushrut Shree Trivedi
@ 2026-06-30 19:02 ` Sushrut Shree Trivedi
2026-07-01 9:51 ` Bartosz Golaszewski
2026-06-30 19:02 ` [PATCH 5/9] phy: qcom: qmp-pcie: Add QMP PCIe PHY " Sushrut Shree Trivedi
` (4 subsequent siblings)
8 siblings, 1 reply; 24+ messages in thread
From: Sushrut Shree Trivedi @ 2026-06-30 19:02 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Sushrut Shree Trivedi
Add support for the single PCIe controller on Shikra platform
which is capable of Gen2x1 operation.
Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@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 d8eb52857f69..19daadee65f7 100644
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -2309,6 +2309,7 @@ static const struct of_device_id qcom_pcie_match[] = {
{ .compatible = "qcom,pcie-sm8450-pcie1", .data = &cfg_1_9_0 },
{ .compatible = "qcom,pcie-sm8550", .data = &cfg_1_9_0 },
{ .compatible = "qcom,pcie-x1e80100", .data = &cfg_sc8280xp },
+ { .compatible = "qcom,shikra-pcie", .data = &cfg_1_9_0 },
{ }
};
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 5/9] phy: qcom: qmp-pcie: Add QMP PCIe PHY support for Shikra
2026-06-30 19:02 [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC Sushrut Shree Trivedi
` (3 preceding siblings ...)
2026-06-30 19:02 ` [PATCH 4/9] PCI: qcom: Add support for Shikra Sushrut Shree Trivedi
@ 2026-06-30 19:02 ` Sushrut Shree Trivedi
2026-06-30 19:02 ` [PATCH 6/9] PCI/pwrctrl: tc9563: Add API to control endpoint power and reset Sushrut Shree Trivedi
` (3 subsequent siblings)
8 siblings, 0 replies; 24+ messages in thread
From: Sushrut Shree Trivedi @ 2026-06-30 19:02 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Sushrut Shree Trivedi
Add QMP PCIe PHY Gen2x1 support.
Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
---
drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 73 ++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
index d3effad7a074..e0995e4d5f2d 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
@@ -2172,6 +2172,50 @@ static const struct qmp_phy_init_tbl sdx65_qmp_pcie_pcs_lane1_tbl[] = {
QMP_PHY_INIT_CFG(QPHY_V5_20_PCS_LANE1_INSIG_MX_CTRL2, 0x00),
};
+static const struct qmp_phy_init_tbl shikra_pcie_serdes_tbl[] = {
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_BIAS_EN_CLKBUFLR_EN, 0x18),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_CLK_ENABLE1, 0x10),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_BG_TRIM, 0xf),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_LOCK_CMP_EN, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_VCO_TUNE_MAP, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_VCO_TUNE_TIMER1, 0xff),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_VCO_TUNE_TIMER2, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_CMN_CONFIG, 0x6),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_PLL_IVCO, 0xf),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_HSCLK_SEL, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SVS_MODE_CLK_SEL, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_CORE_CLK_EN, 0x20),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_CORECLK_DIV, 0xa),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_RESETSM_CNTRL, 0x20),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_BG_TIMER, 0x9),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SYSCLK_EN_SEL, 0xa),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_DEC_START_MODE0, 0x82),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_DIV_FRAC_START3_MODE0, 0x3),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_DIV_FRAC_START2_MODE0, 0x55),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_DIV_FRAC_START1_MODE0, 0x55),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_LOCK_CMP3_MODE0, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_LOCK_CMP2_MODE0, 0xd),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_LOCK_CMP1_MODE0, 0x04),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_CLK_SELECT, 0x35),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SYS_CLK_CTRL, 0x2),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SYSCLK_BUF_ENABLE, 0x1f),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_CP_CTRL_MODE0, 0x4),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_PLL_RCTRL_MODE0, 0x16),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_PLL_CCTRL_MODE0, 0x30),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_INTEGLOOP_GAIN1_MODE0, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_INTEGLOOP_GAIN0_MODE0, 0x80),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_BIAS_EN_CTRL_BY_PSM, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_BG_TIMER, 0xa),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SSC_EN_CENTER, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SSC_PER1, 0x31),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SSC_PER2, 0x1),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SSC_ADJ_PER1, 0x2),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SSC_ADJ_PER2, 0x0),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SSC_STEP_SIZE1, 0x2f),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_SSC_STEP_SIZE2, 0x19),
+ QMP_PHY_INIT_CFG(QSERDES_V2_COM_CLK_EP_DIV, 0x19),
+};
+
static const struct qmp_phy_init_tbl sm8450_qmp_gen3_pcie_serdes_tbl[] = {
QMP_PHY_INIT_CFG(QSERDES_V5_COM_SYSCLK_EN_SEL, 0x08),
QMP_PHY_INIT_CFG(QSERDES_V5_COM_CLK_SELECT, 0x34),
@@ -3911,6 +3955,32 @@ static const struct qmp_phy_cfg sdm845_qhp_pciephy_cfg = {
.phy_status = PHYSTATUS,
};
+static const struct qmp_phy_cfg shikra_pciephy_cfg = {
+ .lanes = 1,
+
+ .offsets = &qmp_pcie_offsets_v2,
+
+ .tbls = {
+ .serdes = shikra_pcie_serdes_tbl,
+ .serdes_num = ARRAY_SIZE(shikra_pcie_serdes_tbl),
+ .tx = qcs615_pcie_tx_tbl,
+ .tx_num = ARRAY_SIZE(qcs615_pcie_tx_tbl),
+ .rx = qcs615_pcie_rx_tbl,
+ .rx_num = ARRAY_SIZE(qcs615_pcie_rx_tbl),
+ .pcs = qcs615_pcie_pcs_tbl,
+ .pcs_num = ARRAY_SIZE(qcs615_pcie_pcs_tbl),
+ },
+ .reset_list = sdm845_pciephy_reset_l,
+ .num_resets = ARRAY_SIZE(sdm845_pciephy_reset_l),
+ .vreg_list = qmp_phy_vreg_l,
+ .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l),
+ .regs = pciephy_v2_regs_layout,
+
+ .pwrdn_ctrl = SW_PWRDN | REFCLK_DRV_DSBL,
+ .phy_status = PHYSTATUS,
+};
+
+
static const struct qmp_phy_cfg sm8250_qmp_gen3x1_pciephy_cfg = {
.lanes = 1,
@@ -5603,6 +5673,9 @@ static const struct of_device_id qmp_pcie_of_match_table[] = {
}, {
.compatible = "qcom,sdx65-qmp-gen4x2-pcie-phy",
.data = &sdx65_qmp_pciephy_cfg,
+ }, {
+ .compatible = "qcom,shikra-qmp-gen2x1-pcie-phy",
+ .data = &shikra_pciephy_cfg,
}, {
.compatible = "qcom,sm8150-qmp-gen3x1-pcie-phy",
.data = &sm8250_qmp_gen3x1_pciephy_cfg,
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 6/9] PCI/pwrctrl: tc9563: Add API to control endpoint power and reset
2026-06-30 19:02 [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC Sushrut Shree Trivedi
` (4 preceding siblings ...)
2026-06-30 19:02 ` [PATCH 5/9] phy: qcom: qmp-pcie: Add QMP PCIe PHY " Sushrut Shree Trivedi
@ 2026-06-30 19:02 ` Sushrut Shree Trivedi
2026-06-30 19:28 ` Bjorn Helgaas
2026-06-30 19:02 ` [PATCH 7/9] arm64: dts: qcom: shikra: Add PCIe PHY and controller nodes Sushrut Shree Trivedi
` (2 subsequent siblings)
8 siblings, 1 reply; 24+ messages in thread
From: Sushrut Shree Trivedi @ 2026-06-30 19:02 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Sushrut Shree Trivedi
Some platform utilise TC9563 GPIOs to enable power and
control reset of endpoints.
This patch adds support to parse endpoint reset and power enable
gpios from each TC9563 port node in the devicetree. To configure
these GPIO's during the POWER ON sequence, two new API's are
introduced: tc9563_ep_pwr_en() and tc9563_ep_assert_deassert_reset().
Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
---
drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c | 152 ++++++++++++++++++++++++++-----
1 file changed, 129 insertions(+), 23 deletions(-)
diff --git a/drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c b/drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c
index 1555e8a9b3ca..de68b9836645 100644
--- a/drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c
+++ b/drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c
@@ -62,6 +62,8 @@
#define TC9563_TX_MARGIN_MIN_UA 400000
+#define TC9563_GPIO_NONE (-1)
+
/*
* From TC9563 PORSYS rev 0.2, figure 1.1 POR boot sequence
* wait for 10ms for the internal osc frequency to stabilize.
@@ -91,6 +93,10 @@ struct tc9563_pwrctrl_cfg {
u8 nfts[2]; /* GEN1 & GEN2 */
bool disable_dfe;
bool disable_port;
+
+ int ep_reset_gpio;
+ int ep_pwr_en_gpio;
+
};
#define TC9563_PWRCTL_MAX_SUPPLY 6
@@ -256,6 +262,89 @@ static int tc9563_pwrctrl_disable_port(struct tc9563_pwrctrl *tc9563,
ARRAY_SIZE(common_pwroff_seq));
}
+static int tc9563_pwrctrl_ep_pwr_en(struct tc9563_pwrctrl *tc9563,
+ enum tc9563_pwrctrl_ports port,
+ bool enable, int ep_pwr_en_gpio)
+{
+ u32 ep_pwr_en_gpio_mask, val;
+ int ret;
+
+ if (ep_pwr_en_gpio == TC9563_GPIO_NONE)
+ return 0;
+
+ ep_pwr_en_gpio_mask = BIT(ep_pwr_en_gpio);
+
+ /* Set TC9563 GPIO as output */
+ ret = tc9563_pwrctrl_i2c_read(tc9563->client, TC9563_GPIO_CONFIG,
+ &val);
+ if (ret)
+ return ret;
+
+ val &= ~ep_pwr_en_gpio_mask;
+
+ ret = tc9563_pwrctrl_i2c_write(tc9563->client, TC9563_GPIO_CONFIG,
+ val);
+ if (ret)
+ return ret;
+
+ /* Toggle 0->1 to enable power */
+ ret = tc9563_pwrctrl_i2c_read(tc9563->client, TC9563_RESET_GPIO,
+ &val);
+ if (ret)
+ return ret;
+
+ val = enable ? (val | ep_pwr_en_gpio_mask) : (val & ~ep_pwr_en_gpio_mask);
+
+ return tc9563_pwrctrl_i2c_write(tc9563->client, TC9563_RESET_GPIO, val);
+
+}
+
+static int tc9563_pwrctrl_ep_assert_deassert_reset(struct tc9563_pwrctrl *tc9563,
+ enum tc9563_pwrctrl_ports port,
+ bool deassert, int ep_reset_gpio)
+{
+ u32 ep_reset_gpio_mask, val;
+ int ret;
+
+ if (ep_reset_gpio == TC9563_GPIO_NONE) {
+ switch (port) {
+ case TC9563_DSP1:
+ ep_reset_gpio = 0x2;
+ break;
+ case TC9563_DSP2:
+ ep_reset_gpio = 0x3;
+ break;
+ default:
+ return 0;
+ }
+ }
+
+ ep_reset_gpio_mask = BIT(ep_reset_gpio);
+
+ /* Set TC9563 GPIO as output */
+ ret = tc9563_pwrctrl_i2c_read(tc9563->client, TC9563_GPIO_CONFIG,
+ &val);
+ if (ret)
+ return ret;
+
+ val &= ~ep_reset_gpio_mask;
+
+ ret = tc9563_pwrctrl_i2c_write(tc9563->client, TC9563_GPIO_CONFIG,
+ val);
+ if (ret)
+ return ret;
+
+ /* Assert-deassert endpoint reset */
+ ret = tc9563_pwrctrl_i2c_read(tc9563->client, TC9563_RESET_GPIO,
+ &val);
+ if (ret)
+ return ret;
+
+ val = deassert ? (val | ep_reset_gpio_mask) : (val & ~ep_reset_gpio_mask);
+
+ return tc9563_pwrctrl_i2c_write(tc9563->client, TC9563_RESET_GPIO, val);
+}
+
static int tc9563_pwrctrl_set_l0s_l1_entry_delay(struct tc9563_pwrctrl *tc9563,
enum tc9563_pwrctrl_ports port,
bool is_l1, u32 ns)
@@ -400,28 +489,17 @@ static int tc9563_pwrctrl_set_nfts(struct tc9563_pwrctrl *tc9563,
ARRAY_SIZE(nfts_seq));
}
-static int tc9563_pwrctrl_assert_deassert_reset(struct tc9563_pwrctrl *tc9563,
- bool deassert)
-{
- int ret, val;
-
- ret = tc9563_pwrctrl_i2c_write(tc9563->client, TC9563_GPIO_CONFIG,
- TC9563_GPIO_MASK);
- if (ret)
- return ret;
-
- val = deassert ? TC9563_GPIO_DEASSERT_BITS : 0;
-
- return tc9563_pwrctrl_i2c_write(tc9563->client, TC9563_RESET_GPIO, val);
-}
-
static int tc9563_pwrctrl_parse_device_dt(struct tc9563_pwrctrl *tc9563,
struct device_node *node,
enum tc9563_pwrctrl_ports port)
{
struct tc9563_pwrctrl_cfg *cfg = &tc9563->cfg[port];
+ struct of_phandle_args args;
int ret;
+ cfg->ep_reset_gpio = TC9563_GPIO_NONE;
+ cfg->ep_pwr_en_gpio = TC9563_GPIO_NONE;
+
/* Disable port if the status of the port is disabled. */
if (!of_device_is_available(node)) {
cfg->disable_port = true;
@@ -436,6 +514,18 @@ static int tc9563_pwrctrl_parse_device_dt(struct tc9563_pwrctrl *tc9563,
if (ret && ret != -EINVAL)
return ret;
+ ret = of_parse_phandle_with_fixed_args(node, "ep-pwr-en-gpios", 2, 0, &args);
+ if (ret && ret != -ENOENT)
+ return ret;
+ else if (!ret)
+ cfg->ep_pwr_en_gpio = args.args[0];
+
+ ret = of_parse_phandle_with_fixed_args(node, "reset-gpios", 2, 0, &args);
+ if (ret && ret != -ENOENT)
+ return ret;
+ else if (!ret)
+ cfg->ep_reset_gpio = args.args[0];
+
ret = of_property_read_u32(node, "toshiba,tx-amplitude-microvolt", &cfg->tx_amp);
if (ret && ret != -EINVAL)
return ret;
@@ -478,18 +568,28 @@ static int tc9563_pwrctrl_power_on(struct pci_pwrctrl *pwrctrl)
fsleep(TC9563_OSC_STAB_DELAY_US);
- ret = tc9563_pwrctrl_assert_deassert_reset(tc9563, false);
- if (ret)
- goto power_off;
-
for (i = 0; i < TC9563_MAX; i++) {
cfg = &tc9563->cfg[i];
+
ret = tc9563_pwrctrl_disable_port(tc9563, i);
if (ret) {
dev_err(dev, "Disabling port failed\n");
goto power_off;
}
+ ret = tc9563_pwrctrl_ep_assert_deassert_reset(tc9563, i, false,
+ cfg->ep_reset_gpio);
+ if (ret) {
+ dev_err(dev, "Assert EP reset failed\n");
+ goto power_off;
+ }
+
+ ret = tc9563_pwrctrl_ep_pwr_en(tc9563, i, true, cfg->ep_pwr_en_gpio);
+ if (ret) {
+ dev_err(dev, "Enabling EP Power failed\n");
+ goto power_off;
+ }
+
ret = tc9563_pwrctrl_set_l0s_l1_entry_delay(tc9563, i, false, cfg->l0s_delay);
if (ret) {
dev_err(dev, "Setting L0s entry delay failed\n");
@@ -519,11 +619,17 @@ static int tc9563_pwrctrl_power_on(struct pci_pwrctrl *pwrctrl)
dev_err(dev, "Disabling DFE failed\n");
goto power_off;
}
+
+ ret = tc9563_pwrctrl_ep_assert_deassert_reset(tc9563, i, true,
+ cfg->ep_reset_gpio);
+ if (ret) {
+ dev_err(dev, "De-assert EP reset failed\n");
+ goto power_off;
+ }
+
}
- ret = tc9563_pwrctrl_assert_deassert_reset(tc9563, true);
- if (!ret)
- return 0;
+ return 0;
power_off:
tc9563_pwrctrl_power_off(&tc9563->pwrctrl);
@@ -601,7 +707,7 @@ static int tc9563_pwrctrl_probe(struct platform_device *pdev)
port++;
ret = tc9563_pwrctrl_parse_device_dt(tc9563,
child1, port);
- if (ret)
+ if (port + 1 >= TC9563_MAX || ret)
break;
}
}
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 7/9] arm64: dts: qcom: shikra: Add PCIe PHY and controller nodes
2026-06-30 19:02 [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC Sushrut Shree Trivedi
` (5 preceding siblings ...)
2026-06-30 19:02 ` [PATCH 6/9] PCI/pwrctrl: tc9563: Add API to control endpoint power and reset Sushrut Shree Trivedi
@ 2026-06-30 19:02 ` Sushrut Shree Trivedi
2026-06-30 19:29 ` Bjorn Helgaas
2026-07-01 10:34 ` Konrad Dybcio
2026-06-30 19:02 ` [PATCH 8/9] arm64: dts: qcom: shikra-evk: Add TC9563 PCIe switch node for PCIe Sushrut Shree Trivedi
2026-06-30 19:02 ` [PATCH 9/9] arm64: dts: qcom: shikra-(cqm/cqs/iqs)-evk: Enable PCIe PHY node Sushrut Shree Trivedi
8 siblings, 2 replies; 24+ messages in thread
From: Sushrut Shree Trivedi @ 2026-06-30 19:02 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Sushrut Shree Trivedi
Shikra supports single PCIe instance with 5GT/s x1 lane.
Add PCIe controller and PHY node for this single instance.
Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra.dtsi | 154 +++++++++++++++++++++++++++++++++++
1 file changed, 154 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qcom/shikra.dtsi
index e67fe047a683..74d51ba5bde3 100644
--- a/arch/arm64/boot/dts/qcom/shikra.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra.dtsi
@@ -998,6 +998,160 @@ tsens0: thermal-sensor@4411000 {
#thermal-sensor-cells = <1>;
};
+ pcie: pcie@45e8000 {
+ device_type = "pci";
+ compatible = "qcom,shikra-pcie";
+ reg = <0x0 0x045e8000 0x0 0x3000>,
+ <0x0 0x60000000 0x0 0xf1d>,
+ <0x0 0x60000f20 0x0 0xa8>,
+ <0x0 0x60001000 0x0 0x1000>,
+ <0x0 0x60100000 0x0 0x100000>,
+ <0x0 0x045eb000 0x0 0x1000>;
+ reg-names = "parf",
+ "dbi",
+ "elbi",
+ "atu",
+ "config",
+ "mhi";
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>,
+ <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x3d00000>,
+ <0x03000000 0x4 0x00000000 0x4 0x00000000 0x3 0x0000000>;
+ bus-range = <0x00 0xff>;
+
+ linux,pci-domain = <0>;
+ num-lanes = <1>;
+
+ interrupts = <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 492 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 493 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 494 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 495 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 497 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 498 IRQ_TYPE_LEVEL_HIGH 0>,
+ <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "msi0",
+ "msi1",
+ "msi2",
+ "msi3",
+ "msi4",
+ "msi5",
+ "msi6",
+ "msi7",
+ "global";
+
+ interrupt-map = <0 0 0 1 &intc 0 0 0 499 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 2 &intc 0 0 0 500 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 3 &intc 0 0 0 501 IRQ_TYPE_LEVEL_HIGH>,
+ <0 0 0 4 &intc 0 0 0 502 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-map-mask = <0 0 0 0x7>;
+ #interrupt-cells = <1>;
+
+ clocks = <&gcc GCC_PCIE_AUX_CLK>,
+ <&gcc GCC_PCIE_CFG_AHB_CLK>,
+ <&gcc GCC_PCIE_MSTR_AXI_CLK>,
+ <&gcc GCC_PCIE_SLV_AXI_CLK>,
+ <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>,
+ <&gcc GCC_DDRSS_MEMNOC_PCIE_SF_CLK>,
+ <&gcc GCC_PCIE_TILE_AXI_SYS_NOC_CLK>,
+ <&gcc GCC_QMIP_PCIE_CFG_AHB_CLK>;
+ clock-names = "aux",
+ "cfg",
+ "bus_master",
+ "bus_slave",
+ "slave_q2a",
+ "ddrss_memnoc_pcie",
+ "tile",
+ "qmip_pcie_ahb";
+
+ assigned-clocks = <&gcc GCC_PCIE_AUX_CLK>;
+ assigned-clock-rates = <19200000>;
+
+ interconnects = <&system_noc MASTER_PCIE2_0 RPM_ALWAYS_TAG
+ &mc_virt SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
+ <&mem_noc MASTER_AMPSS_M0 RPM_ACTIVE_TAG
+ &config_noc SLAVE_PCIE2_0 RPM_ACTIVE_TAG>;
+
+ interconnect-names = "pcie-mem",
+ "cpu-pcie";
+
+ iommu-map = <0x0 &apps_smmu 0x800 0x1>,
+ <0x100 &apps_smmu 0x801 0x1>;
+
+ resets = <&gcc GCC_PCIE_BCR>;
+ reset-names = "pci";
+
+ power-domains = <&gcc GCC_PCIE_GDSC>;
+
+ max-link-speed = <2>;
+
+ operating-points-v2 = <&pcie_opp_table>;
+
+ status = "disabled";
+
+ pcie_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ /* GEN 1 x1 */
+ opp-2500000 {
+ opp-hz = /bits/ 64 <2500000>;
+ required-opps = <&rpmpd_opp_nom>;
+ opp-peak-kBps = <250000 1>;
+ opp-level = <1>;
+ };
+
+ /* GEN 2 x1 */
+ opp-5000000 {
+ opp-hz = /bits/ 64 <5000000>;
+ required-opps = <&rpmpd_opp_nom>;
+ opp-peak-kBps = <500000 1>;
+ opp-level = <2>;
+ };
+ };
+
+ pcie_port0: pcie@0 {
+ device_type = "pci";
+ reg = <0x0 0x0 0x0 0x0 0x0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+ bus-range = <0x01 0x8>;
+
+ phys = <&pcie_phy>;
+ };
+ };
+
+ pcie_phy: phy@45ee000 {
+ compatible = "qcom,shikra-qmp-gen2x1-pcie-phy";
+ reg = <0x0 0x045ee000 0x0 0x1000>;
+
+ clocks = <&gcc GCC_PCIE_AUX_CLK>,
+ <&gcc GCC_PCIE_CFG_AHB_CLK>,
+ <&gcc GCC_PCIE_CLKREF_EN>,
+ <&gcc GCC_PCIE_RCHNG_PHY_CLK>,
+ <&gcc GCC_PCIE_PIPE_CLK>;
+ clock-names = "aux",
+ "cfg_ahb",
+ "ref",
+ "refgen",
+ "pipe";
+
+ resets = <&gcc GCC_PCIE_PHY_BCR>;
+ reset-names = "phy";
+
+ assigned-clocks = <&gcc GCC_PCIE_RCHNG_PHY_CLK>;
+ assigned-clock-rates = <100000000>;
+
+ #clock-cells = <0>;
+ clock-output-names = "pcie_pipe_clk";
+
+ #phy-cells = <0>;
+
+ status = "disabled";
+ };
+
rpm_msg_ram: sram@45f0000 {
compatible = "qcom,rpm-msg-ram", "mmio-sram";
reg = <0x0 0x045f0000 0x0 0x7000>;
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 8/9] arm64: dts: qcom: shikra-evk: Add TC9563 PCIe switch node for PCIe
2026-06-30 19:02 [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC Sushrut Shree Trivedi
` (6 preceding siblings ...)
2026-06-30 19:02 ` [PATCH 7/9] arm64: dts: qcom: shikra: Add PCIe PHY and controller nodes Sushrut Shree Trivedi
@ 2026-06-30 19:02 ` Sushrut Shree Trivedi
2026-06-30 19:30 ` Bjorn Helgaas
2026-07-01 10:35 ` Konrad Dybcio
2026-06-30 19:02 ` [PATCH 9/9] arm64: dts: qcom: shikra-(cqm/cqs/iqs)-evk: Enable PCIe PHY node Sushrut Shree Trivedi
8 siblings, 2 replies; 24+ messages in thread
From: Sushrut Shree Trivedi @ 2026-06-30 19:02 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Sushrut Shree Trivedi
Add a node for the TC9563 PCIe switch connected to PCIe. The switch
has three downstream ports.Two embedded Ethernet devices are present
on one of the downstream ports. All the ports present in the
node represent the downstream ports and embedded endpoints.
Power to the TC9563 is supplied through two LDO regulators, which
are on by default and are added as fixed regulators. TC9563 can be
configured through I2C.
Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra-evk.dtsi | 152 +++++++++++++++++++++++++++++++
1 file changed, 152 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra-evk.dtsi b/arch/arm64/boot/dts/qcom/shikra-evk.dtsi
index 5411f22426b7..b6d24fe5fb61 100644
--- a/arch/arm64/boot/dts/qcom/shikra-evk.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra-evk.dtsi
@@ -3,6 +3,136 @@
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
*/
+/ {
+ aliases {
+ i2c3 = &i2c3;
+ };
+
+ vreg_0p9: regulator-0v9 {
+ compatible = "regulator-fixed";
+ regulator-name = "VREG_0P9";
+
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <900000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vreg_1p8: regulator-1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "VREG_1P8";
+
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+};
+
+&i2c3 {
+ status = "okay";
+};
+
+&pcie {
+ wake-gpios = <&tlmm 119 GPIO_ACTIVE_LOW>;
+
+ iommu-map = <0x0 &apps_smmu 0x0800 0x1>,
+ <0x100 &apps_smmu 0x0801 0x1>,
+ <0x208 &apps_smmu 0x0802 0x1>,
+ <0x210 &apps_smmu 0x0803 0x1>,
+ <0x218 &apps_smmu 0x0804 0x1>,
+ <0x300 &apps_smmu 0x0805 0x1>,
+ <0x400 &apps_smmu 0x0806 0x1>,
+ <0x500 &apps_smmu 0x0807 0x1>,
+ <0x501 &apps_smmu 0x0808 0x1>;
+
+ pinctrl-0 = <&pcie_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie_port0 {
+
+ tc9563: pcie@0,0 {
+ compatible = "pci1179,0623";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ #gpio-cells = <2>;
+ gpio-controller;
+
+ device_type = "pci";
+ ranges;
+ bus-range = <0x2 0xff>;
+
+ vddc-supply = <&vreg_0p9>;
+ vdd18-supply = <&vreg_1p8>;
+ vdd09-supply = <&vreg_0p9>;
+ vddio1-supply = <&vreg_1p8>;
+ vddio2-supply = <&vreg_1p8>;
+ vddio18-supply = <&vreg_1p8>;
+
+ i2c-parent = <&i2c3 0x77>;
+
+ resx-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&tc9563_resx_n>;
+ pinctrl-names = "default";
+
+ pcie@1,0 {
+ reg = <0x20800 0x0 0x0 0x0 0x0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ ranges;
+ bus-range = <0x3 0xff>;
+
+ ep-pwr-en-gpios = <&tc9563 2 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&tc9563 5 GPIO_ACTIVE_LOW>;
+ };
+
+ pcie@2,0 {
+ reg = <0x21000 0x0 0x0 0x0 0x0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ device_type = "pci";
+ ranges;
+ bus-range = <0x4 0xff>;
+
+ ep-pwr-en-gpios = <&tc9563 4 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&tc9563 3 GPIO_ACTIVE_LOW>;
+ };
+
+ pcie@3,0 {
+ reg = <0x21800 0x0 0x0 0x0 0x0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ device_type = "pci";
+ ranges;
+ bus-range = <0x5 0xff>;
+
+ pci@0,0 {
+ reg = <0x50000 0x0 0x0 0x0 0x0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ device_type = "pci";
+ ranges;
+ };
+
+ pci@0,1 {
+ reg = <0x50100 0x0 0x0 0x0 0x0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ device_type = "pci";
+ ranges;
+ };
+ };
+ };
+};
+
&qupv3_0 {
firmware-name = "qcom/shikra/qupv3fw.elf";
@@ -10,11 +140,33 @@ &qupv3_0 {
};
&tlmm {
+ pcie_default_state: pcie-default-state {
+ clkreq-pins {
+ pins = "gpio117";
+ function = "pcie0_clk_req_n";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ wake-pins {
+ pins = "gpio119";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
sw_ctrl_default: sw-ctrl-default-state {
pins = "gpio88";
function = "gpio";
bias-pull-down;
};
+
+ tc9563_resx_n: tc9563-resx-state {
+ pins = "gpio118";
+ function = "gpio";
+ bias-disable;
+ };
};
&uart0 {
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 9/9] arm64: dts: qcom: shikra-(cqm/cqs/iqs)-evk: Enable PCIe PHY node
2026-06-30 19:02 [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC Sushrut Shree Trivedi
` (7 preceding siblings ...)
2026-06-30 19:02 ` [PATCH 8/9] arm64: dts: qcom: shikra-evk: Add TC9563 PCIe switch node for PCIe Sushrut Shree Trivedi
@ 2026-06-30 19:02 ` Sushrut Shree Trivedi
2026-07-01 10:36 ` Konrad Dybcio
8 siblings, 1 reply; 24+ messages in thread
From: Sushrut Shree Trivedi @ 2026-06-30 19:02 UTC (permalink / raw)
To: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Sushrut Shree Trivedi
Enable the PCIe PHY for the single PCIe intance on the Shikra
CQS, CQM and the IQS platforms.
IQS platform uses a different powergrid than CQS/CQM which explain
the different PHY supplies for IQS variant.
Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts | 7 +++++++
arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts | 7 +++++++
arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts | 7 +++++++
3 files changed, 21 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
index 683b5245923b..06ad32041546 100644
--- a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
+++ b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
@@ -60,6 +60,13 @@ vreg_pmu_ch1: ldo4 {
};
};
+&pcie_phy {
+ vdda-phy-supply = <&pm4125_l13>;
+ vdda-pll-supply = <&pm4125_l9>;
+
+ status = "okay";
+};
+
&remoteproc_cdsp {
firmware-name = "qcom/shikra/cdsp.mbn";
diff --git a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
index 26ff8007a819..e467c46a55c0 100644
--- a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
+++ b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts
@@ -60,6 +60,13 @@ vreg_pmu_ch1: ldo4 {
};
};
+&pcie_phy {
+ vdda-phy-supply = <&pm4125_l13>;
+ vdda-pll-supply = <&pm4125_l9>;
+
+ status = "okay";
+};
+
&remoteproc_cdsp {
firmware-name = "qcom/shikra/cdsp.mbn";
diff --git a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
index fd691d53a0fa..a7628443cb36 100644
--- a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
+++ b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts
@@ -68,6 +68,13 @@ vreg_pmu_ch1: ldo4 {
};
};
+&pcie_phy {
+ vdda-phy-supply = <&pm8150_l12>;
+ vdda-pll-supply = <&pm8150_l9>;
+
+ status = "okay";
+};
+
&remoteproc_cdsp {
firmware-name = "qcom/shikra/cdsp.mbn";
--
2.43.0
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH 2/9] dt-bindings: PCI: qcom: Document the Shikra PCIe Controller
2026-06-30 19:02 ` [PATCH 2/9] dt-bindings: PCI: qcom: Document the Shikra PCIe Controller Sushrut Shree Trivedi
@ 2026-06-30 19:18 ` Bjorn Helgaas
2026-06-30 20:35 ` Rob Herring (Arm)
2026-07-01 6:26 ` Krzysztof Kozlowski
2 siblings, 0 replies; 24+ messages in thread
From: Bjorn Helgaas @ 2026-06-30 19:18 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci
On Wed, Jul 01, 2026 at 12:32:44AM +0530, Sushrut Shree Trivedi wrote:
> Add a dedicated schema for the PCIe controller found on the Shikra
> platform.
>
> Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
> ---
> .../devicetree/bindings/pci/qcom,shikra-pcie.yaml | 211 +++++++++++++++++++++
Existing schema names are almost all "qcom,pcie-<SOC>", not
"qcom,<SOC>-pcie".
Subject lines typically include the SoC, e.g., see
"git log --oneline --no-merges Documentation/devicetree/bindings/pci/qcom*"
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 3/9] dt-bindings: PCI: Add bindings for endpoint gpios
2026-06-30 19:02 ` [PATCH 3/9] dt-bindings: PCI: Add bindings for endpoint gpios Sushrut Shree Trivedi
@ 2026-06-30 19:22 ` Bjorn Helgaas
2026-06-30 20:35 ` Rob Herring (Arm)
2026-07-01 6:27 ` Krzysztof Kozlowski
2 siblings, 0 replies; 24+ messages in thread
From: Bjorn Helgaas @ 2026-06-30 19:22 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci
On Wed, Jul 01, 2026 at 12:32:45AM +0530, Sushrut Shree Trivedi wrote:
> Add devicetree bindings for TC9563 GPIO's which are
> used to control endpoint power and reset.
Include context in subject line. Regrettably, previous commits to
toshiba,tc9563.yaml don't include that either, but I think something
like this would be good:
dt-bindings: PCI: toshiba,tc9563: Add endpoint GPIO bindings
s/GPIO's/GPIOs/
Wrap to fill 75 columns.
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 6/9] PCI/pwrctrl: tc9563: Add API to control endpoint power and reset
2026-06-30 19:02 ` [PATCH 6/9] PCI/pwrctrl: tc9563: Add API to control endpoint power and reset Sushrut Shree Trivedi
@ 2026-06-30 19:28 ` Bjorn Helgaas
0 siblings, 0 replies; 24+ messages in thread
From: Bjorn Helgaas @ 2026-06-30 19:28 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci
On Wed, Jul 01, 2026 at 12:32:48AM +0530, Sushrut Shree Trivedi wrote:
> Some platform utilise TC9563 GPIOs to enable power and
> control reset of endpoints.
>
> This patch adds support to parse endpoint reset and power enable
> gpios from each TC9563 port node in the devicetree. To configure
> these GPIO's during the POWER ON sequence, two new API's are
> introduced: tc9563_ep_pwr_en() and tc9563_ep_assert_deassert_reset().
s/Some platform utilise/Some platforms utilise/
s/This patch adds/Add/
s/gpios/GPIOs/
Add tc9563_ep_pwr_en() and tc9563_ep_assert_deassert_reset() to
configure these GPIOs during the power-on sequence.
Wrap to fill 75 columns.
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 7/9] arm64: dts: qcom: shikra: Add PCIe PHY and controller nodes
2026-06-30 19:02 ` [PATCH 7/9] arm64: dts: qcom: shikra: Add PCIe PHY and controller nodes Sushrut Shree Trivedi
@ 2026-06-30 19:29 ` Bjorn Helgaas
2026-07-01 10:34 ` Konrad Dybcio
1 sibling, 0 replies; 24+ messages in thread
From: Bjorn Helgaas @ 2026-06-30 19:29 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci
On Wed, Jul 01, 2026 at 12:32:49AM +0530, Sushrut Shree Trivedi wrote:
> Shikra supports single PCIe instance with 5GT/s x1 lane.
s/ / /
s/lane/link/
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 8/9] arm64: dts: qcom: shikra-evk: Add TC9563 PCIe switch node for PCIe
2026-06-30 19:02 ` [PATCH 8/9] arm64: dts: qcom: shikra-evk: Add TC9563 PCIe switch node for PCIe Sushrut Shree Trivedi
@ 2026-06-30 19:30 ` Bjorn Helgaas
2026-07-01 10:35 ` Konrad Dybcio
1 sibling, 0 replies; 24+ messages in thread
From: Bjorn Helgaas @ 2026-06-30 19:30 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio,
linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci
On Wed, Jul 01, 2026 at 12:32:50AM +0530, Sushrut Shree Trivedi wrote:
> Add a node for the TC9563 PCIe switch connected to PCIe. The switch
> has three downstream ports.Two embedded Ethernet devices are present
> on one of the downstream ports. All the ports present in the
> node represent the downstream ports and embedded endpoints.
>
> Power to the TC9563 is supplied through two LDO regulators, which
> are on by default and are added as fixed regulators. TC9563 can be
> configured through I2C.
s/ports.Two/ports. Two/
Possibly subject doesn't need two uses of "PCIe".
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/9] dt-bindings: PCI: qcom: Document the Shikra PCIe Controller
2026-06-30 19:02 ` [PATCH 2/9] dt-bindings: PCI: qcom: Document the Shikra PCIe Controller Sushrut Shree Trivedi
2026-06-30 19:18 ` Bjorn Helgaas
@ 2026-06-30 20:35 ` Rob Herring (Arm)
2026-07-01 6:26 ` Krzysztof Kozlowski
2 siblings, 0 replies; 24+ messages in thread
From: Rob Herring (Arm) @ 2026-06-30 20:35 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: Lorenzo Pieralisi, Krzysztof Wilczyński, Konrad Dybcio,
Bjorn Andersson, Vinod Koul, Chaitanya Chundru, Bjorn Helgaas,
devicetree, Manivannan Sadhasivam, Krzysztof Kozlowski,
linux-kernel, linux-phy, linux-arm-msm, Conor Dooley,
Neil Armstrong, linux-pci, Bartosz Golaszewski
On Wed, 01 Jul 2026 00:32:44 +0530, Sushrut Shree Trivedi wrote:
> Add a dedicated schema for the PCIe controller found on the Shikra
> platform.
>
> Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
> ---
> .../devicetree/bindings/pci/qcom,shikra-pcie.yaml | 211 +++++++++++++++++++++
> 1 file changed, 211 insertions(+)
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:57.29-36 Unexpected 'GIC_SPI'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:57.41-60 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:58.29-36 Unexpected 'GIC_SPI'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:58.41-60 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:59.29-36 Unexpected 'GIC_SPI'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:59.41-60 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:60.29-36 Unexpected 'GIC_SPI'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:60.41-60 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:61.29-36 Unexpected 'GIC_SPI'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:61.41-60 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:62.29-36 Unexpected 'GIC_SPI'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:62.41-60 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:63.29-36 Unexpected 'GIC_SPI'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:63.41-60 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:64.29-36 Unexpected 'GIC_SPI'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:64.41-60 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:65.29-36 Unexpected 'GIC_SPI'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:65.41-60 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:76.56-75 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:77.56-75 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:78.56-75 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:79.56-75 Unexpected 'IRQ_TYPE_LEVEL_HIGH'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:83.30-46 Unexpected 'GCC_PCIE_AUX_CLK'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:84.30-50 Unexpected 'GCC_PCIE_CFG_AHB_CLK'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:85.30-51 Unexpected 'GCC_PCIE_MSTR_AXI_CLK'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:86.30-50 Unexpected 'GCC_PCIE_SLV_AXI_CLK'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:87.30-54 Unexpected 'GCC_PCIE_SLV_Q2A_AXI_CLK'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:88.30-58 Unexpected 'GCC_DDRSS_MEMNOC_PCIE_SF_CLK'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:89.30-59 Unexpected 'GCC_PCIE_TILE_AXI_SYS_NOC_CLK'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:90.30-55 Unexpected 'GCC_QMIP_PCIE_CFG_AHB_CLK'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:100.39-55 Unexpected 'GCC_PCIE_AUX_CLK'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:103.44-58 Unexpected 'MASTER_PCIE2_0'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:103.59-73 Unexpected 'RPM_ALWAYS_TAG'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:104.40-53 Unexpected 'SLAVE_EBI_CH0'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:104.54-68 Unexpected 'RPM_ALWAYS_TAG'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:105.41-56 Unexpected 'MASTER_AMPSS_M0'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:105.57-71 Unexpected 'RPM_ACTIVE_TAG'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:106.43-56 Unexpected 'SLAVE_PCIE2_0'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:106.57-71 Unexpected 'RPM_ACTIVE_TAG'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:114.30-42 Unexpected 'GCC_PCIE_BCR'
Lexical error: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dts:117.37-50 Unexpected 'GCC_PCIE_GDSC'
FATAL ERROR: Syntax error parsing input tree
make[2]: *** [scripts/Makefile.dtbs:140: Documentation/devicetree/bindings/pci/qcom,shikra-pcie.example.dtb] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1669: dt_binding_check] Error 2
make: *** [Makefile:248: __sub-make] Error 2
doc reference errors (make refcheckdocs):
See https://patchwork.kernel.org/project/devicetree/patch/20260701-shikra-upstream-v1-2-e1a721eb8943@oss.qualcomm.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 3/9] dt-bindings: PCI: Add bindings for endpoint gpios
2026-06-30 19:02 ` [PATCH 3/9] dt-bindings: PCI: Add bindings for endpoint gpios Sushrut Shree Trivedi
2026-06-30 19:22 ` Bjorn Helgaas
@ 2026-06-30 20:35 ` Rob Herring (Arm)
2026-07-01 6:27 ` Krzysztof Kozlowski
2 siblings, 0 replies; 24+ messages in thread
From: Rob Herring (Arm) @ 2026-06-30 20:35 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: Krzysztof Wilczyński, Neil Armstrong, Konrad Dybcio,
linux-phy, linux-kernel, Conor Dooley, Bjorn Andersson,
Bartosz Golaszewski, Vinod Koul, linux-arm-msm,
Manivannan Sadhasivam, Krzysztof Kozlowski, Lorenzo Pieralisi,
Chaitanya Chundru, linux-pci, devicetree, Bjorn Helgaas
On Wed, 01 Jul 2026 00:32:45 +0530, Sushrut Shree Trivedi wrote:
> Add devicetree bindings for TC9563 GPIO's which are
> used to control endpoint power and reset.
>
> Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
> ---
> .../devicetree/bindings/pci/toshiba,tc9563.yaml | 22 +++++++++++++++++++++-
> 1 file changed, 21 insertions(+), 1 deletion(-)
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
./Documentation/devicetree/bindings/pci/toshiba,tc9563.yaml:32:9: [warning] wrong indentation: expected 4 but found 8 (indentation)
dtschema/dtc warnings/errors:
doc reference errors (make refcheckdocs):
See https://patchwork.kernel.org/project/devicetree/patch/20260701-shikra-upstream-v1-3-e1a721eb8943@oss.qualcomm.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/9] dt-bindings: PCI: qcom: Document the Shikra PCIe Controller
2026-06-30 19:02 ` [PATCH 2/9] dt-bindings: PCI: qcom: Document the Shikra PCIe Controller Sushrut Shree Trivedi
2026-06-30 19:18 ` Bjorn Helgaas
2026-06-30 20:35 ` Rob Herring (Arm)
@ 2026-07-01 6:26 ` Krzysztof Kozlowski
2 siblings, 0 replies; 24+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-01 6:26 UTC (permalink / raw)
To: Sushrut Shree Trivedi, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Helgaas,
Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Bjorn Andersson, Chaitanya Chundru,
Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci
On 30/06/2026 21:02, Sushrut Shree Trivedi wrote:
> Add a dedicated schema for the PCIe controller found on the Shikra
> platform.
>
> Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
> ---
> .../devicetree/bindings/pci/qcom,shikra-pcie.yaml | 211 +++++++++++++++++++++
> 1 file changed, 211 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/pci/qcom,shikra-pcie.yaml b/Documentation/devicetree/bindings/pci/qcom,shikra-pcie.yaml
> new file mode 100644
> index 000000000000..f9d1dba9dd2e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pci/qcom,shikra-pcie.yaml
> @@ -0,0 +1,211 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pci/qcom,shikra-pcie.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Shikra PCI Express Root Complex
> +
> +maintainers:
> + - Bjorn Andersson <andersson@kernel.org>
> + - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> +
> +description:
> + Qualcomm Shikra SoC (and compatible) PCIe root complex controller is based on
> + the Synopsys DesignWare PCIe IP.
> +
> +properties:
> + compatible:
> + const: qcom,shikra-pcie
> +
> + reg:
> + minItems: 5
> + maxItems: 6
Same comments as other recent Qualcomm bindings. Don't invent stuff,
take what was reviewed from the list so we won't have to repeat.
...
> + power-domains = <&gcc GCC_PCIE_GDSC>;
> +
> + max-link-speed = <2>;
> +
> + operating-points-v2 = <&pcie_opp_table>;
> +
> + status = "disabled";
Drop, you never tested the binding in such case.
> +
> + pcie_opp_table: opp-table {
> + compatible = "operating-points-v2";
Broken indent.
> +
> + /* GEN 1 x1 */
> + opp-2500000 {
> + opp-hz = /bits/ 64 <2500000>;
> + required-opps = <&rpmpd_opp_nom>;
> + opp-peak-kBps = <250000 1>;
> + opp-level = <1>;
> + };
> +
> + /* GEN 2 x1 */
> + opp-5000000 {
> + opp-hz = /bits/ 64 <5000000>;
> + required-opps = <&rpmpd_opp_nom>;
> + opp-peak-kBps = <500000 1>;
> + opp-level = <2>;
> + };
> + };
> + };
> + };
>
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] 24+ messages in thread
* Re: [PATCH 3/9] dt-bindings: PCI: Add bindings for endpoint gpios
2026-06-30 19:02 ` [PATCH 3/9] dt-bindings: PCI: Add bindings for endpoint gpios Sushrut Shree Trivedi
2026-06-30 19:22 ` Bjorn Helgaas
2026-06-30 20:35 ` Rob Herring (Arm)
@ 2026-07-01 6:27 ` Krzysztof Kozlowski
2 siblings, 0 replies; 24+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-01 6:27 UTC (permalink / raw)
To: Sushrut Shree Trivedi, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Helgaas,
Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Bjorn Andersson, Chaitanya Chundru,
Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci
On 30/06/2026 21:02, Sushrut Shree Trivedi wrote:
> toshiba,tx-amplitude-microvolt:
> description:
> Change Tx Margin setting for low power consumption.
> @@ -104,7 +120,7 @@ examples:
> #address-cells = <3>;
> #size-cells = <2>;
>
> - pcie@0 {
> + tc9563: pcie@0 {
And you change indentation because?
Just like the other patch, this wasn't tested, right?
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] 24+ messages in thread
* Re: [PATCH 1/9] dt-bindings: phy: sc8280xp-qmp-pcie: Document Shikra PCIe phy
2026-06-30 19:02 ` [PATCH 1/9] dt-bindings: phy: sc8280xp-qmp-pcie: Document Shikra PCIe phy Sushrut Shree Trivedi
@ 2026-07-01 9:50 ` Bartosz Golaszewski
0 siblings, 0 replies; 24+ messages in thread
From: Bartosz Golaszewski @ 2026-07-01 9:50 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
On Tue, 30 Jun 2026 21:02:43 +0200, Sushrut Shree Trivedi
<sushrut.trivedi@oss.qualcomm.com> said:
> Document the compatible of the Shikra PCIe phy which supports
> Gen2x1.
>
> Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
> index 108cf9dc86ea..b9b0fa26347b 100644
> --- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
> +++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
> @@ -34,6 +34,7 @@ properties:
> - qcom,sdm845-qmp-pcie-phy
> - qcom,sdx55-qmp-pcie-phy
> - qcom,sdx65-qmp-gen4x2-pcie-phy
> + - qcom,shikra-qmp-gen2x1-pcie-phy
> - qcom,sm8150-qmp-gen3x1-pcie-phy
> - qcom,sm8150-qmp-gen3x2-pcie-phy
> - qcom,sm8250-qmp-gen3x1-pcie-phy
> @@ -166,6 +167,7 @@ allOf:
> - qcom,sdm845-qhp-pcie-phy
> - qcom,sdm845-qmp-pcie-phy
> - qcom,sdx55-qmp-pcie-phy
> + - qcom,shikra-qmp-gen2x1-pcie-phy
> - qcom,sm8150-qmp-gen3x1-pcie-phy
> - qcom,sm8150-qmp-gen3x2-pcie-phy
> - qcom,sm8250-qmp-gen3x1-pcie-phy
>
> --
> 2.43.0
>
>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@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] 24+ messages in thread
* Re: [PATCH 4/9] PCI: qcom: Add support for Shikra
2026-06-30 19:02 ` [PATCH 4/9] PCI: qcom: Add support for Shikra Sushrut Shree Trivedi
@ 2026-07-01 9:51 ` Bartosz Golaszewski
0 siblings, 0 replies; 24+ messages in thread
From: Bartosz Golaszewski @ 2026-07-01 9:51 UTC (permalink / raw)
To: Sushrut Shree Trivedi
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci,
Vinod Koul, Neil Armstrong, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bjorn Helgaas, Lorenzo Pieralisi,
Krzysztof Wilczyński, Manivannan Sadhasivam, Bjorn Andersson,
Chaitanya Chundru, Bartosz Golaszewski, Konrad Dybcio
On Tue, 30 Jun 2026 21:02:46 +0200, Sushrut Shree Trivedi
<sushrut.trivedi@oss.qualcomm.com> said:
> Add support for the single PCIe controller on Shikra platform
> which is capable of Gen2x1 operation.
>
> Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@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 d8eb52857f69..19daadee65f7 100644
> --- a/drivers/pci/controller/dwc/pcie-qcom.c
> +++ b/drivers/pci/controller/dwc/pcie-qcom.c
> @@ -2309,6 +2309,7 @@ static const struct of_device_id qcom_pcie_match[] = {
> { .compatible = "qcom,pcie-sm8450-pcie1", .data = &cfg_1_9_0 },
> { .compatible = "qcom,pcie-sm8550", .data = &cfg_1_9_0 },
> { .compatible = "qcom,pcie-x1e80100", .data = &cfg_sc8280xp },
> + { .compatible = "qcom,shikra-pcie", .data = &cfg_1_9_0 },
> { }
> };
>
>
> --
> 2.43.0
>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@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] 24+ messages in thread
* Re: [PATCH 7/9] arm64: dts: qcom: shikra: Add PCIe PHY and controller nodes
2026-06-30 19:02 ` [PATCH 7/9] arm64: dts: qcom: shikra: Add PCIe PHY and controller nodes Sushrut Shree Trivedi
2026-06-30 19:29 ` Bjorn Helgaas
@ 2026-07-01 10:34 ` Konrad Dybcio
1 sibling, 0 replies; 24+ messages in thread
From: Konrad Dybcio @ 2026-07-01 10:34 UTC (permalink / raw)
To: Sushrut Shree Trivedi, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Helgaas,
Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Bjorn Andersson, Chaitanya Chundru,
Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci
On 6/30/26 9:02 PM, Sushrut Shree Trivedi wrote:
> Shikra supports single PCIe instance with 5GT/s x1 lane.
> Add PCIe controller and PHY node for this single instance.
>
> Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
> ---
[...]
> +
> + max-link-speed = <2>;
Please add a single-line comment right above explaining that the
host supports higher speeds, but the attached PHY is only Gen2,
so we need this manual limitation
Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 8/9] arm64: dts: qcom: shikra-evk: Add TC9563 PCIe switch node for PCIe
2026-06-30 19:02 ` [PATCH 8/9] arm64: dts: qcom: shikra-evk: Add TC9563 PCIe switch node for PCIe Sushrut Shree Trivedi
2026-06-30 19:30 ` Bjorn Helgaas
@ 2026-07-01 10:35 ` Konrad Dybcio
1 sibling, 0 replies; 24+ messages in thread
From: Konrad Dybcio @ 2026-07-01 10:35 UTC (permalink / raw)
To: Sushrut Shree Trivedi, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Helgaas,
Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Bjorn Andersson, Chaitanya Chundru,
Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci
On 6/30/26 9:02 PM, Sushrut Shree Trivedi wrote:
> Add a node for the TC9563 PCIe switch connected to PCIe. The switch
> has three downstream ports.Two embedded Ethernet devices are present
> on one of the downstream ports. All the ports present in the
> node represent the downstream ports and embedded endpoints.
>
> Power to the TC9563 is supplied through two LDO regulators, which
> are on by default and are added as fixed regulators. TC9563 can be
> configured through I2C.
>
> Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
> ---
[...]
> +&pcie {
> + wake-gpios = <&tlmm 119 GPIO_ACTIVE_LOW>;
This property belongs to the port node
Please also mention in the commit message the reason for the
PERST# pin remaining undescribed
Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 9/9] arm64: dts: qcom: shikra-(cqm/cqs/iqs)-evk: Enable PCIe PHY node
2026-06-30 19:02 ` [PATCH 9/9] arm64: dts: qcom: shikra-(cqm/cqs/iqs)-evk: Enable PCIe PHY node Sushrut Shree Trivedi
@ 2026-07-01 10:36 ` Konrad Dybcio
0 siblings, 0 replies; 24+ messages in thread
From: Konrad Dybcio @ 2026-07-01 10:36 UTC (permalink / raw)
To: Sushrut Shree Trivedi, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bjorn Helgaas,
Lorenzo Pieralisi, Krzysztof Wilczyński,
Manivannan Sadhasivam, Bjorn Andersson, Chaitanya Chundru,
Bartosz Golaszewski, Konrad Dybcio
Cc: linux-arm-msm, linux-phy, devicetree, linux-kernel, linux-pci
On 6/30/26 9:02 PM, Sushrut Shree Trivedi wrote:
> Enable the PCIe PHY for the single PCIe intance on the Shikra
> CQS, CQM and the IQS platforms.
>
> IQS platform uses a different powergrid than CQS/CQM which explain
> the different PHY supplies for IQS variant.
>
> Signed-off-by: Sushrut Shree Trivedi <sushrut.trivedi@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts | 7 +++++++
> arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts | 7 +++++++
> arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts | 7 +++++++
> 3 files changed, 21 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
> index 683b5245923b..06ad32041546 100644
> --- a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
> +++ b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts
> @@ -60,6 +60,13 @@ vreg_pmu_ch1: ldo4 {
> };
> };
>
> +&pcie_phy {
> + vdda-phy-supply = <&pm4125_l13>;
> + vdda-pll-supply = <&pm4125_l9>;
> +
> + status = "okay";
> +};
I think it makes sense to push the status=okay to the evk file
(because we already describe the PCIe switch there) and only keep
the supplies here (because they differ)
Konrad
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2026-07-01 10:37 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-30 19:02 [PATCH 0/9] PCI: qcom: Add PCIe support for Shikra SoC Sushrut Shree Trivedi
2026-06-30 19:02 ` [PATCH 1/9] dt-bindings: phy: sc8280xp-qmp-pcie: Document Shikra PCIe phy Sushrut Shree Trivedi
2026-07-01 9:50 ` Bartosz Golaszewski
2026-06-30 19:02 ` [PATCH 2/9] dt-bindings: PCI: qcom: Document the Shikra PCIe Controller Sushrut Shree Trivedi
2026-06-30 19:18 ` Bjorn Helgaas
2026-06-30 20:35 ` Rob Herring (Arm)
2026-07-01 6:26 ` Krzysztof Kozlowski
2026-06-30 19:02 ` [PATCH 3/9] dt-bindings: PCI: Add bindings for endpoint gpios Sushrut Shree Trivedi
2026-06-30 19:22 ` Bjorn Helgaas
2026-06-30 20:35 ` Rob Herring (Arm)
2026-07-01 6:27 ` Krzysztof Kozlowski
2026-06-30 19:02 ` [PATCH 4/9] PCI: qcom: Add support for Shikra Sushrut Shree Trivedi
2026-07-01 9:51 ` Bartosz Golaszewski
2026-06-30 19:02 ` [PATCH 5/9] phy: qcom: qmp-pcie: Add QMP PCIe PHY " Sushrut Shree Trivedi
2026-06-30 19:02 ` [PATCH 6/9] PCI/pwrctrl: tc9563: Add API to control endpoint power and reset Sushrut Shree Trivedi
2026-06-30 19:28 ` Bjorn Helgaas
2026-06-30 19:02 ` [PATCH 7/9] arm64: dts: qcom: shikra: Add PCIe PHY and controller nodes Sushrut Shree Trivedi
2026-06-30 19:29 ` Bjorn Helgaas
2026-07-01 10:34 ` Konrad Dybcio
2026-06-30 19:02 ` [PATCH 8/9] arm64: dts: qcom: shikra-evk: Add TC9563 PCIe switch node for PCIe Sushrut Shree Trivedi
2026-06-30 19:30 ` Bjorn Helgaas
2026-07-01 10:35 ` Konrad Dybcio
2026-06-30 19:02 ` [PATCH 9/9] arm64: dts: qcom: shikra-(cqm/cqs/iqs)-evk: Enable PCIe PHY node Sushrut Shree Trivedi
2026-07-01 10:36 ` Konrad Dybcio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox