Re: [RESEND PATCH 1/2] arm64: dts: add minimal DTS for Microsoft Surface Duo2

From: Bjorn Andersson
Date: Thu Nov 18 2021 - 22:51:19 EST


On Tue 16 Nov 17:50 CST 2021, Katherine Perez wrote:

> This is a minimal devicetree for Microsoft Surface Duo 2 with SM8350
> Chipset
>

Thanks Katherine, really nice to see this initial support. Looking
forward to see it grow. Just two small nits below.

> Signed-off-by: Katherine Perez <kaperez@xxxxxxxxxxxxxxxxxxx>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../qcom/sm8350-microsoft-surface-duo2.dts | 363 ++++++++++++++++++
> 2 files changed, 364 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/sm8350-microsoft-surface-duo2.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 6b816eb33309..a8cc6bd3c423 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -106,4 +106,5 @@ 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
> 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
> index 000000000000..941eac43614f
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm8350-microsoft-surface-duo2.dts
> @@ -0,0 +1,363 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (C) 2021, Microsoft Corporation
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#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";
> +

Can you please add:

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/adsp.mbn";

I have hopes that we'll be able to push some engineering signed versions
of these firmware files, for e.g. the SM8350 HDK one day.

When that happens that would conflict with your firmware path and I
don't expect your devices to accept the "invalid" signature of those
files.

So I would prefer if you follow Felipe's naming scheme and put these
(this and the other remoteprocs) in:

qcom/sm8350/microsoft/*

Thanks,
Bjorn

> +};
> +
> +&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/cdsp.mbn";
> +};
> +
> +&ipa {
> + status = "okay";
> +
> + memory-region = <&pil_ipa_fw_mem>;
> +};
> +
> +&qupv3_id_0 {
> + status = "okay";
> +};
> +
> +&slpi {
> + status = "okay";
> + firmware-name = "qcom/sm8350/slpi.mbn";
> +};
> +
> +&tlmm {
> + gpio-reserved-ranges = <9 8>;
> +};
> +
> +&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 {
> + 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>;
> +};
> --
> 2.31.1
>