Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: PCI: qcom: Move PHY & reset GPIO to Root Port node

Move the phys, phy-names, reset-gpios properties to the PCIe Root Port node
from Host Bridge node, as agreed upon here [1].

Update the qcom,pcie-common.yaml to include the 'phys' property in the Root
Port node. 'phy-names' property is not needed in Root Port since each Root
Port supports only one PHY. Also, there is already 'reset-gpios' property
defined for PERST# in pci-bus-common.yaml, so use that property instead of
'perst-gpios'.

For backward compatibility, do not remove any existing properties in the
bridge node, but mark them as 'deprecated' instead.

[1] https://lore.kernel.org/linux-pci/20241211192014.GA3302752@bhelgaas/

Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
[mani: commit message rewording]
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20250702-perst-v5-1-920b3d1f6ee1@qti.qualcomm.com

authored by

Krishna Chaitanya Chundru and committed by
Bjorn Helgaas
38fcbfbd 7d944c0f

+42 -6
+30 -2
Documentation/devicetree/bindings/pci/qcom,pcie-common.yaml
··· 51 51 52 52 phys: 53 53 maxItems: 1 54 + deprecated: true 55 + description: 56 + This property is deprecated, instead of referencing this property from 57 + the host bridge node, use the property from the PCIe root port node. 54 58 55 59 phy-names: 56 60 items: 57 61 - const: pciephy 62 + deprecated: true 63 + description: 64 + Phandle to the register map node. This property is deprecated, and not 65 + required to add in the root port also, as the root port has only one phy. 58 66 59 67 power-domains: 60 68 maxItems: 1 ··· 79 71 maxItems: 12 80 72 81 73 perst-gpios: 82 - description: GPIO controlled connection to PERST# signal 74 + description: GPIO controlled connection to PERST# signal. This property is 75 + deprecated, instead of referencing this property from the host bridge node, 76 + use the reset-gpios property from the root port node. 83 77 maxItems: 1 78 + deprecated: true 84 79 85 80 wake-gpios: 86 - description: GPIO controlled connection to WAKE# signal 81 + description: GPIO controlled connection to WAKE# signal. This property is 82 + deprecated, instead of referencing this property from the host bridge node, 83 + use the property from the PCIe root port node. 87 84 maxItems: 1 85 + deprecated: true 88 86 89 87 vddpe-3v3-supply: 90 88 description: PCIe endpoint power supply ··· 98 84 operating-points-v2: true 99 85 opp-table: 100 86 type: object 87 + 88 + patternProperties: 89 + "^pcie@": 90 + type: object 91 + $ref: /schemas/pci/pci-pci-bridge.yaml# 92 + 93 + properties: 94 + reg: 95 + maxItems: 1 96 + 97 + phys: 98 + maxItems: 1 99 + 100 + unevaluatedProperties: false 101 101 102 102 required: 103 103 - reg
+12 -4
Documentation/devicetree/bindings/pci/qcom,pcie-sc7280.yaml
··· 165 165 iommu-map = <0x0 &apps_smmu 0x1c80 0x1>, 166 166 <0x100 &apps_smmu 0x1c81 0x1>; 167 167 168 - phys = <&pcie1_phy>; 169 - phy-names = "pciephy"; 170 - 171 168 pinctrl-names = "default"; 172 169 pinctrl-0 = <&pcie1_clkreq_n>; 173 170 ··· 173 176 resets = <&gcc GCC_PCIE_1_BCR>; 174 177 reset-names = "pci"; 175 178 176 - perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; 177 179 vddpe-3v3-supply = <&pp3300_ssd>; 180 + pcie1_port0: pcie@0 { 181 + device_type = "pci"; 182 + reg = <0x0 0x0 0x0 0x0 0x0>; 183 + bus-range = <0x01 0xff>; 184 + 185 + #address-cells = <3>; 186 + #size-cells = <2>; 187 + ranges; 188 + phys = <&pcie1_phy>; 189 + 190 + reset-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; 191 + }; 178 192 }; 179 193 };