0001 // SPDX-License-Identifier: BSD-3-Clause
0002 /*
0003 * Copyright (C) 2021, Microsoft Corporation
0004 */
0005
0006 /dts-v1/;
0007
0008 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
0009 #include "sm8350.dtsi"
0010 #include "pm8350.dtsi"
0011 #include "pm8350b.dtsi"
0012 #include "pm8350c.dtsi"
0013 #include "pmk8350.dtsi"
0014 #include "pmr735a.dtsi"
0015 #include "pmr735b.dtsi"
0016
0017 / {
0018 model = "Microsoft Surface Duo 2";
0019 compatible = "microsoft,surface-duo2", "qcom,sm8350";
0020 chassis-type = "handset";
0021
0022 aliases {
0023 serial0 = &uart2;
0024 };
0025
0026 chosen {
0027 stdout-path = "serial0:115200n8";
0028 };
0029
0030 vph_pwr: vph-pwr-regulator {
0031 compatible = "regulator-fixed";
0032 regulator-name = "vph_pwr";
0033 regulator-min-microvolt = <3700000>;
0034 regulator-max-microvolt = <3700000>;
0035
0036 regulator-always-on;
0037 regulator-boot-on;
0038 };
0039 };
0040
0041 &adsp {
0042 status = "okay";
0043 firmware-name = "qcom/sm8350/microsoft/adsp.mbn";
0044 };
0045
0046 &apps_rsc {
0047 pm8350-rpmh-regulators {
0048 compatible = "qcom,pm8350-rpmh-regulators";
0049 qcom,pmic-id = "b";
0050
0051 vdd-s1-supply = <&vph_pwr>;
0052 vdd-s2-supply = <&vph_pwr>;
0053 vdd-s3-supply = <&vph_pwr>;
0054 vdd-s4-supply = <&vph_pwr>;
0055 vdd-s5-supply = <&vph_pwr>;
0056 vdd-s6-supply = <&vph_pwr>;
0057 vdd-s7-supply = <&vph_pwr>;
0058 vdd-s8-supply = <&vph_pwr>;
0059 vdd-s9-supply = <&vph_pwr>;
0060 vdd-s10-supply = <&vph_pwr>;
0061 vdd-s11-supply = <&vph_pwr>;
0062 vdd-s12-supply = <&vph_pwr>;
0063
0064 vdd-l1-l4-supply = <&vreg_s11b_0p95>;
0065 vdd-l2-l7-supply = <&vreg_bob>;
0066 vdd-l3-l5-supply = <&vreg_bob>;
0067 vdd-l6-l9-l10-supply = <&vreg_s11b_0p95>;
0068 vdd-l8-supply = <&vreg_s2c_0p8>;
0069
0070 vreg_s10b_1p8: smps10 {
0071 regulator-name = "vreg_s10b_1p8";
0072 regulator-min-microvolt = <1800000>;
0073 regulator-max-microvolt = <1800000>;
0074 };
0075
0076 vreg_s11b_0p95: smps11 {
0077 regulator-name = "vreg_s11b_0p95";
0078 regulator-min-microvolt = <752000>;
0079 regulator-max-microvolt = <1000000>;
0080 };
0081
0082 vreg_s12b_1p25: smps12 {
0083 regulator-name = "vreg_s12b_1p25";
0084 regulator-min-microvolt = <1224000>;
0085 regulator-max-microvolt = <1360000>;
0086 };
0087
0088 vreg_l1b_0p88: ldo1 {
0089 regulator-name = "vreg_l1b_0p88";
0090 regulator-min-microvolt = <912000>;
0091 regulator-max-microvolt = <920000>;
0092 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0093 };
0094
0095 vreg_l2b_3p07: ldo2 {
0096 regulator-name = "vreg_l2b_3p07";
0097 regulator-min-microvolt = <3072000>;
0098 regulator-max-microvolt = <3072000>;
0099 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0100 };
0101
0102 vreg_l3b_0p9: ldo3 {
0103 regulator-name = "vreg_l3b_0p9";
0104 regulator-min-microvolt = <904000>;
0105 regulator-max-microvolt = <904000>;
0106 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0107 };
0108
0109 vreg_l5b_0p88: ldo5 {
0110 regulator-name = "vreg_l3b_0p9";
0111 regulator-min-microvolt = <880000>;
0112 regulator-max-microvolt = <888000>;
0113 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0114 };
0115
0116 vreg_l6b_1p2: ldo6 {
0117 regulator-name = "vreg_l6b_1p2";
0118 regulator-min-microvolt = <1200000>;
0119 regulator-max-microvolt = <1208000>;
0120 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0121 };
0122
0123 vreg_l7b_2p96: ldo7 {
0124 regulator-name = "vreg_l7b_2p96";
0125 regulator-min-microvolt = <2400000>;
0126 regulator-max-microvolt = <3008000>;
0127 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0128 };
0129
0130 vreg_l9b_1p2: ldo9 {
0131 regulator-name = "vreg_l9b_1p2";
0132 regulator-min-microvolt = <1200000>;
0133 regulator-max-microvolt = <1200000>;
0134 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0135 };
0136 };
0137
0138 pm8350c-rpmh-regulators {
0139 compatible = "qcom,pm8350c-rpmh-regulators";
0140 qcom,pmic-id = "c";
0141
0142 vdd-s1-supply = <&vph_pwr>;
0143 vdd-s2-supply = <&vph_pwr>;
0144 vdd-s3-supply = <&vph_pwr>;
0145 vdd-s4-supply = <&vph_pwr>;
0146 vdd-s5-supply = <&vph_pwr>;
0147 vdd-s6-supply = <&vph_pwr>;
0148 vdd-s7-supply = <&vph_pwr>;
0149 vdd-s8-supply = <&vph_pwr>;
0150 vdd-s9-supply = <&vph_pwr>;
0151 vdd-s10-supply = <&vph_pwr>;
0152
0153 vdd-l1-l12-supply = <&vreg_s1c_1p86>;
0154 vdd-l2-l8-supply = <&vreg_s1c_1p86>;
0155 vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
0156 vdd-l6-l9-l11-supply = <&vreg_bob>;
0157 vdd-l10-supply = <&vreg_s12b_1p25>;
0158
0159 vdd-bob-supply = <&vph_pwr>;
0160
0161 vreg_s1c_1p86: smps1 {
0162 regulator-name = "vreg_s1c_1p86";
0163 regulator-min-microvolt = <1800000>;
0164 regulator-max-microvolt = <1952000>;
0165 };
0166
0167 vreg_s2c_0p8: smps2 {
0168 regulator-name = "vreg_s2c_0p8";
0169 regulator-min-microvolt = <640000>;
0170 regulator-max-microvolt = <1000000>;
0171 };
0172
0173 vreg_s10c_1p05: smps10 {
0174 regulator-name = "vreg_s10c_1p05";
0175 regulator-min-microvolt = <1048000>;
0176 regulator-max-microvolt = <1128000>;
0177 };
0178
0179 vreg_bob: bob {
0180 regulator-name = "vreg_bob";
0181 regulator-min-microvolt = <3008000>;
0182 regulator-max-microvolt = <3960000>;
0183 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
0184 };
0185
0186 vreg_l1c_1p8: ldo1 {
0187 regulator-name = "vreg_l1c_1p8";
0188 regulator-min-microvolt = <1800000>;
0189 regulator-max-microvolt = <1800000>;
0190 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0191 };
0192
0193 vreg_l2c_1p8: ldo2 {
0194 regulator-name = "vreg_l2c_1p8";
0195 regulator-min-microvolt = <1800000>;
0196 regulator-max-microvolt = <1800000>;
0197 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0198 };
0199
0200 vreg_l3c_3p0: ldo3 {
0201 regulator-name = "vreg_l3c_3p0";
0202 regulator-min-microvolt = <3008000>;
0203 regulator-max-microvolt = <3008000>;
0204 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0205 };
0206
0207 vreg_l4c_uim1: ldo4 {
0208 regulator-name = "vreg_l4c_uim1";
0209 regulator-min-microvolt = <1704000>;
0210 regulator-max-microvolt = <3000000>;
0211 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0212 };
0213
0214 vreg_l5c_uim2: ldo5 {
0215 regulator-name = "vreg_l5c_uim2";
0216 regulator-min-microvolt = <1704000>;
0217 regulator-max-microvolt = <3000000>;
0218 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0219 };
0220
0221 vreg_l6c_1p8: ldo6 {
0222 regulator-name = "vreg_l6c_1p8";
0223 regulator-min-microvolt = <1800000>;
0224 regulator-max-microvolt = <2960000>;
0225 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0226 };
0227
0228 vreg_l7c_3p0: ldo7 {
0229 regulator-name = "vreg_l7c_3p0";
0230 regulator-min-microvolt = <3008000>;
0231 regulator-max-microvolt = <3008000>;
0232 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0233 };
0234
0235 vreg_l8c_1p8: ldo8 {
0236 regulator-name = "vreg_l8c_1p8";
0237 regulator-min-microvolt = <1800000>;
0238 regulator-max-microvolt = <1800000>;
0239 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0240 };
0241
0242 vreg_l9c_2p96: ldo9 {
0243 regulator-name = "vreg_l9c_2p96";
0244 regulator-min-microvolt = <2960000>;
0245 regulator-max-microvolt = <3008000>;
0246 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0247 };
0248
0249 vreg_l10c_1p2: ldo10 {
0250 regulator-name = "vreg_l10c_1p2";
0251 regulator-min-microvolt = <1200000>;
0252 regulator-max-microvolt = <1200000>;
0253 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0254 };
0255
0256 vreg_l11c_2p96: ldo11 {
0257 regulator-name = "vreg_l11c_2p96";
0258 regulator-min-microvolt = <2400000>;
0259 regulator-max-microvolt = <3008000>;
0260 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0261 };
0262
0263 vreg_l12c_1p8: ldo12 {
0264 regulator-name = "vreg_l12c_1p8";
0265 regulator-min-microvolt = <1800000>;
0266 regulator-max-microvolt = <2000000>;
0267 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0268 };
0269
0270 vreg_l13c_3p0: ldo13 {
0271 regulator-name = "vreg_l13c_3p0";
0272 regulator-min-microvolt = <3000000>;
0273 regulator-max-microvolt = <3000000>;
0274 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
0275 };
0276 };
0277 };
0278
0279 &cdsp {
0280 status = "okay";
0281 firmware-name = "qcom/sm8350/microsoft/cdsp.mbn";
0282 };
0283
0284 &i2c10 {
0285 status = "okay";
0286 };
0287
0288 &i2c11 {
0289 status = "okay";
0290 };
0291
0292 &ipa {
0293 status = "okay";
0294
0295 memory-region = <&pil_ipa_fw_mem>;
0296 };
0297
0298 &mpss {
0299 status = "okay";
0300 firmware-name = "qcom/sm8350/microsoft/modem.mbn";
0301 };
0302
0303 &qupv3_id_0 {
0304 status = "okay";
0305 };
0306
0307 &qupv3_id_1 {
0308 status = "okay";
0309 };
0310
0311 &slpi {
0312 status = "okay";
0313 firmware-name = "qcom/sm8350/microsoft/slpi.mbn";
0314 };
0315
0316 &tlmm {
0317 gpio-reserved-ranges = <4 4>, <12 4>, <56 4>, <76 4>;
0318 };
0319
0320 &uart2 {
0321 status = "okay";
0322 };
0323
0324 &ufs_mem_hc {
0325 status = "okay";
0326
0327 reset-gpios = <&tlmm 203 GPIO_ACTIVE_LOW>;
0328
0329 vcc-supply = <&vreg_l7b_2p96>;
0330 vcc-max-microamp = <800000>;
0331 vccq-supply = <&vreg_l9b_1p2>;
0332 vccq-max-microamp = <900000>;
0333 };
0334
0335 &ufs_mem_phy {
0336 status = "okay";
0337
0338 vdda-phy-supply = <&vreg_l5b_0p88>;
0339 vdda-pll-supply = <&vreg_l6b_1p2>;
0340 };
0341
0342 &usb_1 {
0343 status = "okay";
0344 dr_mode = "peripheral";
0345 };
0346
0347 &usb_1_hsphy {
0348 status = "okay";
0349
0350 vdda-pll-supply = <&vreg_l5b_0p88>;
0351 vdda18-supply = <&vreg_l1c_1p8>;
0352 vdda33-supply = <&vreg_l2b_3p07>;
0353 };
0354
0355 &usb_1_qmpphy {
0356 status = "okay";
0357
0358 vdda-phy-supply = <&vreg_l6b_1p2>;
0359 vdda-pll-supply = <&vreg_l1b_0p88>;
0360 };
0361
0362 &usb_2 {
0363 status = "okay";
0364 };
0365
0366 &usb_2_hsphy {
0367 status = "okay";
0368
0369 vdda-pll-supply = <&vreg_l5b_0p88>;
0370 vdda18-supply = <&vreg_l1c_1p8>;
0371 vdda33-supply = <&vreg_l2b_3p07>;
0372 };
0373
0374 &usb_2_qmpphy {
0375 status = "okay";
0376
0377 vdda-phy-supply = <&vreg_l6b_1p2>;
0378 vdda-pll-supply = <&vreg_l5b_0p88>;
0379 };