]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: qcom: glymur-crd: Enable WLAN and Bluetooth
authorAbel Vesa <abel.vesa@oss.qualcomm.com>
Tue, 24 Mar 2026 15:12:19 +0000 (17:12 +0200)
committerBjorn Andersson <andersson@kernel.org>
Thu, 26 Mar 2026 14:40:58 +0000 (09:40 -0500)
Both Glymur and Mahua CRDs feature a WCN7850 M.2 WLAN and Bluetooth
combo card.

So describe both the 0.9V and the 3.3V regulators, then WCN7850 PMU and
the PCIe WLAN and the UART Bluetooth nodes.

Do this in the Glymur CRD generic dtsi so that both Glymur and Mahua CRDs
benefit from it towards enabling WLAN and Bluetooth functionality.

Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Tested-by: Gopikrishna Garmidi <gopikrishna.garmidi@oss.qualcomm.com>
Reviewed-by: Zijun Hu <zijun.hu@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260324-glymur-dts-crd-enable-bt-wlan-v2-1-6afcf1ac277a@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/glymur-crd.dtsi

index abc6cc8bb0a842110ba9dfb4a5d87cc884485f97..2852d257ac8c0e55758a7bf216946cd8772cb39d 100644 (file)
                regulator-boot-on;
        };
 
-       vreg_wlan: regulator-wlan {
+       vreg_wcn_0p95: regulator-wcn-0p95 {
                compatible = "regulator-fixed";
 
-               regulator-name = "VREG_WLAN_3P3";
+               regulator-name = "VREG_WCN_0P95";
+               regulator-min-microvolt = <950000>;
+               regulator-max-microvolt = <950000>;
+
+               vin-supply = <&vreg_wcn_3p3>;
+       };
+
+       vreg_wcn_3p3: regulator-wcn-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_WCN_3P3";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
 
                gpio = <&tlmm 94 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
-               pinctrl-0 = <&wlan_reg_en>;
+               pinctrl-0 = <&wcn_sw_en>;
                pinctrl-names = "default";
 
                regulator-boot-on;
                pinctrl-0 = <&wwan_reg_en>;
                pinctrl-names = "default";
        };
+
+       wcn7850-pmu {
+               compatible = "qcom,wcn7850-pmu";
+
+               vdd-supply = <&vreg_wcn_0p95>;
+               vddio-supply = <&vreg_l15b_e0_1p8>;
+               vddaon-supply = <&vreg_l15b_e0_1p8>;
+               vdddig-supply = <&vreg_l15b_e0_1p8>;
+               vddrfa1p2-supply = <&vreg_l15b_e0_1p8>;
+               vddrfa1p8-supply = <&vreg_l15b_e0_1p8>;
+
+               wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+               bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&wcn_wlan_bt_en>;
+               pinctrl-names = "default";
+
+               regulators {
+                       vreg_pmu_rfa_cmn: ldo0 {
+                               regulator-name = "vreg_pmu_rfa_cmn";
+                       };
+
+                       vreg_pmu_aon_0p59: ldo1 {
+                               regulator-name = "vreg_pmu_aon_0p59";
+                       };
+
+                       vreg_pmu_wlcx_0p8: ldo2 {
+                               regulator-name = "vreg_pmu_wlcx_0p8";
+                       };
+
+                       vreg_pmu_wlmx_0p85: ldo3 {
+                               regulator-name = "vreg_pmu_wlmx_0p85";
+                       };
+
+                       vreg_pmu_btcmx_0p85: ldo4 {
+                               regulator-name = "vreg_pmu_btcmx_0p85";
+                       };
+
+                       vreg_pmu_rfa_0p8: ldo5 {
+                               regulator-name = "vreg_pmu_rfa_0p8";
+                       };
+
+                       vreg_pmu_rfa_1p2: ldo6 {
+                               regulator-name = "vreg_pmu_rfa_1p2";
+                       };
+
+                       vreg_pmu_rfa_1p8: ldo7 {
+                               regulator-name = "vreg_pmu_rfa_1p8";
+                       };
+
+                       vreg_pmu_pcie_0p9: ldo8 {
+                               regulator-name = "vreg_pmu_pcie_0p9";
+                       };
+
+                       vreg_pmu_pcie_1p8: ldo9 {
+                               regulator-name = "vreg_pmu_pcie_1p8";
+                       };
+               };
+       };
 };
 
 &apps_rsc {
 };
 
 &pcie4 {
-       vddpe-3v3-supply = <&vreg_wlan>;
-
        pinctrl-0 = <&pcie4_default>;
        pinctrl-names = "default";
 
 &pcie4_port0 {
        reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
        wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
+       wifi@0 {
+               compatible = "pci17cb,1107";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+               vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+               vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+               vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+               vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+       };
 };
 
 &pcie5 {
                };
        };
 
-       wlan_reg_en: wlan-reg-en-state {
+       wcn_wlan_bt_en: wcn-wlan-bt-en-state {
+               pins = "gpio116", "gpio117";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       wcn_sw_en: wcn-sw-en-state {
                pins = "gpio94";
                function = "gpio";
                drive-strength = <2>;
                bias-disable;
        };
 };
+
+&uart14 {
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,wcn7850-bt";
+               max-speed = <3200000>;
+
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+               vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+               vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+       };
+};