arm64: dts: qcom: sdm845-oneplus: Describe Wi-Fi/BT properly

The onboard Wi-Fi / BT device, WCN3990, has a simple on-chip PMU, which
further spreads generated voltage. Describe the PMU in the device tree
and rewire Bluetooth and WiFi supply properties to use the PMU LDO
outputs instead of referencing the SoC regulators directly.

Verified against the datasheet.

Assisted-by: Claude:claude-opus-4.6
Signed-off-by: David Heidelberg <david@ixit.cz>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260327-wcn3990-pwrctl-sdm845-v1-2-3f5c34e3fdd0@ixit.cz
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
master
David Heidelberg 2026-03-27 14:07:09 +01:00 committed by Bjorn Andersson
parent 0a9c871566
commit 7a4790b1a2
1 changed files with 56 additions and 9 deletions

View File

@ -230,6 +230,43 @@
pinctrl-names = "default";
regulator-boot-on;
};
wcn3990-pmu {
compatible = "qcom,wcn3990-pmu";
pinctrl-0 = <&sw_ctrl_default>;
pinctrl-names = "default";
vddio-supply = <&vreg_s4a_1p8>;
vddxo-supply = <&vreg_l7a_1p8>;
vddrf-supply = <&vreg_l17a_1p3>;
vddch0-supply = <&vreg_l25a_3p3>;
vddch1-supply = <&vreg_l23a_3p3>;
swctrl-gpios = <&pm8998_gpios 3 GPIO_ACTIVE_HIGH>;
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";
};
vreg_pmu_ch1: ldo4 {
regulator-name = "vreg_pmu_ch1";
};
};
};
};
&adsp_pas {
@ -536,6 +573,14 @@
};
&pm8998_gpios {
sw_ctrl_default: sw-ctrl-default-state {
pins = "gpio3";
function = "normal";
input-enable;
bias-pull-down;
};
volume_down_gpio: pm8998-gpio5-state {
pinconf {
pins = "gpio5";
@ -804,10 +849,11 @@
*/
firmware-name = "OnePlus/enchilada/crnv21.bin";
vddio-supply = <&vreg_s4a_1p8>;
vddxo-supply = <&vreg_l7a_1p8>;
vddrf-supply = <&vreg_l17a_1p3>;
vddch0-supply = <&vreg_l25a_3p3>;
vddio-supply = <&vreg_pmu_io>;
vddxo-supply = <&vreg_pmu_xo>;
vddrf-supply = <&vreg_pmu_rf>;
vddch0-supply = <&vreg_pmu_ch0>;
max-speed = <3200000>;
};
};
@ -981,13 +1027,14 @@
};
&wifi {
status = "okay";
vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
vdd-1.8-xo-supply = <&vreg_pmu_xo>;
vdd-1.3-rfa-supply = <&vreg_pmu_rf>;
vdd-3.3-ch0-supply = <&vreg_pmu_ch0>;
vdd-3.3-ch1-supply = <&vreg_pmu_ch1>;
qcom,calibration-variant = "oneplus_sdm845";
qcom,snoc-host-cap-8bit-quirk;
status = "okay";
};