public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/14] power: sequencing: extend WCN driver to support WCN399x device
@ 2025-12-30 23:35 Dmitry Baryshkov
  2025-12-30 23:35 ` [PATCH 01/14] regulator: dt-bindings: qcom,qca6390-pmu: describe PMUs on WCN39xx Dmitry Baryshkov
                   ` (14 more replies)
  0 siblings, 15 replies; 49+ messages in thread
From: Dmitry Baryshkov @ 2025-12-30 23:35 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bartosz Golaszewski, Marcel Holtmann,
	Luiz Augusto von Dentz, Jeff Johnson, Bjorn Andersson,
	Konrad Dybcio, Manivannan Sadhasivam, Vinod Koul,
	Balakrishna Godavarthi, Matthias Kaehlcke
  Cc: linux-arm-msm, linux-kernel, devicetree, linux-bluetooth,
	linux-wireless, ath10k, linux-pm, Krzysztof Kozlowski

Qualcomm WCN3950, WCN3988 and WCN399x families of WiFi/BT chips preceed
the later WCN / QCA devices, but they still incorporate a very simple
PMU on die. It controls internal on-chip power networks, but, most
importantly, it also requires a certain start-up procedure (first bring
up VDD_IO, then bring up other voltages). In order to further unify code
supporting different families of QCA / WCN chips and in order to
maintain the required power up sequence, properly represent these chips
in DTs and modify drivers to use power sequencing for these chips.

Backwards compatibility with the existing DTs is retained by keeping the
regulator&clock code in the drivers as a fallback.

As a part of the series I've converted only several boards, verifying
that all known instances of WCN39xx family works (fixing the issues
meanwhile). The rest of devices might follow the pattern later.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Dmitry Baryshkov (14):
      regulator: dt-bindings: qcom,qca6390-pmu: describe PMUs on WCN39xx
      Bluetooth: qca: enable pwrseq support for WCN39xx devices
      Bluetooth: qca: fix ROM version reading on WCN3998 chips
      wifi: ath10k: snoc: support powering on the device via pwrseq
      power: sequencing: qcom-wcn: add support for WCN39xx
      arm64: dts: qcom: qrb4210-rb2: Fix UART3 wakeup IRQ storm
      arm64: dts: qcom: sdm845-db845c: drop CS from SPIO0
      arm64: dts: qcom: sdm845-db845c: specify power for WiFi CH1
      arm64: dts: qcom: sm8150: add uart13
      arm64: dts: qcom: qrb2210-rb1: describe WiFi/BT properly
      arm64: dts: qcom: qrb4210-rb2: describe WiFi/BT properly
      arm64: dts: qcom: sda660-ifc6560: describe WiFi/BT properly
      arm64: dts: qcom: sdm845-db845c: describe WiFi/BT properly
      arm64: dts: qcom: sm8150-hdk: describe WiFi/BT properly

 .../bindings/regulator/qcom,qca6390-pmu.yaml       |  36 ++++++
 arch/arm64/boot/dts/qcom/qrb2210-rb1.dts           |  60 +++++++--
 arch/arm64/boot/dts/qcom/qrb4210-rb2.dts           |  62 +++++++--
 .../arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts |  66 ++++++++--
 arch/arm64/boot/dts/qcom/sdm845-db845c.dts         |  75 +++++++++--
 arch/arm64/boot/dts/qcom/sm8150-hdk.dts            | 141 ++++++++++++++++++++-
 arch/arm64/boot/dts/qcom/sm8150.dtsi               |   9 ++
 drivers/bluetooth/btqca.c                          |   2 +
 drivers/bluetooth/hci_qca.c                        |  26 ++--
 drivers/net/wireless/ath/ath10k/snoc.c             |  43 ++++++-
 drivers/net/wireless/ath/ath10k/snoc.h             |   2 +
 drivers/power/sequencing/pwrseq-qcom-wcn.c         | 130 ++++++++++++++++++-
 12 files changed, 596 insertions(+), 56 deletions(-)
---
base-commit: cc3aa43b44bdb43dfbac0fcb51c56594a11338a8
change-id: 20251229-wcn3990-pwrctl-cfa64f9d8167

