1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2020, The Linux Foundation. All rights reserved. 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 9#include <dt-bindings/gpio/gpio.h> 10#include <dt-bindings/usb/pd.h> 11#include "sm8150.dtsi" 12#include "pm8150.dtsi" 13#include "pm8150b.dtsi" 14#include "pm8150l.dtsi" 15 16/ { 17 model = "Qualcomm Technologies, Inc. SM8150 HDK"; 18 compatible = "qcom,sm8150-hdk", "qcom,sm8150"; 19 chassis-type = "embedded"; 20 21 aliases { 22 serial0 = &uart2; 23 }; 24 25 chosen { 26 stdout-path = "serial0:115200n8"; 27 }; 28 29 vph_pwr: vph-pwr-regulator { 30 compatible = "regulator-fixed"; 31 regulator-name = "vph_pwr"; 32 regulator-min-microvolt = <3700000>; 33 regulator-max-microvolt = <3700000>; 34 }; 35 36 vreg_s4a_1p8: pm8150-s4 { 37 compatible = "regulator-fixed"; 38 regulator-name = "vreg_s4a_1p8"; 39 40 regulator-min-microvolt = <1800000>; 41 regulator-max-microvolt = <1800000>; 42 43 regulator-always-on; 44 regulator-boot-on; 45 46 vin-supply = <&vph_pwr>; 47 }; 48 49 gpio-keys { 50 compatible = "gpio-keys"; 51 52 key-vol-up { 53 label = "Volume Up"; 54 linux,code = <KEY_VOLUMEUP>; 55 gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>; 56 }; 57 }; 58 59 hdmi-out { 60 compatible = "hdmi-connector"; 61 type = "a"; 62 63 port { 64 hdmi_con: endpoint { 65 remote-endpoint = <<9611_out>; 66 }; 67 }; 68 }; 69}; 70 71&apps_rsc { 72 regulators-0 { 73 compatible = "qcom,pm8150-rpmh-regulators"; 74 qcom,pmic-id = "a"; 75 76 vdd-s1-supply = <&vph_pwr>; 77 vdd-s2-supply = <&vph_pwr>; 78 vdd-s3-supply = <&vph_pwr>; 79 vdd-s4-supply = <&vph_pwr>; 80 vdd-s5-supply = <&vph_pwr>; 81 vdd-s6-supply = <&vph_pwr>; 82 vdd-s7-supply = <&vph_pwr>; 83 vdd-s8-supply = <&vph_pwr>; 84 vdd-s9-supply = <&vph_pwr>; 85 vdd-s10-supply = <&vph_pwr>; 86 87 vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>; 88 vdd-l2-l10-supply = <&vreg_bob>; 89 vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>; 90 vdd-l6-l9-supply = <&vreg_s8c_1p3>; 91 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>; 92 vdd-l13-l16-l17-supply = <&vreg_bob>; 93 94 vreg_s5a_2p0: smps5 { 95 regulator-min-microvolt = <1904000>; 96 regulator-max-microvolt = <2000000>; 97 }; 98 99 vreg_s6a_0p9: smps6 { 100 regulator-min-microvolt = <920000>; 101 regulator-max-microvolt = <1128000>; 102 }; 103 104 vdda_wcss_pll: 105 vreg_l1a_0p75: ldo1 { 106 regulator-min-microvolt = <752000>; 107 regulator-max-microvolt = <752000>; 108 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 109 }; 110 111 vdd_pdphy: 112 vdda_usb_hs_3p1: 113 vreg_l2a_3p1: ldo2 { 114 regulator-min-microvolt = <3072000>; 115 regulator-max-microvolt = <3072000>; 116 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 117 }; 118 119 vreg_l3a_0p8: ldo3 { 120 regulator-min-microvolt = <480000>; 121 regulator-max-microvolt = <932000>; 122 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 123 }; 124 125 vdd_usb_hs_core: 126 vdda_csi_0_0p9: 127 vdda_csi_1_0p9: 128 vdda_csi_2_0p9: 129 vdda_csi_3_0p9: 130 vdda_dsi_0_0p9: 131 vdda_dsi_1_0p9: 132 vdda_dsi_0_pll_0p9: 133 vdda_dsi_1_pll_0p9: 134 vdda_pcie_1ln_core: 135 vdda_pcie_2ln_core: 136 vdda_pll_hv_cc_ebi01: 137 vdda_pll_hv_cc_ebi23: 138 vdda_qrefs_0p875_5: 139 vdda_sp_sensor: 140 vdda_ufs_2ln_core_1: 141 vdda_ufs_2ln_core_2: 142 vdda_qlink_lv: 143 vdda_qlink_lv_ck: 144 vreg_l5a_0p875: ldo5 { 145 regulator-min-microvolt = <880000>; 146 regulator-max-microvolt = <880000>; 147 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 148 }; 149 150 vreg_l6a_1p2: ldo6 { 151 regulator-min-microvolt = <1200000>; 152 regulator-max-microvolt = <1200000>; 153 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 154 }; 155 156 vreg_l7a_1p8: ldo7 { 157 regulator-min-microvolt = <1800000>; 158 regulator-max-microvolt = <1800000>; 159 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 160 }; 161 162 vddpx_10: 163 vreg_l9a_1p2: ldo9 { 164 regulator-min-microvolt = <1200000>; 165 regulator-max-microvolt = <1200000>; 166 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 167 }; 168 169 vreg_l10a_2p5: ldo10 { 170 regulator-min-microvolt = <2504000>; 171 regulator-max-microvolt = <2960000>; 172 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 173 }; 174 175 vreg_l11a_0p8: ldo11 { 176 regulator-min-microvolt = <800000>; 177 regulator-max-microvolt = <800000>; 178 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 179 }; 180 181 vdd_qfprom: 182 vdd_qfprom_sp: 183 vdda_apc_cs_1p8: 184 vdda_gfx_cs_1p8: 185 vdda_usb_hs_1p8: 186 vdda_qrefs_vref_1p8: 187 vddpx_10_a: 188 vreg_l12a_1p8: ldo12 { 189 regulator-min-microvolt = <1800000>; 190 regulator-max-microvolt = <1800000>; 191 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 192 }; 193 194 vreg_l13a_2p7: ldo13 { 195 regulator-min-microvolt = <2704000>; 196 regulator-max-microvolt = <2704000>; 197 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 198 }; 199 200 vreg_l14a_1p8: ldo14 { 201 regulator-min-microvolt = <1800000>; 202 regulator-max-microvolt = <1880000>; 203 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 204 }; 205 206 vreg_l15a_1p7: ldo15 { 207 regulator-min-microvolt = <1704000>; 208 regulator-max-microvolt = <1704000>; 209 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 210 }; 211 212 vreg_l16a_2p7: ldo16 { 213 regulator-min-microvolt = <2704000>; 214 regulator-max-microvolt = <2960000>; 215 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 216 }; 217 218 vreg_l17a_3p0: ldo17 { 219 regulator-min-microvolt = <2856000>; 220 regulator-max-microvolt = <3008000>; 221 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 222 }; 223 224 vreg_l18a_0p8: ldo18 { 225 regulator-min-microvolt = <880000>; 226 regulator-max-microvolt = <880000>; 227 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 228 }; 229 }; 230 231 regulators-1 { 232 compatible = "qcom,pm8150l-rpmh-regulators"; 233 qcom,pmic-id = "c"; 234 235 vdd-s1-supply = <&vph_pwr>; 236 vdd-s2-supply = <&vph_pwr>; 237 vdd-s3-supply = <&vph_pwr>; 238 vdd-s4-supply = <&vph_pwr>; 239 vdd-s5-supply = <&vph_pwr>; 240 vdd-s6-supply = <&vph_pwr>; 241 vdd-s7-supply = <&vph_pwr>; 242 vdd-s8-supply = <&vph_pwr>; 243 244 vdd-l1-l8-supply = <&vreg_s4a_1p8>; 245 vdd-l2-l3-supply = <&vreg_s8c_1p3>; 246 vdd-l4-l5-l6-supply = <&vreg_bob>; 247 vdd-l7-l11-supply = <&vreg_bob>; 248 vdd-l9-l10-supply = <&vreg_bob>; 249 250 vdd-bob-supply = <&vph_pwr>; 251 vdd-flash-supply = <&vreg_bob>; 252 vdd-rgb-supply = <&vreg_bob>; 253 254 vreg_bob: bob { 255 regulator-min-microvolt = <3008000>; 256 regulator-max-microvolt = <4000000>; 257 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 258 regulator-allow-bypass; 259 }; 260 261 vreg_s8c_1p3: smps8 { 262 regulator-min-microvolt = <1352000>; 263 regulator-max-microvolt = <1352000>; 264 }; 265 266 vreg_l1c_1p8: ldo1 { 267 regulator-min-microvolt = <1800000>; 268 regulator-max-microvolt = <1800000>; 269 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 270 }; 271 272 vdda_wcss_adcdac_1: 273 vdda_wcss_adcdac_22: 274 vreg_l2c_1p3: ldo2 { 275 regulator-min-microvolt = <1304000>; 276 regulator-max-microvolt = <1304000>; 277 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 278 }; 279 280 vdda_hv_ebi0: 281 vdda_hv_ebi1: 282 vdda_hv_ebi2: 283 vdda_hv_ebi3: 284 vdda_hv_refgen0: 285 vdda_qlink_hv_ck: 286 vreg_l3c_1p2: ldo3 { 287 regulator-min-microvolt = <1200000>; 288 regulator-max-microvolt = <1200000>; 289 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 290 }; 291 292 vddpx_5: 293 vreg_l4c_1p8: ldo4 { 294 regulator-min-microvolt = <1704000>; 295 regulator-max-microvolt = <2928000>; 296 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 297 }; 298 299 vddpx_6: 300 vreg_l5c_1p8: ldo5 { 301 regulator-min-microvolt = <1704000>; 302 regulator-max-microvolt = <2928000>; 303 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 304 }; 305 306 vddpx_2: 307 vreg_l6c_2p9: ldo6 { 308 regulator-min-microvolt = <1800000>; 309 regulator-max-microvolt = <2960000>; 310 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 311 }; 312 313 vreg_l7c_3p0: ldo7 { 314 regulator-min-microvolt = <2856000>; 315 regulator-max-microvolt = <3104000>; 316 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 317 }; 318 319 vreg_l8c_1p8: ldo8 { 320 regulator-min-microvolt = <1800000>; 321 regulator-max-microvolt = <1800000>; 322 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 323 }; 324 325 vreg_l9c_2p9: ldo9 { 326 regulator-min-microvolt = <2704000>; 327 regulator-max-microvolt = <2960000>; 328 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 329 }; 330 331 vreg_l10c_3p3: ldo10 { 332 regulator-min-microvolt = <3000000>; 333 regulator-max-microvolt = <3312000>; 334 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 335 }; 336 337 vreg_l11c_3p3: ldo11 { 338 regulator-min-microvolt = <3000000>; 339 regulator-max-microvolt = <3312000>; 340 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 341 }; 342 }; 343 344 regulators-2 { 345 compatible = "qcom,pm8009-rpmh-regulators"; 346 qcom,pmic-id = "f"; 347 348 vdd-s1-supply = <&vph_pwr>; 349 vdd-s2-supply = <&vreg_bob>; 350 351 vdd-l2-supply = <&vreg_s8c_1p3>; 352 vdd-l5-l6-supply = <&vreg_bob>; 353 354 vreg_l2f_1p2: ldo2 { 355 regulator-min-microvolt = <1200000>; 356 regulator-max-microvolt = <1200000>; 357 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 358 }; 359 360 vreg_l5f_2p85: ldo5 { 361 regulator-min-microvolt = <2800000>; 362 regulator-max-microvolt = <2800000>; 363 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 364 }; 365 366 vreg_l6f_2p85: ldo6 { 367 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 368 regulator-min-microvolt = <2856000>; 369 regulator-max-microvolt = <2856000>; 370 }; 371 }; 372}; 373 374&gmu { 375 status = "okay"; 376}; 377 378&gpi_dma0 { 379 status = "okay"; 380}; 381 382&gpi_dma1 { 383 status = "okay"; 384}; 385 386&gpu { 387 status = "okay"; 388}; 389 390&i2c4 { 391 clock-frequency = <100000>; 392 393 status = "okay"; 394 395 typec-mux@42 { 396 compatible = "fcs,fsa4480"; 397 reg = <0x42>; 398 399 interrupts-extended = <&tlmm 152 IRQ_TYPE_LEVEL_LOW>; 400 401 vcc-supply = <&vreg_bob>; 402 mode-switch; 403 orientation-switch; 404 405 port { 406 fsa4480_sbu_mux: endpoint { 407 remote-endpoint = <&pm8150b_typec_sbu_out>; 408 }; 409 }; 410 }; 411}; 412 413&i2c9 { 414 status = "okay"; 415 clock-frequency = <400000>; 416 417 lt9611_codec: hdmi-bridge@3b { 418 compatible = "lontium,lt9611"; 419 reg = <0x3b>; 420 #sound-dai-cells = <1>; 421 422 interrupts-extended = <&tlmm 9 IRQ_TYPE_EDGE_FALLING>; 423 424 reset-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>; 425 426 vdd-supply = <&vreg_s4a_1p8>; 427 vcc-supply = <&vreg_bob>; 428 429 pinctrl-names = "default"; 430 pinctrl-0 = <<9611_irq_pin>; 431 432 ports { 433 #address-cells = <1>; 434 #size-cells = <0>; 435 436 port@0 { 437 reg = <0>; 438 439 lt9611_a: endpoint { 440 remote-endpoint = <&mdss_dsi0_out>; 441 }; 442 }; 443 444 port@1 { 445 reg = <1>; 446 447 lt9611_b: endpoint { 448 remote-endpoint = <&mdss_dsi1_out>; 449 }; 450 }; 451 452 port@2 { 453 reg = <2>; 454 455 lt9611_out: endpoint { 456 remote-endpoint = <&hdmi_con>; 457 }; 458 }; 459 }; 460 }; 461}; 462 463&mdss { 464 status = "okay"; 465}; 466 467&mdss_dp { 468 status = "okay"; 469}; 470 471&mdss_dp_out { 472 data-lanes = <0 1>; 473 remote-endpoint = <&usb_1_qmpphy_dp_in>; 474}; 475 476&mdss_dsi0 { 477 status = "okay"; 478 vdda-supply = <&vreg_l3c_1p2>; 479 480 qcom,dual-dsi-mode; 481 qcom,master-dsi; 482 483 ports { 484 port@1 { 485 endpoint { 486 remote-endpoint = <<9611_a>; 487 data-lanes = <0 1 2 3>; 488 }; 489 }; 490 }; 491}; 492 493&mdss_dsi0_phy { 494 status = "okay"; 495 vdds-supply = <&vreg_l5a_0p875>; 496}; 497 498&mdss_dsi1 { 499 vdda-supply = <&vreg_l3c_1p2>; 500 501 qcom,dual-dsi-mode; 502 503 /* DSI1 is slave, so use DSI0 clocks */ 504 assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>; 505 506 status = "okay"; 507 508 ports { 509 port@1 { 510 endpoint { 511 remote-endpoint = <<9611_b>; 512 data-lanes = <0 1 2 3>; 513 }; 514 }; 515 }; 516}; 517 518&mdss_dsi1_phy { 519 vdds-supply = <&vreg_l5a_0p875>; 520 status = "okay"; 521}; 522 523&pm8150b_vbus { 524 regulator-min-microamp = <500000>; 525 regulator-max-microamp = <3000000>; 526 status = "okay"; 527}; 528 529&pm8150b_typec { 530 status = "okay"; 531 532 vdd-pdphy-supply = <&vreg_l2a_3p1>; 533 534 connector { 535 compatible = "usb-c-connector"; 536 537 power-role = "source"; 538 data-role = "dual"; 539 self-powered; 540 541 source-pdos = <PDO_FIXED(5000, 3000, 542 PDO_FIXED_DUAL_ROLE | 543 PDO_FIXED_USB_COMM | 544 PDO_FIXED_DATA_SWAP)>; 545 546 altmodes { 547 displayport { 548 svid = /bits/ 16 <0xff01>; 549 vdo = <0x00001c46>; 550 }; 551 }; 552 553 ports { 554 #address-cells = <1>; 555 #size-cells = <0>; 556 557 port@0 { 558 reg = <0>; 559 pm8150b_role_switch_in: endpoint { 560 remote-endpoint = <&usb_1_dwc3_hs>; 561 }; 562 }; 563 564 port@1 { 565 reg = <1>; 566 pm8150b_typec_mux_in: endpoint { 567 remote-endpoint = <&usb_1_qmpphy_out>; 568 }; 569 }; 570 571 port@2 { 572 reg = <2>; 573 574 pm8150b_typec_sbu_out: endpoint { 575 remote-endpoint = <&fsa4480_sbu_mux>; 576 }; 577 }; 578 }; 579 }; 580}; 581 582&pon_pwrkey { 583 status = "okay"; 584}; 585 586&pon_resin { 587 status = "okay"; 588 589 linux,code = <KEY_VOLUMEDOWN>; 590}; 591 592&qupv3_id_0 { 593 status = "okay"; 594}; 595 596&qupv3_id_1 { 597 status = "okay"; 598}; 599 600&remoteproc_adsp { 601 status = "okay"; 602 603 firmware-name = "qcom/sm8150/adsp.mbn"; 604}; 605 606&remoteproc_cdsp { 607 status = "okay"; 608 609 firmware-name = "qcom/sm8150/cdsp.mbn"; 610}; 611 612&remoteproc_slpi { 613 status = "okay"; 614 615 firmware-name = "qcom/sm8150/slpi.mbn"; 616}; 617 618&tlmm { 619 gpio-reserved-ranges = <0 4>, <126 4>; 620 621 lt9611_irq_pin: lt9611-irq-state { 622 pins = "gpio9"; 623 function = "gpio"; 624 bias-disable; 625 }; 626 627}; 628 629&uart2 { 630 status = "okay"; 631}; 632 633&ufs_mem_hc { 634 status = "okay"; 635 636 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>; 637 638 vcc-supply = <&vreg_l10a_2p5>; 639 vcc-max-microamp = <750000>; 640 vccq-supply = <&vreg_l9a_1p2>; 641 vccq-max-microamp = <700000>; 642 vccq2-supply = <&vreg_s4a_1p8>; 643 vccq2-max-microamp = <750000>; 644}; 645 646&ufs_mem_phy { 647 status = "okay"; 648 649 vdda-phy-supply = <&vdda_ufs_2ln_core_1>; 650 vdda-pll-supply = <&vreg_l3c_1p2>; 651}; 652 653&usb_1_hsphy { 654 status = "okay"; 655 vdda-pll-supply = <&vdd_usb_hs_core>; 656 vdda33-supply = <&vdda_usb_hs_3p1>; 657 vdda18-supply = <&vdda_usb_hs_1p8>; 658}; 659 660&usb_2_hsphy { 661 status = "okay"; 662 vdda-pll-supply = <&vdd_usb_hs_core>; 663 vdda33-supply = <&vdda_usb_hs_3p1>; 664 vdda18-supply = <&vdda_usb_hs_1p8>; 665}; 666 667&usb_1_qmpphy { 668 status = "okay"; 669 vdda-phy-supply = <&vreg_l3c_1p2>; 670 vdda-pll-supply = <&vreg_l18a_0p8>; 671 orientation-switch; 672}; 673 674&usb_1_qmpphy_dp_in { 675 remote-endpoint = <&mdss_dp_out>; 676}; 677 678&usb_1_qmpphy_out { 679 remote-endpoint = <&pm8150b_typec_mux_in>; 680}; 681 682&usb_1_qmpphy_usb_ss_in { 683 remote-endpoint = <&usb_1_dwc3_ss>; 684}; 685 686&usb_2_qmpphy { 687 status = "okay"; 688 vdda-phy-supply = <&vreg_l3c_1p2>; 689 vdda-pll-supply = <&vreg_l5a_0p875>; 690}; 691 692&usb_1 { 693 status = "okay"; 694}; 695 696&usb_2 { 697 status = "okay"; 698}; 699 700&usb_1_dwc3 { 701 dr_mode = "otg"; 702 usb-role-switch; 703}; 704 705&usb_1_dwc3_hs { 706 remote-endpoint = <&pm8150b_role_switch_in>; 707}; 708 709&usb_1_dwc3_ss { 710 remote-endpoint = <&usb_1_qmpphy_usb_ss_in>; 711}; 712 713&usb_2_dwc3 { 714 dr_mode = "host"; 715}; 716