diff options
author | Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | 2021-11-16 15:16:19 +0300 |
---|---|---|
committer | Dmitry Baryshkov <dmitry.baryshkov@linaro.org> | 2022-02-15 12:53:42 +0300 |
commit | 98fb0483949923c61c39a03424b5c8c18d0787b5 (patch) | |
tree | 6cbc387571eb1c65b7dab2f9f27abe26adbfc9b7 | |
parent | e9c896fdc0a556ddc455346da01c4ddcfe87f52d (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.dts | 65 |
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 { |