1 // SPDX-License-Identifier: BSD-3-Clause 2 /* 3 * Copyright (C) 2021, Microsoft Corporation 4 */ 5 6 /dts-v1/; 7 8 #include <dt-bindings/regulator/qcom,rpmh-regu 9 #include <dt-bindings/gpio/gpio.h> 10 #include "sm8150.dtsi" 11 #include "pm8150.dtsi" 12 #include "pm8150b.dtsi" 13 #include "pm8150l.dtsi" 14 15 / { 16 model = "Microsoft Surface Duo"; 17 compatible = "microsoft,surface-duo", 18 chassis-type = "handset"; 19 20 aliases { 21 serial0 = &uart2; 22 }; 23 24 chosen { 25 stdout-path = "serial0:115200n 26 }; 27 28 vph_pwr: vph-pwr-regulator { 29 compatible = "regulator-fixed" 30 regulator-name = "vph_pwr"; 31 regulator-min-microvolt = <370 32 regulator-max-microvolt = <370 33 }; 34 35 /* 36 * Apparently RPMh does not provide su 37 * is always-on; model it as a fixed r 38 */ 39 vreg_s4a_1p8: pm8150-s4 { 40 compatible = "regulator-fixed" 41 regulator-name = "vreg_s4a_1p8 42 43 regulator-min-microvolt = <180 44 regulator-max-microvolt = <180 45 46 regulator-always-on; 47 regulator-boot-on; 48 49 vin-supply = <&vph_pwr>; 50 }; 51 52 gpio-keys { 53 compatible = "gpio-keys"; 54 55 key-vol-up { 56 label = "Volume Up"; 57 gpios = <&pm8150_gpios 58 linux,code = <KEY_VOLU 59 }; 60 }; 61 }; 62 63 &apps_rsc { 64 regulators-0 { 65 compatible = "qcom,pm8150-rpmh 66 qcom,pmic-id = "a"; 67 68 vdd-s1-supply = <&vph_pwr>; 69 vdd-s2-supply = <&vph_pwr>; 70 vdd-s3-supply = <&vph_pwr>; 71 vdd-s4-supply = <&vph_pwr>; 72 vdd-s5-supply = <&vph_pwr>; 73 vdd-s6-supply = <&vph_pwr>; 74 vdd-s7-supply = <&vph_pwr>; 75 vdd-s8-supply = <&vph_pwr>; 76 vdd-s9-supply = <&vph_pwr>; 77 vdd-s10-supply = <&vph_pwr>; 78 79 vdd-l1-l8-l11-supply = <&vreg_ 80 vdd-l2-l10-supply = <&vreg_bob 81 vdd-l3-l4-l5-l18-supply = <&vr 82 vdd-l6-l9-supply = <&vreg_s8c_ 83 vdd-l7-l12-l14-l15-supply = <& 84 vdd-l13-l16-l17-supply = <&vre 85 86 vreg_s5a_2p0: smps5 { 87 regulator-min-microvol 88 regulator-max-microvol 89 }; 90 91 vreg_s6a_0p9: smps6 { 92 regulator-min-microvol 93 regulator-max-microvol 94 }; 95 96 vdda_wcss_pll: 97 vreg_l1a_0p75: ldo1 { 98 regulator-min-microvol 99 regulator-max-microvol 100 regulator-initial-mode 101 }; 102 103 vdd_pdphy: 104 vdda_usb_hs_3p1: 105 vreg_l2a_3p1: ldo2 { 106 regulator-min-microvol 107 regulator-max-microvol 108 regulator-initial-mode 109 }; 110 111 vreg_l3a_0p8: ldo3 { 112 regulator-min-microvol 113 regulator-max-microvol 114 regulator-initial-mode 115 }; 116 117 vdd_usb_hs_core: 118 vdda_csi_0_0p9: 119 vdda_csi_1_0p9: 120 vdda_csi_2_0p9: 121 vdda_csi_3_0p9: 122 vdda_dsi_0_0p9: 123 vdda_dsi_1_0p9: 124 vdda_dsi_0_pll_0p9: 125 vdda_dsi_1_pll_0p9: 126 vdda_pcie_1ln_core: 127 vdda_pcie_2ln_core: 128 vdda_pll_hv_cc_ebi01: 129 vdda_pll_hv_cc_ebi23: 130 vdda_qrefs_0p875_5: 131 vdda_sp_sensor: 132 vdda_ufs_2ln_core_1: 133 vdda_ufs_2ln_core_2: 134 vdda_usb_ss_dp_core_1: 135 vdda_usb_ss_dp_core_2: 136 vdda_qlink_lv: 137 vdda_qlink_lv_ck: 138 vreg_l5a_0p875: ldo5 { 139 regulator-min-microvol 140 regulator-max-microvol 141 regulator-initial-mode 142 }; 143 144 vreg_l6a_1p2: ldo6 { 145 regulator-min-microvol 146 regulator-max-microvol 147 regulator-initial-mode 148 }; 149 150 vreg_l7a_1p8: ldo7 { 151 regulator-min-microvol 152 regulator-max-microvol 153 regulator-initial-mode 154 }; 155 156 vddpx_10: 157 vreg_l9a_1p2: ldo9 { 158 regulator-min-microvol 159 regulator-max-microvol 160 regulator-initial-mode 161 }; 162 163 vreg_l10a_2p5: ldo10 { 164 regulator-min-microvol 165 regulator-max-microvol 166 regulator-initial-mode 167 }; 168 169 vreg_l11a_0p8: ldo11 { 170 regulator-min-microvol 171 regulator-max-microvol 172 regulator-initial-mode 173 }; 174 175 vdd_qfprom: 176 vdd_qfprom_sp: 177 vdda_apc_cs_1p8: 178 vdda_gfx_cs_1p8: 179 vdda_usb_hs_1p8: 180 vdda_qrefs_vref_1p8: 181 vddpx_10_a: 182 vreg_l12a_1p8: ldo12 { 183 regulator-min-microvol 184 regulator-max-microvol 185 regulator-initial-mode 186 }; 187 188 vreg_l13a_2p7: ldo13 { 189 regulator-min-microvol 190 regulator-max-microvol 191 regulator-initial-mode 192 }; 193 194 vreg_l14a_1p8: ldo14 { 195 regulator-min-microvol 196 regulator-max-microvol 197 regulator-initial-mode 198 }; 199 200 vreg_l15a_1p7: ldo15 { 201 regulator-min-microvol 202 regulator-max-microvol 203 regulator-initial-mode 204 }; 205 206 vreg_l16a_2p7: ldo16 { 207 regulator-min-microvol 208 regulator-max-microvol 209 regulator-initial-mode 210 }; 211 212 vreg_l17a_3p0: ldo17 { 213 regulator-min-microvol 214 regulator-max-microvol 215 regulator-initial-mode 216 }; 217 }; 218 219 regulators-1 { 220 compatible = "qcom,pm8150l-rpm 221 qcom,pmic-id = "c"; 222 223 vdd-s1-supply = <&vph_pwr>; 224 vdd-s2-supply = <&vph_pwr>; 225 vdd-s3-supply = <&vph_pwr>; 226 vdd-s4-supply = <&vph_pwr>; 227 vdd-s5-supply = <&vph_pwr>; 228 vdd-s6-supply = <&vph_pwr>; 229 vdd-s7-supply = <&vph_pwr>; 230 vdd-s8-supply = <&vph_pwr>; 231 232 vdd-l1-l8-supply = <&vreg_s4a_ 233 vdd-l2-l3-supply = <&vreg_s8c_ 234 vdd-l4-l5-l6-supply = <&vreg_b 235 vdd-l7-l11-supply = <&vreg_bob 236 vdd-l9-l10-supply = <&vreg_bob 237 238 vdd-bob-supply = <&vph_pwr>; 239 vdd-flash-supply = <&vreg_bob> 240 vdd-rgb-supply = <&vreg_bob>; 241 242 vreg_bob: bob { 243 regulator-min-microvol 244 regulator-max-microvol 245 regulator-initial-mode 246 regulator-allow-bypass 247 }; 248 249 vreg_s8c_1p3: smps8 { 250 regulator-min-microvol 251 regulator-max-microvol 252 }; 253 254 vreg_l1c_1p8: ldo1 { 255 regulator-min-microvol 256 regulator-max-microvol 257 regulator-initial-mode 258 }; 259 260 vdda_wcss_adcdac_1: 261 vdda_wcss_adcdac_22: 262 vreg_l2c_1p3: ldo2 { 263 regulator-min-microvol 264 regulator-max-microvol 265 regulator-initial-mode 266 }; 267 268 vdda_hv_ebi0: 269 vdda_hv_ebi1: 270 vdda_hv_ebi2: 271 vdda_hv_ebi3: 272 vdda_hv_refgen0: 273 vdda_qlink_hv_ck: 274 vreg_l3c_1p2: ldo3 { 275 regulator-min-microvol 276 regulator-max-microvol 277 regulator-initial-mode 278 }; 279 280 vddpx_5: 281 vreg_l4c_1p8: ldo4 { 282 regulator-min-microvol 283 regulator-max-microvol 284 regulator-initial-mode 285 }; 286 287 vddpx_6: 288 vreg_l5c_1p8: ldo5 { 289 regulator-min-microvol 290 regulator-max-microvol 291 regulator-initial-mode 292 }; 293 294 vddpx_2: 295 vreg_l6c_2p9: ldo6 { 296 regulator-min-microvol 297 regulator-max-microvol 298 regulator-initial-mode 299 }; 300 301 vreg_l7c_3p0: ldo7 { 302 regulator-min-microvol 303 regulator-max-microvol 304 regulator-initial-mode 305 }; 306 307 vreg_l8c_1p8: ldo8 { 308 regulator-min-microvol 309 regulator-max-microvol 310 regulator-initial-mode 311 }; 312 313 vreg_l9c_2p9: ldo9 { 314 regulator-min-microvol 315 regulator-max-microvol 316 regulator-initial-mode 317 }; 318 319 vreg_l10c_3p3: ldo10 { 320 regulator-min-microvol 321 regulator-max-microvol 322 regulator-initial-mode 323 }; 324 325 vreg_l11c_3p3: ldo11 { 326 regulator-min-microvol 327 regulator-max-microvol 328 regulator-initial-mode 329 }; 330 }; 331 332 regulators-2 { 333 compatible = "qcom,pm8009-rpmh 334 qcom,pmic-id = "f"; 335 336 vdd-s1-supply = <&vph_pwr>; 337 vdd-s2-supply = <&vreg_bob>; 338 339 vdd-l2-supply = <&vreg_s8c_1p3 340 vdd-l5-l6-supply = <&vreg_bob> 341 342 vreg_l2f_1p2: ldo2 { 343 regulator-min-microvol 344 regulator-max-microvol 345 regulator-initial-mode 346 }; 347 348 vreg_l5f_2p85: ldo5 { 349 regulator-min-microvol 350 regulator-max-microvol 351 regulator-initial-mode 352 }; 353 354 vreg_l6f_2p85: ldo6 { 355 regulator-initial-mode 356 regulator-min-microvol 357 regulator-max-microvol 358 }; 359 }; 360 }; 361 362 &i2c1 { 363 status = "okay"; 364 clock-frequency = <400000>; 365 366 bq27742@55 { 367 compatible = "ti,bq27742"; 368 reg = <0x55>; 369 }; 370 371 da7280@4a { 372 compatible = "dlg,da7280"; 373 reg = <0x4a>; 374 interrupts-extended = <&tlmm 4 375 pinctrl-names = "da7280_defaul 376 pinctrl-0 = <&da7280_intr_defa 377 378 dlg,actuator-type = "LRA"; 379 dlg,dlg,const-op-mode = <1>; 380 dlg,dlg,periodic-op-mode = <1> 381 dlg,nom-microvolt = <2000000>; 382 dlg,abs-max-microvolt = <20000 383 dlg,imax-microamp = <129000>; 384 dlg,resonant-freq-hz = <180>; 385 dlg,impd-micro-ohms = <1430000 386 dlg,freq-track-enable; 387 dlg,bemf-sens-enable; 388 dlg,mem-array = < 389 0x06 0x08 0x10 0x11 0x12 0x1 390 0x33 0x3c 0x42 0x4b 0x4c 0x4 391 0x17 0x19 0x03 0x84 0x5e 0x0 392 0x84 0x5e 0x02 0x00 0xa4 0x5 393 0x08 0x84 0x5d 0x05 0x84 0x5 394 0x84 0x5e 0x05 0x8c 0x5e 0x2 395 0x5e 0x05 0x84 0x5e 0x08 0x8 396 0x04 0x84 0x5e 0x08 0x84 0x5 397 0x00 0x00 0x00 0x00 0x00 0x0 398 0x00 0x00 0x00 0x00 0x00 0x0 399 >; 400 }; 401 402 /* SMB1381 @ 0x44 */ 403 /* MAX34417 @ 0x1c */ 404 }; 405 406 &i2c4 { 407 status = "okay"; 408 clock-frequency = <400000>; 409 410 /* SMB1355 @ 0x0c */ 411 /* SMB1390 @ 0x10 */ 412 }; 413 414 &i2c17 { 415 status = "okay"; 416 clock-frequency = <400000>; 417 418 bq27742@55 { 419 compatible = "ti,bq27742"; 420 reg = <0x55>; 421 }; 422 }; 423 424 &i2c19 { 425 status = "okay"; 426 clock-frequency = <400000>; 427 428 /* MAX34417 @ 0x12 */ 429 /* MAX34417 @ 0x1a */ 430 /* MAX34417 @ 0x1e */ 431 }; 432 433 &pon_pwrkey { 434 status = "okay"; 435 }; 436 437 &qupv3_id_0 { 438 status = "okay"; 439 }; 440 441 &qupv3_id_1 { 442 status = "okay"; 443 }; 444 445 &qupv3_id_2 { 446 status = "okay"; 447 }; 448 449 &remoteproc_adsp { 450 status = "okay"; 451 firmware-name = "qcom/sm8150/microsoft 452 }; 453 454 &remoteproc_cdsp { 455 status = "okay"; 456 firmware-name = "qcom/sm8150/microsoft 457 }; 458 459 &remoteproc_mpss { 460 status = "okay"; 461 firmware-name = "qcom/sm8150/microsoft 462 }; 463 464 &remoteproc_slpi { 465 status = "okay"; 466 firmware-name = "qcom/sm8150/microsoft 467 }; 468 469 &pon_resin { 470 status = "okay"; 471 472 linux,code = <KEY_VOLUMEDOWN>; 473 }; 474 475 &tlmm { 476 gpio-reserved-ranges = <126 4>; 477 478 da7280_intr_default: da7280-intr-defau 479 pins = "gpio42"; 480 function = "gpio"; 481 bias-pull-up; 482 }; 483 }; 484 485 &uart2 { 486 status = "okay"; 487 }; 488 489 &ufs_mem_hc { 490 status = "okay"; 491 492 reset-gpios = <&tlmm 175 GPIO_ACTIVE_L 493 494 vcc-supply = <&vreg_l10a_2p5>; 495 vcc-max-microamp = <750000>; 496 vccq-supply = <&vreg_l9a_1p2>; 497 vccq-max-microamp = <700000>; 498 vccq2-supply = <&vreg_s4a_1p8>; 499 vccq2-max-microamp = <750000>; 500 }; 501 502 &ufs_mem_phy { 503 status = "okay"; 504 505 vdda-phy-supply = <&vdda_ufs_2ln_core_ 506 vdda-pll-supply = <&vreg_l3c_1p2>; 507 }; 508 509 &usb_1_hsphy { 510 status = "okay"; 511 vdda-pll-supply = <&vdd_usb_hs_core>; 512 vdda33-supply = <&vdda_usb_hs_3p1>; 513 vdda18-supply = <&vdda_usb_hs_1p8>; 514 }; 515 516 &usb_1_qmpphy { 517 status = "okay"; 518 vdda-phy-supply = <&vreg_l3c_1p2>; 519 vdda-pll-supply = <&vdda_usb_ss_dp_cor 520 }; 521 522 &usb_1 { 523 status = "okay"; 524 }; 525 526 &usb_1_dwc3 { 527 dr_mode = "peripheral"; 528 }; 529 530 &wifi { 531 status = "okay"; 532 533 vdd-0.8-cx-mx-supply = <&vdda_wcss_pll 534 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 535 vdd-1.3-rfa-supply = <&vdda_wcss_adcda 536 vdd-3.3-ch0-supply = <&vreg_l11c_3p3>; 537 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.