[PATCH 3/3] arm64: dts: qcom: glymur-crd: Describe the PCIe M.2 Key B connector

From: Krishna Chaitanya Chundru

Date: Wed Oct 21 2026 - 09:58:43 EST


The Glymur CRD has a WWAN M.2 slot connected to PCIe6. Currently the
vreg_wwan supply is described directly on the PCIe6 host bridge. As a
result, the supply follows the PCIe controller power state and is turned
off when the controller is powered down, regardless of the requirements
of the device connected to the slot.

Move control of the WWAN supply to the generic
pci-pwrctrl-slot/pwrseq-pcie-m2 framework. This allows slot power to be
coordinated with PCI device power-management requirements and keeps the
supply enabled when required by the PCI device, such as for PME-based
wake-up.

Describe the slot as a PCIe M.2 Mechanical Key B connector and link it
to the PCIe6 Root Port using a graph port/endpoint pair, as required by
the pcie-m2-b-connector binding.

Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/glymur-crd.dtsi | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/glymur-crd.dtsi b/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
index e27c697e3170..73de60b0d0e5 100644
--- a/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
@@ -237,6 +237,27 @@ vreg_wwan: regulator-wwan {
pinctrl-names = "default";
};

+ wwan-connector {
+ compatible = "pcie-m2-b-connector";
+ vpcie3v3-supply = <&vreg_wwan>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ wwan_m2_pcie_ep: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&pcie6_port0_ep>;
+ };
+ };
+ };
+ };
+
sound {
compatible = "qcom,glymur-sndcard";
model = "GLYMUR-CRD";
@@ -810,8 +831,6 @@ &pcie5_port0 {
};

&pcie6 {
- vddpe-3v3-supply = <&vreg_wwan>;
-
pinctrl-0 = <&pcie6_default>;
pinctrl-names = "default";

@@ -828,6 +847,12 @@ &pcie6_phy {
&pcie6_port0 {
reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+
+ port {
+ pcie6_port0_ep: endpoint {
+ remote-endpoint = <&wwan_m2_pcie_ep>;
+ };
+ };
};

&pmh0110_f_e1_gpios {

--
2.34.1