Re: [PATCH v2] arm64: dts: qcom: shikra: Add WCN clock to wcn3988-pmu node

From: Yepuri Siddu

Date: Thu Oct 01 2026 - 01:13:11 EST




On 10/1/2026 8:28 AM, Bjorn Andersson wrote:
On Tue, Sep 29, 2026 at 03:31:29PM +0530, Yepuri Siddu wrote:
With RPMCC proxy vote removal, the WCN clock must be explicitly declared
so the wcn3988-pmu driver can vote for it during WCN power on/off.

Place the clock in the wcn3988-pmu node since the PMU driver owns the
WCN power sequencing. CQM SOM uses RPM_SMD_RF_CLK2 while IQS SOM uses
RPM_SMD_RF_CLK1, reflecting the WCN clock assignments on each board
variant.

Signed-off-by: Yepuri Siddu <yepuri.siddu@xxxxxxxxxxxxxxxx>
---

Why do you have one problem description above and a different one below?

The information after "---" is not merged so the git history only
contains the one above - and there's some interesting details in the
description below. Perhaps this is the b4 "cover letter"?

Yes, the detailed description was in the b4 cover letter body which
gets placed below "---" in the email automatically and does not make
it into git history.

Please revise the commit message above with some of these technical
details.

Will fix in v3 by merging the technical details into the commit message.

Thanks,
Siddu
clk_smd_rpm_handoff() votes both active and sleep RPM resource states for
every clock, keeping them non-zero until a consumer takes over. On Shikra,
the BT WCN clock was surviving on these proxy votes. With proxy vote
removal on QCM2290 [1], the sleep vote is no longer held, which means the
WCN clock must be explicitly declared in DTS so the wcn3988-pmu driver
can manage it during power sequencing.

The clock is added to the wcn3988-pmu node in Shikra DTS. CQM SOM uses
RPM_SMD_RF_CLK2 while IQS SOM uses RPM_SMD_RF_CLK1, reflecting the WCN
clock assignments on each board variant.

Validations:
- BT enable/disable verified on Shikra CQM, CQS and IQS EVK boards.
- Confirmed WCN clock voted on BT enable and released on BT disable.

[1] https://lore.kernel.org/all/20260910-clk-smd-rpm-skip-proxy-v1-1-1cb5694a99d9@xxxxxxxxxxxxxxxx/
---
Changes in v2:
- Move clock property to wcn3988-pmu node instead of bluetooth node.
- Drop hci_qca driver changes; clock is managed by the PMU driver.
- Link to v1: https://patch.msgid.link/20260925-bt-wcn-clk-enable-v1-0-30bee88c4de4@xxxxxxxxxxxxxxxx
---
arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi | 2 ++
arch/arm64/boot/dts/qcom/shikra-iqs-som.dtsi | 2 ++
2 files changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi b/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
index 8ac42ff625a0..48af2bb87cf3 100644
--- a/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra-cqm-som.dtsi
@@ -45,6 +45,8 @@ wcn3988-pmu {
vddrf-supply = <&pm4125_l10>;
vddch0-supply = <&pm4125_l22>;
+ clocks = <&rpmcc RPM_SMD_RF_CLK2>;
+
regulators {
vreg_pmu_io: ldo0 {
regulator-name = "vreg_pmu_io";
diff --git a/arch/arm64/boot/dts/qcom/shikra-iqs-som.dtsi b/arch/arm64/boot/dts/qcom/shikra-iqs-som.dtsi
index 4ff97945274d..90aceaa6e1e3 100644
--- a/arch/arm64/boot/dts/qcom/shikra-iqs-som.dtsi
+++ b/arch/arm64/boot/dts/qcom/shikra-iqs-som.dtsi
@@ -52,6 +52,8 @@ wcn3988-pmu {
vddrf-supply = <&pm8150_l8>;
vddch0-supply = <&vreg_wcn_3p3>;
+ clocks = <&rpmcc RPM_SMD_RF_CLK1>;
+
regulators {
vreg_pmu_io: ldo0 {
regulator-name = "vreg_pmu_io";

---
base-commit: 165768bb70265b5c38cf0b73fafd75be235f8b14
change-id: 20260925-bt-wcn-clk-enable-9de068334aa1

Best regards,
--
Yepuri Siddu <yepuri.siddu@xxxxxxxxxxxxxxxx>