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}; 474 475&mdss_dsi0 { 476 status = "okay"; 477 vdda-supply = <&vreg_l3c_1p2>; 478 479 qcom,dual-dsi-mode; 480 qcom,master-dsi; 481 482 ports { 483 port@1 { 484 endpoint { 485 remote-endpoint = <<9611_a>; 486 data-lanes = <0 1 2 3>; 487 }; 488 }; 489 }; 490}; 491 492&mdss_dsi0_phy { 493 status = "okay"; 494 vdds-supply = <&vreg_l5a_0p875>; 495}; 496 497&mdss_dsi1 { 498 vdda-supply = <&vreg_l3c_1p2>; 499 500 qcom,dual-dsi-mode; 501 502 /* DSI1 is slave, so use DSI0 clocks */ 503 assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>; 504 505 status = "okay"; 506 507 ports { 508 port@1 { 509 endpoint { 510 remote-endpoint = <<9611_b>; 511 data-lanes = <0 1 2 3>; 512 }; 513 }; 514 }; 515}; 516 517&mdss_dsi1_phy { 518 vdds-supply = <&vreg_l5a_0p875>; 519 status = "okay"; 520}; 521 522&pm8150b_vbus { 523 regulator-min-microamp = <500000>; 524 regulator-max-microamp = <3000000>; 525 status = "okay"; 526}; 527 528&pm8150b_typec { 529 status = "okay"; 530 531 vdd-pdphy-supply = <&vreg_l2a_3p1>; 532 533 connector { 534 compatible = "usb-c-connector"; 535 536 power-role = "source"; 537 data-role = "dual"; 538 self-powered; 539 540 source-pdos = <PDO_FIXED(5000, 3000, 541 PDO_FIXED_DUAL_ROLE | 542 PDO_FIXED_USB_COMM | 543 PDO_FIXED_DATA_SWAP)>; 544 545 altmodes { 546 displayport { 547 svid = /bits/ 16 <0xff01>; 548 vdo = <0x00001c46>; 549 }; 550 }; 551 552 ports { 553 #address-cells = <1>; 554 #size-cells = <0>; 555 556 port@0 { 557 reg = <0>; 558 pm8150b_hs_in: endpoint { 559 remote-endpoint = <&usb_1_dwc3_hs>; 560 }; 561 }; 562 563 port@1 { 564 reg = <1>; 565 pm8150b_typec_mux_in: endpoint { 566 remote-endpoint = <&usb_1_qmpphy_out>; 567 }; 568 }; 569 570 port@2 { 571 reg = <2>; 572 573 pm8150b_typec_sbu_out: endpoint { 574 remote-endpoint = <&fsa4480_sbu_mux>; 575 }; 576 }; 577 }; 578 }; 579}; 580 581&pon_pwrkey { 582 status = "okay"; 583}; 584 585&pon_resin { 586 status = "okay"; 587 588 linux,code = <KEY_VOLUMEDOWN>; 589}; 590 591&qupv3_id_0 { 592 status = "okay"; 593}; 594 595&qupv3_id_1 { 596 status = "okay"; 597}; 598 599&remoteproc_adsp { 600 status = "okay"; 601 602 firmware-name = "qcom/sm8150/adsp.mbn"; 603}; 604 605&remoteproc_cdsp { 606 status = "okay"; 607 608 firmware-name = "qcom/sm8150/cdsp.mbn"; 609}; 610 611&remoteproc_mpss { 612 firmware-name = "qcom/sm8150/modem.mbn"; 613 status = "okay"; 614}; 615 616&remoteproc_slpi { 617 status = "okay"; 618 619 firmware-name = "qcom/sm8150/slpi.mbn"; 620}; 621 622&tlmm { 623 gpio-reserved-ranges = <0 4>, <126 4>; 624 625 lt9611_irq_pin: lt9611-irq-state { 626 pins = "gpio9"; 627 function = "gpio"; 628 bias-disable; 629 }; 630 631}; 632 633&uart2 { 634 status = "okay"; 635}; 636 637&ufs_mem_hc { 638 status = "okay"; 639 640 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>; 641 642 vcc-supply = <&vreg_l10a_2p5>; 643 vcc-max-microamp = <750000>; 644 vccq-supply = <&vreg_l9a_1p2>; 645 vccq-max-microamp = <700000>; 646 vccq2-supply = <&vreg_s4a_1p8>; 647 vccq2-max-microamp = <750000>; 648}; 649 650&ufs_mem_phy { 651 status = "okay"; 652 653 vdda-phy-supply = <&vdda_ufs_2ln_core_1>; 654 vdda-pll-supply = <&vreg_l3c_1p2>; 655}; 656 657&usb_1_hsphy { 658 status = "okay"; 659 vdda-pll-supply = <&vdd_usb_hs_core>; 660 vdda33-supply = <&vdda_usb_hs_3p1>; 661 vdda18-supply = <&vdda_usb_hs_1p8>; 662}; 663 664&usb_2_hsphy { 665 status = "okay"; 666 vdda-pll-supply = <&vdd_usb_hs_core>; 667 vdda33-supply = <&vdda_usb_hs_3p1>; 668 vdda18-supply = <&vdda_usb_hs_1p8>; 669}; 670 671&usb_1_qmpphy { 672 status = "okay"; 673 vdda-phy-supply = <&vreg_l3c_1p2>; 674 vdda-pll-supply = <&vreg_l18a_0p8>; 675 orientation-switch; 676}; 677 678&usb_1_qmpphy_out { 679 remote-endpoint = <&pm8150b_typec_mux_in>; 680}; 681 682&usb_2_qmpphy { 683 status = "okay"; 684 vdda-phy-supply = <&vreg_l3c_1p2>; 685 vdda-pll-supply = <&vreg_l5a_0p875>; 686}; 687 688&usb_1 { 689 status = "okay"; 690}; 691 692&usb_2 { 693 status = "okay"; 694}; 695 696&usb_1_dwc3 { 697 dr_mode = "otg"; 698 usb-role-switch; 699}; 700 701&usb_1_dwc3_hs { 702 remote-endpoint = <&pm8150b_hs_in>; 703}; 704 705&usb_2_dwc3 { 706 dr_mode = "host"; 707}; 708 709&wifi { 710 status = "okay"; 711 712 vdd-0.8-cx-mx-supply = <&vreg_l1a_0p75>; 713 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 714 vdd-1.3-rfa-supply = <&vreg_l2c_1p3>; 715 vdd-3.3-ch0-supply = <&vreg_l11c_3p3>; 716 717 qcom,ath10k-calibration-variant = "Qualcomm_sm8150hdk"; 718}; 719