aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>2021-11-16 15:16:19 +0300
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>2022-02-15 12:53:42 +0300
commit98fb0483949923c61c39a03424b5c8c18d0787b5 (patch)
tree6cbc387571eb1c65b7dab2f9f27abe26adbfc9b7
parente9c896fdc0a556ddc455346da01c4ddcfe87f52d (diff)
HACK: arm64: dts: qcom: sm8450-qrd: enable wlan device found on PCIe0
While we do not support proper power sequencing for the WiFi+BT chips, hack this by daisy chaining all required voltage regulators. This makes regulator core switch them on one by one in the correct order. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-rw-r--r--arch/arm64/boot/dts/qcom/sm8450-qrd.dts65
1 files changed, 60 insertions, 5 deletions
diff --git a/arch/arm64/boot/dts/qcom/sm8450-qrd.dts b/arch/arm64/boot/dts/qcom/sm8450-qrd.dts
index 7e7e61dad1c2..47aec8d4136b 100644
--- a/arch/arm64/boot/dts/qcom/sm8450-qrd.dts
+++ b/arch/arm64/boot/dts/qcom/sm8450-qrd.dts
@@ -48,9 +48,9 @@
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-s9-supply = <&vph_pwr>;
- vdd-s10-supply = <&vph_pwr>;
- vdd-s11-supply = <&vph_pwr>;
- vdd-s12-supply = <&vph_pwr>;
+ vdd-s10-supply = <&vreg_l7e_2p8>;
+ vdd-s11-supply = <&vreg_s2e_0p85>;
+ vdd-s12-supply = <&vreg_s11b_0p95>;
vdd-l1-l4-supply = <&vreg_s11b_0p95>;
vdd-l2-l7-supply = <&vreg_bob>;
@@ -130,7 +130,7 @@
compatible = "qcom,pm8350c-rpmh-regulators";
qcom,pmic-id = "c";
- vdd-s1-supply = <&vph_pwr>;
+ vdd-s1-supply = <&vreg_s12b_1p25>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
@@ -286,7 +286,7 @@
qcom,pmic-id = "e";
vdd-s1-supply = <&vph_pwr>;
- vdd-s2-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vreg_s10b_1p8>;
vdd-s3-supply = <&vph_pwr>;
vdd-l1-l2-supply = <&vreg_s2e_0p85>;
@@ -349,10 +349,42 @@
regulator-max-microvolt = <2800000>;
};
};
+
+ xo_clk: xo-clk {
+ pinctrl-names = "default";
+ pinctrl-0 = <&xo_clk_gpios>;
+ compatible = "regulator-fixed";
+ regulator-name = "xo-clk-regulator";
+
+ gpio = <&tlmm 204 0>;
+
+ /* WLAN card specific delay */
+ startup-delay-us = <1000>;
+ enable-active-high;
+ vin-supply = <&vreg_s1c_1p86>;
+ };
+
+ wlan_en: wlan-en-1-8v {
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlan_en_gpios>;
+ compatible = "regulator-fixed";
+ regulator-name = "wlan-en-regulator";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ gpio = <&tlmm 80 0>;
+
+ /* WLAN card specific delay */
+ startup-delay-us = <70000>;
+ enable-active-high;
+ vin-supply = <&xo_clk>;
+ };
};
&pcie0 {
status = "okay";
+ vddpe-3v3-supply = <&wlan_en>;
+ max-link-speed = <2>;
};
&pcie0_phy {
@@ -371,6 +403,29 @@
&tlmm {
gpio-reserved-ranges = <28 4>, <36 4>;
+
+ xo_clk_gpios: xo_clk_gpios {
+ pinconf {
+ pins = "gpio204";
+ function = "gpio";
+
+ drive-strength = <16>;
+ output-low;
+ bias-pull-down;
+ };
+ };
+
+ wlan_en_gpios: wlan_en_gpios {
+ pinconf {
+ pins = "gpio80";
+ function = "gpio";
+
+ drive-strength = <16>;
+ output-low;
+ bias-pull-down;
+ };
+ };
+
};
&uart7 {