Best regards,
-- 
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 49+ messages in thread
* [PATCH v2 01/14] regulator: dt-bindings: qcom,wcn3990-pmu: describe PMUs on WCN39xx
@ 2026-01-06  1:01 Dmitry Baryshkov
  2026-01-06  1:16 ` power: sequencing: extend WCN driver to support WCN399x device bluez.test.bot
  2026-01-29 20:14 ` bluez.test.bot
  0 siblings, 2 replies; 49+ messages in thread
From: Dmitry Baryshkov @ 2026-01-06  1:01 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bartosz Golaszewski, Marcel Holtmann,
	Luiz Augusto von Dentz, Jeff Johnson, Bjorn Andersson,
	Konrad Dybcio, Manivannan Sadhasivam, Vinod Koul,
	Balakrishna Godavarthi, Matthias Kaehlcke
  Cc: linux-arm-msm, linux-kernel, devicetree, linux-bluetooth,
	linux-wireless, ath10k, linux-pm, Krzysztof Kozlowski

WCN3990 and other similar WiFi/BT chips incorporate a simple on-chip PMU
(clearly described as such in the documentation). Provide DT schema
covering other Qualcomm WiFi/BT chips to cover these devices too.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 .../bindings/regulator/qcom,wcn3990-pmu.yaml       | 100 +++++++++++++++++++++
 1 file changed, 100 insertions(+)

diff --git a/Documentation/devicetree/bindings/regulator/qcom,wcn3990-pmu.yaml b/Documentation/devicetree/bindings/regulator/qcom,wcn3990-pmu.yaml
new file mode 100644
index 000000000000..9a7abc878b83
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/qcom,wcn3990-pmu.yaml
@@ -0,0 +1,100 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/qcom,wcn3990-pmu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. WCN3990 PMU Regulators
+
+maintainers:
+  - Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
+
+description:
+  The WCN3990 package contains discrete modules for WLAN and Bluetooth. They
+  are powered by the Power Management Unit (PMU) that takes inputs from the
+  host and provides LDO outputs. This document describes this module.
+
+properties:
+  compatible:
+    enum:
+      - qcom,wcn3950-pmu
+      - qcom,wcn3988-pmu
+      - qcom,wcn3990-pmu
+      - qcom,wcn3991-pmu
+      - qcom,wcn3998-pmu
+
+  vddio-supply:
+    description: VDD_IO supply regulator handle
+
+  vddxo-supply:
+    description: VDD_XTAL supply regulator handle
+
+  vddrf-supply:
+    description: VDD_RF supply regulator handle
+
+  vddch0-supply:
+    description: chain 0 supply regulator handle
+
+  vddch1-supply:
+    description: chain 1 supply regulator handle
+
+  swctrl-gpios:
+    maxItems: 1
+    description: GPIO line indicating the state of the clock supply to the BT module
+
+  clocks:
+    maxItems: 1
+    description: Reference clock handle
+
+  regulators:
+    type: object
+    description:
+      LDO outputs of the PMU
+
+    patternProperties:
+      "^ldo[0-9]$":
+        $ref: regulator.yaml#
+        type: object
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - regulators
+  - vddio-supply
+  - vddxo-supply
+  - vddrf-supply
+  - vddch0-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    pmu {
+        compatible = "qcom,wcn3990-pmu";
+
+        vddio-supply = <&vreg_io>;
+        vddxo-supply = <&vreg_xo>;
+        vddrf-supply = <&vreg_rf>;
+        vddch0-supply = <&vreg_ch0>;
+
+        regulators {
+            vreg_pmu_io: ldo0 {
+                regulator-name = "vreg_pmu_io";
+            };
+
+            vreg_pmu_xo: ldo1 {
+                regulator-name = "vreg_pmu_xo";
+            };
+
+            vreg_pmu_rf: ldo2 {
+                regulator-name = "vreg_pmu_rf";
+            };
+
+            vreg_pmu_ch0: ldo3 {
+                regulator-name = "vreg_pmu_ch0";
+            };
+        };
+    };

-- 
2.47.3


