arm64: dts: qcom: add minimal DTS for Microsoft Surface Duo 2
authorKatherine Perez <kaperez@linux.microsoft.com>
Thu, 9 Dec 2021 18:32:46 +0000 (10:32 -0800)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Wed, 15 Dec 2021 03:31:22 +0000 (21:31 -0600)
This is a minimal devicetree for Microsoft Surface Duo 2 with SM8350
Chipset

Signed-off-by: Katherine Perez <kaperez@linux.microsoft.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20211209183246.842880-2-kaperez@linux.microsoft.com
arch/arm64/boot/dts/qcom/Makefile
arch/arm64/boot/dts/qcom/sm8350-microsoft-surface-duo2.dts [new file with mode: 0644]

index 693b30c51e33dcca99a4d91cca511dacfa6e1263..a3eedb8b33ee4b7f6971c4423be2da51ff42f5d1 100644 (file)
@@ -117,6 +117,7 @@ dtb-$(CONFIG_ARCH_QCOM)     += sm8250-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8250-sony-xperia-edo-pdx203.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8250-sony-xperia-edo-pdx206.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8350-hdk.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sm8350-microsoft-surface-duo2.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8350-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8350-sony-xperia-sagami-pdx214.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8350-sony-xperia-sagami-pdx215.dtb
diff --git a/arch/arm64/boot/dts/qcom/sm8350-microsoft-surface-duo2.dts b/arch/arm64/boot/dts/qcom/sm8350-microsoft-surface-duo2.dts
new file mode 100644 (file)
index 0000000..9cb1d84
--- /dev/null
@@ -0,0 +1,369 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (C) 2021, Microsoft Corporation
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8350.dtsi"
+#include "pm8350.dtsi"
+#include "pm8350b.dtsi"
+#include "pm8350c.dtsi"
+#include "pmk8350.dtsi"
+#include "pmr735a.dtsi"
+#include "pmr735b.dtsi"
+
+/ {
+       model = "Microsoft Surface Duo 2";
+       compatible = "microsoft,surface-duo2", "qcom,sm8350";
+       chassis-type = "handset";
+
+       aliases {
+               serial0 = &uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&adsp {
+       status = "okay";
+       firmware-name = "qcom/sm8350/microsoft/adsp.mbn";
+};
+
+&apps_rsc {
+       pm8350-rpmh-regulators {
+               compatible = "qcom,pm8350-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               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-l1-l4-supply = <&vreg_s11b_0p95>;
+               vdd-l2-l7-supply = <&vreg_bob>;
+               vdd-l3-l5-supply = <&vreg_bob>;
+               vdd-l6-l9-l10-supply = <&vreg_s11b_0p95>;
+               vdd-l8-supply = <&vreg_s2c_0p8>;
+
+               vreg_s10b_1p8: smps10 {
+                       regulator-name = "vreg_s10b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               vreg_s11b_0p95: smps11 {
+                       regulator-name = "vreg_s11b_0p95";
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <1000000>;
+               };
+
+               vreg_s12b_1p25: smps12 {
+                       regulator-name = "vreg_s12b_1p25";
+                       regulator-min-microvolt = <1224000>;
+                       regulator-max-microvolt = <1360000>;
+               };
+
+               vreg_l1b_0p88: ldo1 {
+                       regulator-name = "vreg_l1b_0p88";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p07: ldo2 {
+                       regulator-name = "vreg_l2b_3p07";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3b_0p9: ldo3 {
+                       regulator-name = "vreg_l3b_0p9";
+                       regulator-min-microvolt = <904000>;
+                       regulator-max-microvolt = <904000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b_0p88: ldo5 {
+                       regulator-name = "vreg_l3b_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <888000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p2: ldo6 {
+                       regulator-name = "vreg_l6b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1208000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_2p96: ldo7 {
+                       regulator-name = "vreg_l7b_2p96";
+                       regulator-min-microvolt = <2400000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_1p2: ldo9 {
+                       regulator-name = "vreg_l9b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       pm8350c-rpmh-regulators {
+               compatible = "qcom,pm8350c-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-s9-supply = <&vph_pwr>;
+               vdd-s10-supply = <&vph_pwr>;
+
+               vdd-l1-l12-supply = <&vreg_s1c_1p86>;
+               vdd-l2-l8-supply = <&vreg_s1c_1p86>;
+               vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
+               vdd-l6-l9-l11-supply = <&vreg_bob>;
+               vdd-l10-supply = <&vreg_s12b_1p25>;
+
+               vdd-bob-supply = <&vph_pwr>;
+
+               vreg_s1c_1p86: smps1 {
+                       regulator-name = "vreg_s1c_1p86";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1952000>;
+               };
+
+               vreg_s2c_0p8: smps2 {
+                       regulator-name = "vreg_s2c_0p8";
+                       regulator-min-microvolt = <640000>;
+                       regulator-max-microvolt = <1000000>;
+               };
+
+               vreg_s10c_1p05: smps10 {
+                       regulator-name = "vreg_s10c_1p05";
+                       regulator-min-microvolt = <1048000>;
+                       regulator-max-microvolt = <1128000>;
+               };
+
+               vreg_bob: bob {
+                       regulator-name = "vreg_bob";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+               };
+
+               vreg_l1c_1p8: ldo1 {
+                       regulator-name = "vreg_l1c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_1p8: ldo2 {
+                       regulator-name = "vreg_l2c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_3p0: ldo3 {
+                       regulator-name = "vreg_l3c_3p0";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c_uim1: ldo4 {
+                       regulator-name = "vreg_l4c_uim1";
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5c_uim2: ldo5 {
+                       regulator-name = "vreg_l5c_uim2";
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6c_1p8: ldo6 {
+                       regulator-name = "vreg_l6c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7c_3p0: ldo7 {
+                       regulator-name = "vreg_l7c_3p0";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8c_1p8: ldo8 {
+                       regulator-name = "vreg_l8c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9c_2p96: ldo9 {
+                       regulator-name = "vreg_l9c_2p96";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10c_1p2: ldo10 {
+                       regulator-name = "vreg_l10c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11c_2p96: ldo11 {
+                       regulator-name = "vreg_l11c_2p96";
+                       regulator-min-microvolt = <2400000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12c_1p8: ldo12 {
+                       regulator-name = "vreg_l12c_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13c_3p0: ldo13 {
+                       regulator-name = "vreg_l13c_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&cdsp {
+       status = "okay";
+       firmware-name = "qcom/sm8350/microsoft/cdsp.mbn";
+};
+
+&ipa {
+       status = "okay";
+
+       memory-region = <&pil_ipa_fw_mem>;
+};
+
+&mpss {
+       status = "okay";
+       firmware-name = "qcom/sm8350/microsoft/modem.mbn";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&slpi {
+       status = "okay";
+       firmware-name = "qcom/sm8350/microsoft/slpi.mbn";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <4 4>, <12 4>, <56 4>, <76 4>;
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&ufs_mem_hc {
+       status = "okay";
+
+       reset-gpios = <&tlmm 203 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l7b_2p96>;
+       vcc-max-microamp = <800000>;
+       vccq-supply = <&vreg_l9b_1p2>;
+       vccq-max-microamp = <900000>;
+};
+
+&ufs_mem_phy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l5b_0p88>;
+       vdda-max-microamp = <91600>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+       vdda-pll-max-microamp = <19000>;
+};
+
+&usb_1 {
+       status = "okay";
+       dr_mode = "peripheral";
+};
+
+&usb_1_hsphy {
+       status = "okay";
+
+       vdda-pll-supply = <&vreg_l5b_0p88>;
+       vdda18-supply = <&vreg_l1c_1p8>;
+       vdda33-supply = <&vreg_l2b_3p07>;
+};
+
+&usb_1_qmpphy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l6b_1p2>;
+       vdda-pll-supply = <&vreg_l1b_0p88>;
+};
+
+&usb_2 {
+       status = "okay";
+};
+
+&usb_2_hsphy {
+       status = "okay";
+
+       vdda-pll-supply = <&vreg_l5b_0p88>;
+       vdda18-supply = <&vreg_l1c_1p8>;
+       vdda33-supply = <&vreg_l2b_3p07>;
+};
+
+&usb_2_qmpphy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l6b_1p2>;
+       vdda-pll-supply = <&vreg_l5b_0p88>;
+};