1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 * Copyright (c) 2024, Linaro Limited 5 * Copyright (c) 2025, Jens Glathe 6 * Copyright (c) 2025, Harrison Vanderbyl 7 */ 8 9/dts-v1/; 10 11#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/input/gpio-keys.h> 13#include <dt-bindings/input/input.h> 14#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 15#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 16#include <dt-bindings/clock/qcom,x1e80100-tcsr.h> 17 18#include "purwa.dtsi" 19#include "hamoa-pmics.dtsi" 20 21/delete-node/ &pmc8380_6; 22/delete-node/ &pmc8380_6_thermal; 23 24/ { 25 model = "Surface Pro 12in 1st Edition"; 26 compatible = "microsoft,surface-pro-12in", "qcom,x1p42100"; 27 chassis-type = "tablet"; 28 29 aliases { 30 serial0 = &uart2; 31 serial1 = &uart14; 32 }; 33 34 backlight: backlight { 35 compatible = "pwm-backlight"; 36 pwms = <&pmk8550_pwm 0 5000000>; 37 38 power-supply = <&vreg_edp_3p3>; 39 }; 40 41 gpio-keys { 42 compatible = "gpio-keys"; 43 44 pinctrl-0 = <&hall_int_n_default>, <&vol_up_n_default>, <&vol_down_n_default>; 45 pinctrl-names = "default"; 46 47 switch-lid { 48 gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; 49 linux,input-type = <EV_SW>; 50 linux,code = <SW_LID>; 51 wakeup-source; 52 wakeup-event-action = <EV_ACT_DEASSERTED>; 53 }; 54 55 key-vol-up { 56 gpios = <&pm8550_gpios 8 GPIO_ACTIVE_LOW>; 57 linux,code = <KEY_VOLUMEUP>; 58 debounce-interval = <15>; 59 linux,can-disable; 60 wakeup-source; 61 }; 62 63 key-vol-down { 64 gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>; 65 linux,code = <KEY_VOLUMEDOWN>; 66 debounce-interval = <15>; 67 linux,can-disable; 68 wakeup-source; 69 }; 70 }; 71 72 pmic-glink { 73 compatible = "qcom,x1e80100-pmic-glink", 74 "qcom,sm8550-pmic-glink", 75 "qcom,pmic-glink"; 76 orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>, 77 <&tlmm 123 GPIO_ACTIVE_HIGH>; 78 #address-cells = <1>; 79 #size-cells = <0>; 80 81 /* Right-side upper port */ 82 connector@0 { 83 compatible = "usb-c-connector"; 84 reg = <0>; 85 power-role = "dual"; 86 data-role = "dual"; 87 88 ports { 89 #address-cells = <1>; 90 #size-cells = <0>; 91 92 port@0 { 93 reg = <0>; 94 95 pmic_glink_ss0_hs_in: endpoint { 96 remote-endpoint = <&usb_1_ss0_dwc3_hs>; 97 }; 98 }; 99 100 port@1 { 101 reg = <1>; 102 103 pmic_glink_ss0_ss_in: endpoint { 104 remote-endpoint = <&usb_1_ss0_qmpphy_out>; 105 }; 106 }; 107 108 port@2 { 109 reg = <2>; 110 111 pmic_glink_ss0_sbu: endpoint { 112 remote-endpoint = <&usb_1_ss0_sbu_mux>; 113 }; 114 }; 115 }; 116 }; 117 118 /* Right-side lower port */ 119 connector@1 { 120 compatible = "usb-c-connector"; 121 reg = <1>; 122 power-role = "dual"; 123 data-role = "dual"; 124 125 ports { 126 #address-cells = <1>; 127 #size-cells = <0>; 128 129 port@0 { 130 reg = <0>; 131 132 pmic_glink_ss1_hs_in: endpoint { 133 remote-endpoint = <&usb_1_ss1_dwc3_hs>; 134 }; 135 }; 136 137 port@1 { 138 reg = <1>; 139 140 pmic_glink_ss1_ss_in: endpoint { 141 remote-endpoint = <&usb_1_ss1_qmpphy_out>; 142 }; 143 }; 144 145 port@2 { 146 reg = <2>; 147 148 pmic_glink_ss1_sbu: endpoint { 149 remote-endpoint = <&usb_1_ss1_sbu_mux>; 150 }; 151 }; 152 }; 153 }; 154 }; 155 156 reserved-memory { 157 linux,cma { 158 compatible = "shared-dma-pool"; 159 size = <0x0 0x20000000>; 160 reusable; 161 linux,cma-default; 162 }; 163 }; 164 165 vreg_edp_3p3: regulator-edp-3p3 { 166 compatible = "regulator-fixed"; 167 168 regulator-name = "VREG_EDP_3P3"; 169 regulator-min-microvolt = <3300000>; 170 regulator-max-microvolt = <3300000>; 171 172 gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>; 173 enable-active-high; 174 175 pinctrl-0 = <&edp_reg_en>; 176 pinctrl-names = "default"; 177 178 regulator-boot-on; 179 vin-supply = <&vreg_panel_en>; 180 }; 181 182 vreg_panel_en: regulator-panel-en { 183 compatible = "regulator-fixed"; 184 185 regulator-name = "VREG_PANEL_EN"; 186 regulator-min-microvolt = <3300000>; 187 regulator-max-microvolt = <3300000>; 188 189 gpio = <&tlmm 29 GPIO_ACTIVE_HIGH>; 190 enable-active-high; 191 192 regulator-enable-ramp-delay = <150000>; 193 194 pinctrl-0 = <&panel_en>; 195 pinctrl-names = "default"; 196 197 regulator-boot-on; 198 }; 199 200 vph_pwr: regulator-vph-pwr { 201 compatible = "regulator-fixed"; 202 203 regulator-name = "vph_pwr"; 204 regulator-min-microvolt = <3700000>; 205 regulator-max-microvolt = <3700000>; 206 }; 207 208 vreg_wcn_0p95: regulator-wcn-0p95 { 209 compatible = "regulator-fixed"; 210 211 regulator-name = "VREG_WCN_0P95"; 212 regulator-min-microvolt = <950000>; 213 regulator-max-microvolt = <950000>; 214 215 vin-supply = <&vreg_wcn_3p3>; 216 }; 217 218 vreg_wcn_1p9: regulator-wcn-1p9 { 219 compatible = "regulator-fixed"; 220 221 regulator-name = "VREG_WCN_1P9"; 222 regulator-min-microvolt = <1900000>; 223 regulator-max-microvolt = <1900000>; 224 225 vin-supply = <&vreg_wcn_3p3>; 226 }; 227 228 vreg_wcn_3p3: regulator-wcn-3p3 { 229 compatible = "regulator-fixed"; 230 231 regulator-name = "VREG_WCN_3P3"; 232 regulator-min-microvolt = <3300000>; 233 regulator-max-microvolt = <3300000>; 234 235 gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>; 236 enable-active-high; 237 238 pinctrl-0 = <&wcn_sw_en>; 239 pinctrl-names = "default"; 240 }; 241 242 sound { 243 compatible = "qcom,x1e80100-sndcard"; 244 model = "X1P42100-Microsoft-Surface-Pro-12in"; 245 audio-routing = "SpkrLeft IN", "WSA WSA_SPK1 OUT", 246 "SpkrRight IN", "WSA WSA_SPK2 OUT", 247 "VA DMIC0", "vdd-micb", 248 "VA DMIC1", "vdd-micb"; 249 250 va-dai-link { 251 link-name = "VA Capture"; 252 253 codec { 254 sound-dai = <&lpass_vamacro 0>; 255 }; 256 257 cpu { 258 sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>; 259 }; 260 261 platform { 262 sound-dai = <&q6apm>; 263 }; 264 }; 265 266 wsa-dai-link { 267 link-name = "WSA Playback"; 268 269 codec { 270 sound-dai = <&left_spkr>, <&right_spkr>, 271 <&swr0 0>, <&lpass_wsamacro 0>; 272 }; 273 274 cpu { 275 sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>; 276 }; 277 278 platform { 279 sound-dai = <&q6apm>; 280 }; 281 }; 282 }; 283 284 wcn7850-pmu { 285 compatible = "qcom,wcn7850-pmu"; 286 287 vdd-supply = <&vreg_wcn_0p95>; 288 vddio-supply = <&vreg_l15b_1p8>; 289 vddaon-supply = <&vreg_wcn_0p95>; 290 vdddig-supply = <&vreg_wcn_0p95>; 291 vddrfa1p2-supply = <&vreg_wcn_1p9>; 292 vddrfa1p8-supply = <&vreg_wcn_1p9>; 293 294 wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>; 295 bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>; 296 297 pinctrl-0 = <&wcn_wlan_bt_en>; 298 pinctrl-names = "default"; 299 300 regulators { 301 vreg_pmu_rfa_cmn: ldo0 { 302 regulator-name = "vreg_pmu_rfa_cmn"; 303 }; 304 305 vreg_pmu_aon_0p59: ldo1 { 306 regulator-name = "vreg_pmu_aon_0p59"; 307 }; 308 309 vreg_pmu_wlcx_0p8: ldo2 { 310 regulator-name = "vreg_pmu_wlcx_0p8"; 311 }; 312 313 vreg_pmu_wlmx_0p85: ldo3 { 314 regulator-name = "vreg_pmu_wlmx_0p85"; 315 }; 316 317 vreg_pmu_btcmx_0p85: ldo4 { 318 regulator-name = "vreg_pmu_btcmx_0p85"; 319 }; 320 321 vreg_pmu_rfa_0p8: ldo5 { 322 regulator-name = "vreg_pmu_rfa_0p8"; 323 }; 324 325 vreg_pmu_rfa_1p2: ldo6 { 326 regulator-name = "vreg_pmu_rfa_1p2"; 327 }; 328 329 vreg_pmu_rfa_1p8: ldo7 { 330 regulator-name = "vreg_pmu_rfa_1p8"; 331 }; 332 333 vreg_pmu_pcie_0p9: ldo8 { 334 regulator-name = "vreg_pmu_pcie_0p9"; 335 }; 336 337 vreg_pmu_pcie_1p8: ldo9 { 338 regulator-name = "vreg_pmu_pcie_1p8"; 339 }; 340 }; 341 }; 342 343 usb-1-ss0-sbu-mux { 344 compatible = "onnn,fsusb42", "gpio-sbu-mux"; 345 346 enable-gpios = <&tlmm 168 GPIO_ACTIVE_LOW>; 347 select-gpios = <&tlmm 167 GPIO_ACTIVE_HIGH>; 348 349 pinctrl-0 = <&usb_1_ss0_sbu_default>; 350 pinctrl-names = "default"; 351 352 mode-switch; 353 orientation-switch; 354 355 port { 356 usb_1_ss0_sbu_mux: endpoint { 357 remote-endpoint = <&pmic_glink_ss0_sbu>; 358 }; 359 }; 360 }; 361 362 usb-1-ss1-sbu-mux { 363 compatible = "onnn,fsusb42", "gpio-sbu-mux"; 364 365 enable-gpios = <&tlmm 179 GPIO_ACTIVE_LOW>; 366 select-gpios = <&tlmm 178 GPIO_ACTIVE_HIGH>; 367 368 pinctrl-0 = <&usb_1_ss1_sbu_default>; 369 pinctrl-names = "default"; 370 371 mode-switch; 372 orientation-switch; 373 374 port { 375 usb_1_ss1_sbu_mux: endpoint { 376 remote-endpoint = <&pmic_glink_ss1_sbu>; 377 }; 378 }; 379 }; 380}; 381 382&apps_rsc { 383 regulators-0 { 384 compatible = "qcom,pm8550-rpmh-regulators"; 385 qcom,pmic-id = "b"; 386 387 vdd-bob1-supply = <&vph_pwr>; 388 vdd-bob2-supply = <&vph_pwr>; 389 vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>; 390 vdd-l2-l13-l14-supply = <&vreg_bob1>; 391 vdd-l5-l16-supply = <&vreg_bob1>; 392 vdd-l6-l7-supply = <&vreg_bob2>; 393 vdd-l8-l9-supply = <&vreg_bob1>; 394 vdd-l12-supply = <&vreg_s5j_1p2>; 395 vdd-l15-supply = <&vreg_s4c_1p8>; 396 vdd-l17-supply = <&vreg_bob2>; 397 398 vreg_bob1: bob1 { 399 regulator-name = "vreg_bob1"; 400 regulator-min-microvolt = <3008000>; 401 regulator-max-microvolt = <3960000>; 402 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 403 }; 404 405 vreg_bob2: bob2 { 406 regulator-name = "vreg_bob2"; 407 regulator-min-microvolt = <2504000>; 408 regulator-max-microvolt = <3008000>; 409 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 410 }; 411 412 vreg_l1b_1p8: ldo1 { 413 regulator-name = "vreg_l1b_1p8"; 414 regulator-min-microvolt = <1800000>; 415 regulator-max-microvolt = <1800000>; 416 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 417 }; 418 419 vreg_l2b_3p0: ldo2 { 420 regulator-name = "vreg_l2b_3p0"; 421 regulator-min-microvolt = <3072000>; 422 regulator-max-microvolt = <3100000>; 423 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 424 }; 425 426 vreg_l4b_1p8: ldo4 { 427 regulator-name = "vreg_l4b_1p8"; 428 regulator-min-microvolt = <1800000>; 429 regulator-max-microvolt = <1800000>; 430 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 431 }; 432 433 vreg_l5b_3p0: ldo5 { 434 regulator-name = "vreg_l5b_3p0"; 435 regulator-min-microvolt = <3000000>; 436 regulator-max-microvolt = <3000000>; 437 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 438 }; 439 440 vreg_l6b_1p8: ldo6 { 441 regulator-name = "vreg_l6b_1p8"; 442 regulator-min-microvolt = <1800000>; 443 regulator-max-microvolt = <2960000>; 444 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 445 }; 446 447 vreg_l7b_2p8: ldo7 { 448 regulator-name = "vreg_l7b_2p8"; 449 regulator-min-microvolt = <2800000>; 450 regulator-max-microvolt = <2800000>; 451 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 452 regulator-always-on; 453 }; 454 455 vreg_l8b_3p0: ldo8 { 456 regulator-name = "vreg_l8b_3p0"; 457 regulator-min-microvolt = <3072000>; 458 regulator-max-microvolt = <3072000>; 459 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 460 }; 461 462 vreg_l9b_2p9: ldo9 { 463 regulator-name = "vreg_l9b_2p9"; 464 regulator-min-microvolt = <2960000>; 465 regulator-max-microvolt = <2960000>; 466 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 467 }; 468 469 vreg_l10b_1p8: ldo10 { 470 regulator-name = "vreg_l10b_1p8"; 471 regulator-min-microvolt = <1800000>; 472 regulator-max-microvolt = <1800000>; 473 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 474 }; 475 476 vreg_l12b_1p2: ldo12 { 477 regulator-name = "vreg_l12b_1p2"; 478 regulator-min-microvolt = <1200000>; 479 regulator-max-microvolt = <1200000>; 480 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 481 }; 482 483 vreg_l13b_3p0: ldo13 { 484 regulator-name = "vreg_l13b_3p0"; 485 regulator-min-microvolt = <3072000>; 486 regulator-max-microvolt = <3100000>; 487 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 488 }; 489 490 vreg_l14b_3p0: ldo14 { 491 regulator-name = "vreg_l14b_3p0"; 492 regulator-min-microvolt = <3072000>; 493 regulator-max-microvolt = <3072000>; 494 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 495 }; 496 497 vreg_l15b_1p8: ldo15 { 498 regulator-name = "vreg_l15b_1p8"; 499 regulator-min-microvolt = <1800000>; 500 regulator-max-microvolt = <1800000>; 501 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 502 }; 503 504 vreg_l16b_2p9: ldo16 { 505 regulator-name = "vreg_l16b_2p9"; 506 regulator-min-microvolt = <2900000>; 507 regulator-max-microvolt = <2912000>; 508 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 509 regulator-allow-set-load; 510 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 511 RPMH_REGULATOR_MODE_HPM>; 512 }; 513 514 vreg_l17b_2p5: ldo17 { 515 regulator-name = "vreg_l17b_2p5"; 516 regulator-min-microvolt = <2504000>; 517 regulator-max-microvolt = <2504000>; 518 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 519 regulator-allow-set-load; 520 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 521 RPMH_REGULATOR_MODE_HPM>; 522 }; 523 }; 524 525 regulators-1 { 526 compatible = "qcom,pm8550ve-rpmh-regulators"; 527 qcom,pmic-id = "c"; 528 529 vdd-l1-supply = <&vreg_s5j_1p2>; 530 vdd-s4-supply = <&vph_pwr>; 531 532 vreg_s4c_1p8: smps4 { 533 regulator-name = "vreg_s4c_1p8"; 534 regulator-min-microvolt = <1856000>; 535 regulator-max-microvolt = <2000000>; 536 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 537 }; 538 539 vreg_l1c_1p2: ldo1 { 540 regulator-name = "vreg_l1c_1p2"; 541 regulator-min-microvolt = <1200000>; 542 regulator-max-microvolt = <1200000>; 543 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 544 }; 545 546 vreg_l2c_0p8: ldo2 { 547 regulator-name = "vreg_l2c_0p8"; 548 regulator-min-microvolt = <880000>; 549 regulator-max-microvolt = <920000>; 550 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 551 }; 552 553 vreg_l3c_0p8: ldo3 { 554 regulator-name = "vreg_l3c_0p8"; 555 regulator-min-microvolt = <880000>; 556 regulator-max-microvolt = <920000>; 557 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 558 }; 559 }; 560 561 regulators-2 { 562 compatible = "qcom,pmc8380-rpmh-regulators"; 563 qcom,pmic-id = "d"; 564 565 vdd-l3-supply = <&vreg_s4c_1p8>; 566 vdd-s1-supply = <&vph_pwr>; 567 568 vreg_l1d_0p8: ldo1 { 569 regulator-name = "vreg_l1d_0p8"; 570 regulator-min-microvolt = <880000>; 571 regulator-max-microvolt = <920000>; 572 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 573 }; 574 575 vreg_l2d_0p9: ldo2 { 576 regulator-name = "vreg_l2d_0p9"; 577 regulator-min-microvolt = <912000>; 578 regulator-max-microvolt = <920000>; 579 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 580 }; 581 582 vreg_l3d_1p8: ldo3 { 583 regulator-name = "vreg_l3d_1p8"; 584 regulator-min-microvolt = <1800000>; 585 regulator-max-microvolt = <1800000>; 586 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 587 }; 588 }; 589 590 regulators-3 { 591 compatible = "qcom,pmc8380-rpmh-regulators"; 592 qcom,pmic-id = "e"; 593 594 vdd-l3-supply = <&vreg_s5j_1p2>; 595 596 vreg_l2e_0p8: ldo2 { 597 regulator-name = "vreg_l2e_0p8"; 598 regulator-min-microvolt = <880000>; 599 regulator-max-microvolt = <880000>; 600 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 601 }; 602 603 vreg_l3e_1p2: ldo3 { 604 regulator-name = "vreg_l3e_1p2"; 605 regulator-min-microvolt = <1200000>; 606 regulator-max-microvolt = <1200000>; 607 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 608 regulator-allow-set-load; 609 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 610 RPMH_REGULATOR_MODE_HPM>; 611 }; 612 }; 613 614 regulators-6 { 615 compatible = "qcom,pm8550ve-rpmh-regulators"; 616 qcom,pmic-id = "i"; 617 618 vdd-l1-supply = <&vreg_s4c_1p8>; 619 vdd-l2-supply = <&vreg_s5j_1p2>; 620 vdd-s1-supply = <&vph_pwr>; 621 vdd-s2-supply = <&vph_pwr>; 622 623 vreg_s1i_0p9: smps1 { 624 regulator-name = "vreg_s1i_0p9"; 625 regulator-min-microvolt = <900000>; 626 regulator-max-microvolt = <920000>; 627 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 628 }; 629 630 vreg_s2i_1p0: smps2 { 631 regulator-name = "vreg_s2i_1p0"; 632 regulator-min-microvolt = <1000000>; 633 regulator-max-microvolt = <1100000>; 634 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 635 }; 636 637 vreg_l1i_1p8: ldo1 { 638 regulator-name = "vreg_l1i_1p8"; 639 regulator-min-microvolt = <1800000>; 640 regulator-max-microvolt = <1800000>; 641 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 642 }; 643 644 vreg_l2i_1p2: ldo2 { 645 regulator-name = "vreg_l2i_1p2"; 646 regulator-min-microvolt = <1200000>; 647 regulator-max-microvolt = <1200000>; 648 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 649 regulator-allow-set-load; 650 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 651 RPMH_REGULATOR_MODE_HPM>; 652 }; 653 654 vreg_l3i_0p8: ldo3 { 655 regulator-name = "vreg_l3i_0p8"; 656 regulator-min-microvolt = <880000>; 657 regulator-max-microvolt = <880000>; 658 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 659 regulator-allow-set-load; 660 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 661 RPMH_REGULATOR_MODE_HPM>; 662 }; 663 }; 664 665 regulators-7 { 666 compatible = "qcom,pm8550ve-rpmh-regulators"; 667 qcom,pmic-id = "j"; 668 669 vdd-l2-supply = <&vreg_s5j_1p2>; 670 vdd-s5-supply = <&vph_pwr>; 671 672 vreg_s5j_1p2: smps5 { 673 regulator-name = "vreg_s5j_1p2"; 674 regulator-min-microvolt = <1256000>; 675 regulator-max-microvolt = <1304000>; 676 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 677 }; 678 679 vreg_l1j_0p8: ldo1 { 680 regulator-name = "vreg_l1j_0p8"; 681 regulator-min-microvolt = <880000>; 682 regulator-max-microvolt = <920000>; 683 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 684 }; 685 686 vreg_l2j_1p2: ldo2 { 687 regulator-name = "vreg_l2j_1p2"; 688 regulator-min-microvolt = <1200000>; 689 regulator-max-microvolt = <1256000>; 690 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 691 regulator-allow-set-load; 692 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 693 RPMH_REGULATOR_MODE_HPM>; 694 }; 695 696 vreg_l3j_0p8: ldo3 { 697 regulator-name = "vreg_l3j_0p8"; 698 regulator-min-microvolt = <880000>; 699 regulator-max-microvolt = <880000>; 700 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 701 regulator-allow-set-load; 702 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM 703 RPMH_REGULATOR_MODE_HPM>; 704 }; 705 }; 706}; 707 708&gpu { 709 status = "okay"; 710}; 711 712&gpu_zap_shader { 713 firmware-name = "qcom/x1p42100/Microsoft/Surface12/qcdxkmsucpurwa.mbn"; 714}; 715 716&i2c8 { 717 clock-frequency = <1000000>; 718 719 status = "okay"; 720 721 touchscreen@16 { 722 compatible = "hid-over-i2c"; 723 reg = <0x16>; 724 725 hid-descr-addr = <0x1>; 726 interrupts-extended = <&tlmm 38 IRQ_TYPE_LEVEL_LOW>; 727 wakeup-source; 728 729 vddl-supply = <&vreg_l15b_1p8>; 730 731 pinctrl-0 = <&ts0_default>; 732 pinctrl-names = "default"; 733 }; 734}; 735 736&i2c0 { 737 clock-frequency = <400000>; 738 739 status = "okay"; 740}; 741 742&i2c4 { 743 clock-frequency = <400000>; 744 745 status = "okay"; 746 747 /* MAX34417 @12 */ 748 /* MAX34417 @14 */ 749 /* MAX34417 @16 */ 750 /* MAX34417 @18 */ 751 /* MAX34417 @1a */ 752}; 753 754&i2c9 { 755 clock-frequency = <400000>; 756 757 status = "okay"; 758 759 /* NFC @28 Business 2109 sku only */ 760}; 761 762&lpass_tlmm { 763 spkr_01_sd_n_active: spkr-01-sd-n-active-state { 764 pins = "gpio12"; 765 function = "gpio"; 766 drive-strength = <2>; 767 bias-disable; 768 output-low; 769 }; 770}; 771 772&lpass_vamacro { 773 qcom,dmic-sample-rate = <4800000>; 774 775 vdd-micb-supply = <&vreg_l1b_1p8>; 776 777 pinctrl-0 = <&dmic01_default>; 778 pinctrl-names = "default"; 779}; 780 781&mdss { 782 status = "okay"; 783}; 784 785&mdss_dp0 { 786 status = "okay"; 787}; 788 789&mdss_dp0_out { 790 link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; 791}; 792 793&mdss_dp1 { 794 status = "okay"; 795}; 796 797&mdss_dp1_out { 798 link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; 799}; 800 801&mdss_dp3 { 802 /delete-property/ #sound-dai-cells; 803 804 pinctrl-0 = <&edp0_hpd_default>; 805 pinctrl-names = "default"; 806 807 status = "okay"; 808 809 aux-bus { 810 panel: panel { 811 compatible = "edp-panel"; 812 813 backlight = <&backlight>; 814 815 power-supply = <&vreg_edp_3p3>; 816 817 port { 818 edp_panel_in: endpoint { 819 remote-endpoint = <&mdss_dp3_out>; 820 }; 821 }; 822 }; 823 }; 824}; 825 826&mdss_dp3_out { 827 data-lanes = <0 1 2 3>; 828 link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; 829 830 remote-endpoint = <&edp_panel_in>; 831}; 832 833&mdss_dp3_phy { 834 vdda-phy-supply = <&vreg_l3j_0p8>; 835 vdda-pll-supply = <&vreg_l2j_1p2>; 836 837 status = "okay"; 838}; 839 840&pcie4 { 841 pinctrl-0 = <&pcie4_default>; 842 pinctrl-names = "default"; 843 844 status = "okay"; 845}; 846 847&pcie4_phy { 848 vdda-phy-supply = <&vreg_l3i_0p8>; 849 vdda-pll-supply = <&vreg_l3e_1p2>; 850 851 status = "okay"; 852}; 853 854&pcie4_port0 { 855 reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>; 856 wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>; 857 858 wifi@0 { 859 compatible = "pci17cb,1107"; 860 reg = <0x10000 0x0 0x0 0x0 0x0>; 861 862 vddaon-supply = <&vreg_pmu_aon_0p59>; 863 vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; 864 vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; 865 vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; 866 vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; 867 vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; 868 vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>; 869 vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; 870 vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; 871 }; 872}; 873 874&pm8550_gpios { 875 vol_up_n_default: vol-up-n-state { 876 pins = "gpio8"; 877 function = "normal"; 878 power-source = <1>; 879 bias-pull-up; 880 input-enable; 881 }; 882 883 vol_down_n_default: vol-down-n-state { 884 pins = "gpio6"; 885 function = "normal"; 886 power-source = <1>; 887 bias-pull-up; 888 input-enable; 889 }; 890}; 891 892&pmk8550_pwm { 893 status = "okay"; 894}; 895 896&qupv3_0 { 897 status = "okay"; 898}; 899 900&qupv3_1 { 901 status = "okay"; 902}; 903 904&qupv3_2 { 905 status = "okay"; 906}; 907 908&remoteproc_adsp { 909 firmware-name = "qcom/x1p42100/Microsoft/Surface12/qcadsp8380.mbn", 910 "qcom/x1p42100/Microsoft/Surface12/adsp_dtbs.elf"; 911 912 status = "okay"; 913}; 914 915&remoteproc_cdsp { 916 firmware-name = "qcom/x1p42100/Microsoft/Surface12/qccdsp8380.mbn", 917 "qcom/x1p42100/Microsoft/Surface12/cdsp_dtbs.elf"; 918 919 status = "okay"; 920}; 921 922&smb2360_0 { 923 status = "okay"; 924}; 925 926&smb2360_0_eusb2_repeater { 927 vdd18-supply = <&vreg_l3d_1p8>; 928 vdd3-supply = <&vreg_l2b_3p0>; 929}; 930 931&smb2360_1 { 932 status = "okay"; 933}; 934 935&smb2360_1_eusb2_repeater { 936 vdd18-supply = <&vreg_l3d_1p8>; 937 vdd3-supply = <&vreg_l14b_3p0>; 938}; 939 940&swr0 { 941 pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>; 942 pinctrl-names = "default"; 943 944 status = "okay"; 945 946 /* WSA8845, Left speaker */ 947 left_spkr: speaker@0,0 { 948 compatible = "sdw20217020400"; 949 reg = <0 0>; 950 reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; 951 #sound-dai-cells = <0>; 952 sound-name-prefix = "SpkrLeft"; 953 vdd-1p8-supply = <&vreg_l15b_1p8>; 954 vdd-io-supply = <&vreg_l12b_1p2>; 955 qcom,port-mapping = <1 2 3 7 10 13>; 956 }; 957 958 /* WSA8845, Right speaker */ 959 right_spkr: speaker@0,1 { 960 compatible = "sdw20217020400"; 961 reg = <0 1>; 962 reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; 963 #sound-dai-cells = <0>; 964 sound-name-prefix = "SpkrRight"; 965 vdd-1p8-supply = <&vreg_l15b_1p8>; 966 vdd-io-supply = <&vreg_l12b_1p2>; 967 qcom,port-mapping = <4 5 6 7 11 13>; 968 }; 969}; 970 971&tlmm { 972 gpio-reserved-ranges = <34 2>, /* Unused */ 973 <44 4>; /* SPI (TPM) */ 974 975 edp_reg_en: edp-reg-en-state { 976 pins = "gpio70"; 977 function = "gpio"; 978 drive-strength = <2>; 979 bias-disable; 980 }; 981 982 hall_int_n_default: hall-int-n-state { 983 pins = "gpio2"; 984 function = "gpio"; 985 bias-disable; 986 }; 987 988 panel_en: panel-en-state { 989 pins = "gpio29"; 990 function = "gpio"; 991 drive-strength = <2>; 992 bias-disable; 993 }; 994 995 pcie4_default: pcie4-default-state { 996 clkreq-n-pins { 997 pins = "gpio147"; 998 function = "pcie4_clk"; 999 drive-strength = <2>; 1000 bias-pull-up; 1001 }; 1002 1003 perst-n-pins { 1004 pins = "gpio146"; 1005 function = "gpio"; 1006 drive-strength = <2>; 1007 bias-disable; 1008 }; 1009 1010 wake-n-pins { 1011 pins = "gpio148"; 1012 function = "gpio"; 1013 drive-strength = <2>; 1014 bias-pull-up; 1015 }; 1016 }; 1017 1018 ssam_state: ssam-state-state { 1019 pins = "gpio91"; 1020 function = "gpio"; 1021 bias-disable; 1022 }; 1023 1024 ts0_default: ts0-default-state { 1025 int-n-pins { 1026 pins = "gpio38"; 1027 function = "gpio"; 1028 bias-disable; 1029 }; 1030 1031 reset-n-pins { 1032 pins = "gpio48"; 1033 function = "gpio"; 1034 output-high; 1035 drive-strength = <16>; 1036 }; 1037 }; 1038 1039 wcn_sw_en: wcn-sw-en-state { 1040 pins = "gpio214"; 1041 function = "gpio"; 1042 drive-strength = <2>; 1043 bias-disable; 1044 }; 1045 1046 wcn_wlan_bt_en: wcn-wlan-bt-en-state { 1047 pins = "gpio116", "gpio117"; 1048 function = "gpio"; 1049 drive-strength = <2>; 1050 bias-disable; 1051 }; 1052 1053 usb_1_ss0_sbu_default: usb-1-ss0-sbu-state { 1054 oe-n-pins { 1055 pins = "gpio168"; 1056 function = "gpio"; 1057 bias-disable; 1058 drive-strength = <2>; 1059 }; 1060 1061 sel-pins { 1062 pins = "gpio167"; 1063 function = "gpio"; 1064 bias-disable; 1065 drive-strength = <2>; 1066 }; 1067 }; 1068 1069 usb_1_ss1_sbu_default: usb-1-ss1-sbu-state { 1070 oe-n-pins { 1071 pins = "gpio179"; 1072 function = "gpio"; 1073 bias-disable; 1074 drive-strength = <2>; 1075 }; 1076 1077 sel-pins { 1078 pins = "gpio178"; 1079 function = "gpio"; 1080 bias-disable; 1081 drive-strength = <2>; 1082 }; 1083 }; 1084}; 1085 1086&uart2 { 1087 status = "okay"; 1088 1089 embedded-controller { 1090 compatible = "microsoft,surface-sam"; 1091 1092 interrupts-extended = <&tlmm 91 IRQ_TYPE_EDGE_RISING>; 1093 1094 current-speed = <4000000>; 1095 1096 pinctrl-0 = <&ssam_state>; 1097 pinctrl-names = "default"; 1098 }; 1099}; 1100 1101&uart14 { 1102 status = "okay"; 1103 1104 bluetooth { 1105 compatible = "qcom,wcn7850-bt"; 1106 max-speed = <3200000>; 1107 1108 vddaon-supply = <&vreg_pmu_aon_0p59>; 1109 vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; 1110 vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; 1111 vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; 1112 vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; 1113 vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; 1114 vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>; 1115 }; 1116}; 1117 1118&ufs_mem_hc { 1119 vcc-supply = <&vreg_l17b_2p5>; 1120 vcc-max-microamp = <800000>; 1121 vccq-supply = <&vreg_l2i_1p2>; 1122 vccq-max-microamp = <900000>; 1123 1124 vdd-hba-supply = <&vreg_l3j_0p8>; 1125 1126 status = "okay"; 1127}; 1128 1129&ufs_mem_phy { 1130 status = "okay"; 1131 1132 vdda-phy-supply = <&vreg_l3i_0p8>; 1133 vdda-pll-supply = <&vreg_l3e_1p2>; 1134}; 1135 1136&usb_1_ss0_hsphy { 1137 vdd-supply = <&vreg_l3j_0p8>; 1138 vdda12-supply = <&vreg_l2j_1p2>; 1139 1140 phys = <&smb2360_0_eusb2_repeater>; 1141 1142 status = "okay"; 1143}; 1144 1145&usb_1_ss0_qmpphy { 1146 vdda-phy-supply = <&vreg_l2j_1p2>; 1147 vdda-pll-supply = <&vreg_l1j_0p8>; 1148 1149 status = "okay"; 1150}; 1151 1152&usb_1_ss0 { 1153 dr_mode = "host"; 1154 1155 status = "okay"; 1156}; 1157 1158&usb_1_ss0_dwc3_hs { 1159 remote-endpoint = <&pmic_glink_ss0_hs_in>; 1160}; 1161 1162&usb_1_ss0_qmpphy_out { 1163 remote-endpoint = <&pmic_glink_ss0_ss_in>; 1164}; 1165 1166&usb_1_ss1_hsphy { 1167 vdd-supply = <&vreg_l3j_0p8>; 1168 vdda12-supply = <&vreg_l2j_1p2>; 1169 1170 phys = <&smb2360_1_eusb2_repeater>; 1171 1172 status = "okay"; 1173}; 1174 1175&usb_1_ss1_qmpphy { 1176 vdda-phy-supply = <&vreg_l2j_1p2>; 1177 vdda-pll-supply = <&vreg_l2d_0p9>; 1178 1179 status = "okay"; 1180}; 1181 1182&usb_1_ss1 { 1183 dr_mode = "host"; 1184 1185 status = "okay"; 1186}; 1187 1188&usb_1_ss1_dwc3_hs { 1189 remote-endpoint = <&pmic_glink_ss1_hs_in>; 1190}; 1191 1192&usb_1_ss1_qmpphy_out { 1193 remote-endpoint = <&pmic_glink_ss1_ss_in>; 1194}; 1195