From 3a9453665e3a0007346a6ba5796e4f1c9c91f7fa Mon Sep 17 00:00:00 2001 From: Wei Deng Date: Mon, 8 Jun 2026 14:47:01 +0530 Subject: [PATCH 1/5] UPSTREAM: power: sequencing: pcie-m2: Add PCI ID 0x1103 for WCN6855 Bluetooth WCN6855 is a Qualcomm Wi-Fi/BT combo chip that uses PCI device ID 0x1103. Add it to pwrseq_m2_pci_ids[] alongside the existing 0x1107 (WCN7850) entry, so that the pwrseq-pcie-m2 driver creates a Bluetooth serdev device for WCN6855 cards inserted into PCIe M.2 Key E connectors. Reviewed-by: Manivannan Sadhasivam Signed-off-by: Wei Deng Link: https://patch.msgid.link/20260608091702.3797437-2-wei.deng@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski --- drivers/power/sequencing/pwrseq-pcie-m2.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequencing/pwrseq-pcie-m2.c index a80489eab34d5..9ee24a9bb9e2a 100644 --- a/drivers/power/sequencing/pwrseq-pcie-m2.c +++ b/drivers/power/sequencing/pwrseq-pcie-m2.c @@ -188,6 +188,8 @@ static int pwrseq_pcie_m2_match(struct pwrseq_device *pwrseq, static const struct pci_device_id pwrseq_m2_pci_ids[] = { { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1107), .driver_data = (kernel_ulong_t)"qcom,wcn7850-bt" }, + { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1103), + .driver_data = (kernel_ulong_t)"qcom,wcn6855-bt" }, { } /* Sentinel */ }; From 0aca03e9128c837379d9d8b16380acf4317d1312 Mon Sep 17 00:00:00 2001 From: Wei Deng Date: Wed, 17 Jun 2026 20:00:55 +0530 Subject: [PATCH 2/5] UPSTREAM: power: sequencing: pcie-m2: Sort PCI device IDs in ascending order Sort the entries in pwrseq_m2_pci_ids[] by device ID in ascending order: 0x1103 (WCN6855) before 0x1107 (WCN7850). Fixes: 3a9453665e3a ("UPSTREAM: power: sequencing: pcie-m2: Add PCI ID 0x1103 for WCN6855 Bluetooth") Reviewed-by: Manivannan Sadhasivam Signed-off-by: Wei Deng Link: https://patch.msgid.link/20260617143055.820096-1-wei.deng@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski --- drivers/power/sequencing/pwrseq-pcie-m2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequencing/pwrseq-pcie-m2.c index 9ee24a9bb9e2a..b7f92335d71b7 100644 --- a/drivers/power/sequencing/pwrseq-pcie-m2.c +++ b/drivers/power/sequencing/pwrseq-pcie-m2.c @@ -186,10 +186,10 @@ static int pwrseq_pcie_m2_match(struct pwrseq_device *pwrseq, } static const struct pci_device_id pwrseq_m2_pci_ids[] = { - { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1107), - .driver_data = (kernel_ulong_t)"qcom,wcn7850-bt" }, { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1103), .driver_data = (kernel_ulong_t)"qcom,wcn6855-bt" }, + { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1107), + .driver_data = (kernel_ulong_t)"qcom,wcn7850-bt" }, { } /* Sentinel */ }; From 17748eb06da73626c61f3ad98c8e084fbbd58c91 Mon Sep 17 00:00:00 2001 From: Krishna Chaitanya Chundru Date: Fri, 3 Jul 2026 18:08:32 +0530 Subject: [PATCH 3/5] FROMGIT: power: sequencing: pwrseq-pcie-m2: Add QCC2072 BT PCI device ID Add the Qualcomm QCC2072 Bluetooth device (PCI ID 0x1112) to the pwrseq_m2_pci_ids table so the M.2 power sequencer can create the serdev node for its BT interface on enumeration. Signed-off-by: Krishna Chaitanya Chundru Link: https://patch.msgid.link/20260703-eliza_evk-v1-3-7624440bd76d@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski --- drivers/power/sequencing/pwrseq-pcie-m2.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequencing/pwrseq-pcie-m2.c index b7f92335d71b7..890f54c80fa93 100644 --- a/drivers/power/sequencing/pwrseq-pcie-m2.c +++ b/drivers/power/sequencing/pwrseq-pcie-m2.c @@ -190,6 +190,8 @@ static const struct pci_device_id pwrseq_m2_pci_ids[] = { .driver_data = (kernel_ulong_t)"qcom,wcn6855-bt" }, { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1107), .driver_data = (kernel_ulong_t)"qcom,wcn7850-bt" }, + { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x1112), + .driver_data = (kernel_ulong_t)"qcom,qcc2072-bt" }, { } /* Sentinel */ }; From fc7392fe20d543521f83a947bbf59e60b796280f Mon Sep 17 00:00:00 2001 From: Wei Deng Date: Wed, 24 Jun 2026 18:20:50 +0530 Subject: [PATCH 4/5] FROMGIT: arm64: dts: qcom: lemans: Add compatible to the PCIe Root Port Add 'compatible = "pciclass,0604"' to the pcieport0 node in lemans.dtsi to allow the PCI subsystem to associate the DT node with the PCI-to-PCI bridge device. This is required for downstream DT nodes (such as M.2 connectors described as graph endpoints of the Root Port) to be matched to PCI devices. Link: https://lore.kernel.org/r/20260622-v3-lemans-split-v3-1-d26bb22594e3@oss.qualcomm.com Reviewed-by: Bartosz Golaszewski Reviewed-by: Dmitry Baryshkov Reviewed-by: Manivannan Sadhasivam Signed-off-by: Wei Deng --- arch/arm64/boot/dts/qcom/lemans.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi index 63d269facff2c..cfd5b7c1aea7e 100644 --- a/arch/arm64/boot/dts/qcom/lemans.dtsi +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi @@ -8998,6 +8998,7 @@ status = "disabled"; pcieport0: pcie@0 { + compatible = "pciclass,0604"; device_type = "pci"; reg = <0x0 0x0 0x0 0x0 0x0>; bus-range = <0x01 0xff>; From 56bb01fafae5c169db55fb0aad393028146fc347 Mon Sep 17 00:00:00 2001 From: Wei Deng Date: Wed, 24 Jun 2026 18:21:03 +0530 Subject: [PATCH 5/5] FROMGIT: arm64: dts: qcom: lemans-evk: Describe the PCIe M.2 Key E connector The lemans EVK has the PCIe M.2 Mechanical Key E connector to connect wireless connectivity cards over PCIe and UART interfaces. Hence, describe the connector node and link it with the PCIe 0 Root Port and UART17 nodes through graph port/endpoint. The M.2 Key E connector is powered by a 3.3V fixed regulator (vreg_wcn_3p3) which is sourced from the board's 12V DC input rail (vreg_dcin_12v). Both regulators are always-on and are required by the pcie-m2-e-connector binding. Also add the serial1 = &uart17 alias, which is required for the Bluetooth serdev device to be enumerated on the UART17 interface. Link: https://lore.kernel.org/r/20260622-v3-lemans-split-v3-2-d26bb22594e3@oss.qualcomm.com Reviewed-by: Bartosz Golaszewski Reviewed-by: Dmitry Baryshkov Reviewed-by: Manivannan Sadhasivam Reviewed-by: Konrad Dybcio Signed-off-by: Wei Deng --- arch/arm64/boot/dts/qcom/lemans-evk.dts | 59 +++++++++++++++++++------ 1 file changed, 46 insertions(+), 13 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/lemans-evk.dts b/arch/arm64/boot/dts/qcom/lemans-evk.dts index eec8b8a1d9ae8..27d3a01ab1f40 100644 --- a/arch/arm64/boot/dts/qcom/lemans-evk.dts +++ b/arch/arm64/boot/dts/qcom/lemans-evk.dts @@ -127,6 +127,38 @@ }; }; + connector-3 { + compatible = "pcie-m2-e-connector"; + vpcie3v3-supply = <&vreg_wcn_3p3>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + + m2_e_pcie_ep: endpoint@0 { + reg = <0>; + remote-endpoint = <&pcieport0_ep>; + }; + }; + + port@3 { + reg = <3>; + #address-cells = <1>; + #size-cells = <0>; + + m2_e_uart_ep: endpoint@0 { + reg = <0>; + remote-endpoint = <&uart17_ep>; + }; + }; + }; + }; + edp0-connector { compatible = "dp-connector"; label = "EDP0"; @@ -250,8 +282,8 @@ regulator-min-microvolt = <12000000>; regulator-max-microvolt = <12000000>; - regulator-boot-on; regulator-always-on; + regulator-boot-on; }; vreg_sdc: regulator-vreg-sdc { @@ -277,6 +309,7 @@ vin-supply = <&vreg_dcin_12v>; + regulator-always-on; regulator-boot-on; }; }; @@ -866,6 +899,14 @@ status = "okay"; }; +&pcieport0 { + port { + pcieport0_ep: endpoint { + remote-endpoint = <&m2_e_pcie_ep>; + }; + }; +}; + &psci { reboot-mode { mode-bootloader = <0x10001 0x2>; @@ -1098,18 +1139,10 @@ &uart17 { status = "okay"; - bluetooth: bluetooth { - compatible = "qcom,wcn6855-bt"; - max-speed = <3200000>; - - vddrfacmn-supply = <&vreg_wcn_3p3>; - vddaon-supply = <&vreg_wcn_3p3>; - vddwlcx-supply = <&vreg_wcn_3p3>; - vddwlmx-supply = <&vreg_wcn_3p3>; - vddbtcmx-supply = <&vreg_wcn_3p3>; - vddrfa0p8-supply = <&vreg_wcn_3p3>; - vddrfa1p2-supply = <&vreg_wcn_3p3>; - vddrfa1p8-supply = <&vreg_wcn_3p3>; + port { + uart17_ep: endpoint { + remote-endpoint = <&m2_e_uart_ep>; + }; }; };