^ permalink raw reply related	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2026-01-29 20:14 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-30 23:35 [PATCH 00/14] power: sequencing: extend WCN driver to support WCN399x device Dmitry Baryshkov
2025-12-30 23:35 ` [PATCH 01/14] regulator: dt-bindings: qcom,qca6390-pmu: describe PMUs on WCN39xx Dmitry Baryshkov
2025-12-31  1:16   ` power: sequencing: extend WCN driver to support WCN399x device bluez.test.bot
2026-01-02 10:54   ` [PATCH 01/14] regulator: dt-bindings: qcom,qca6390-pmu: describe PMUs on WCN39xx Bartosz Golaszewski
2026-01-02 12:23   ` Krzysztof Kozlowski
2025-12-30 23:35 ` [PATCH 02/14] Bluetooth: qca: enable pwrseq support for WCN39xx devices Dmitry Baryshkov
2026-01-02 10:57   ` Bartosz Golaszewski
2025-12-30 23:35 ` [PATCH 03/14] Bluetooth: qca: fix ROM version reading on WCN3998 chips Dmitry Baryshkov
2025-12-31 12:04   ` Konrad Dybcio
2025-12-31 15:02     ` Dmitry Baryshkov
2025-12-30 23:35 ` [PATCH 04/14] wifi: ath10k: snoc: support powering on the device via pwrseq Dmitry Baryshkov
2026-01-02 11:07   ` Bartosz Golaszewski
2026-01-02 15:09     ` Dmitry Baryshkov
2026-01-02 17:06       ` Bartosz Golaszewski
2026-01-02 23:24         ` Dmitry Baryshkov
2026-01-05 12:46           ` Bartosz Golaszewski
2025-12-30 23:35 ` [PATCH 05/14] power: sequencing: qcom-wcn: add support for WCN39xx Dmitry Baryshkov
2026-01-02 11:02   ` Bartosz Golaszewski
2025-12-30 23:35 ` [PATCH 06/14] arm64: dts: qcom: qrb4210-rb2: Fix UART3 wakeup IRQ storm Dmitry Baryshkov
2025-12-31 12:07   ` Konrad Dybcio
2025-12-30 23:35 ` [PATCH 07/14] arm64: dts: qcom: sdm845-db845c: drop CS from SPIO0 Dmitry Baryshkov
2025-12-31 12:07   ` Konrad Dybcio
2025-12-30 23:35 ` [PATCH 08/14] arm64: dts: qcom: sdm845-db845c: specify power for WiFi CH1 Dmitry Baryshkov
2025-12-31 12:09   ` Konrad Dybcio
2025-12-31 16:19     ` Dmitry Baryshkov
2025-12-31 16:20       ` Konrad Dybcio
2025-12-30 23:35 ` [PATCH 09/14] arm64: dts: qcom: sm8150: add uart13 Dmitry Baryshkov
2025-12-31 12:10   ` Konrad Dybcio
2025-12-30 23:36 ` [PATCH 10/14] arm64: dts: qcom: qrb2210-rb1: describe WiFi/BT properly Dmitry Baryshkov
2025-12-31 12:17   ` Konrad Dybcio
2026-01-02 10:51   ` Bartosz Golaszewski
2025-12-30 23:36 ` [PATCH 11/14] arm64: dts: qcom: qrb4210-rb2: " Dmitry Baryshkov
2025-12-31 12:18   ` Konrad Dybcio
2026-01-02 10:33   ` Bartosz Golaszewski
2025-12-30 23:36 ` [PATCH 12/14] arm64: dts: qcom: sda660-ifc6560: " Dmitry Baryshkov
2025-12-31 12:19   ` Konrad Dybcio
2025-12-31 16:20     ` Dmitry Baryshkov
2026-01-02 10:52   ` Bartosz Golaszewski
2025-12-30 23:36 ` [PATCH 13/14] arm64: dts: qcom: sdm845-db845c: " Dmitry Baryshkov
2025-12-31 12:20   ` Konrad Dybcio
2026-01-02 10:53   ` Bartosz Golaszewski
2025-12-30 23:36 ` [PATCH 14/14] arm64: dts: qcom: sm8150-hdk: " Dmitry Baryshkov
2025-12-31 12:16   ` Konrad Dybcio
2025-12-31 17:12     ` Dmitry Baryshkov
2025-12-31 17:13       ` Konrad Dybcio
2026-01-02 10:51   ` Bartosz Golaszewski
2026-01-02 14:43 ` [PATCH 00/14] power: sequencing: extend WCN driver to support WCN399x device Rob Herring
  -- strict thread matches above, loose matches on Subject: below --
2026-01-06  1:01 [PATCH v2 01/14] regulator: dt-bindings: qcom,wcn3990-pmu: describe PMUs on WCN39xx Dmitry Baryshkov
2026-01-06  1:16 ` power: sequencing: extend WCN driver to support WCN399x device bluez.test.bot
2026-01-29 20:14 ` bluez.test.bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox