1// SPDX-License-Identifier: BSD-3-Clause 2 3/dts-v1/; 4 5#include <dt-bindings/gpio/gpio.h> 6#include <dt-bindings/sound/qcom,q6asm.h> 7#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 8 9#include "sc7180.dtsi" 10 11#include "pm6150.dtsi" 12#include "pm6150l.dtsi" 13 14/delete-node/ &tz_mem; 15/delete-node/ &ipa_fw_mem; 16 17/ { 18 model = "ECS LIVA QC710"; 19 compatible = "ecs,liva-qc710", "qcom,sc7180"; 20 chassis-type = "desktop"; 21 22 aliases { 23 bluetooth0 = &bluetooth; 24 hsuart0 = &uart3; 25 wifi0 = &wifi; 26 }; 27 28 hdmi-bridge { 29 compatible = "algoltek,ag6311"; 30 31 ports { 32 #address-cells = <1>; 33 #size-cells = <0>; 34 35 port@0 { 36 reg = <0>; 37 38 hdmi_bridge_dp_in: endpoint { 39 remote-endpoint = <&usb_1_qmpphy_dp_out>; 40 }; 41 }; 42 43 port@1 { 44 reg = <1>; 45 46 hdmi_bridge_tmds_out: endpoint { 47 remote-endpoint = <&hdmi_con>; 48 }; 49 }; 50 }; 51 }; 52 53 hdmi-connector { 54 compatible = "hdmi-connector"; 55 type = "a"; 56 57 port { 58 hdmi_con: endpoint { 59 remote-endpoint = <&hdmi_bridge_tmds_out>; 60 }; 61 }; 62 }; 63 64 reserved-memory { 65 gpu_mem: zap-shader@80840000 { 66 reg = <0x0 0x80840000 0 0x2000>; 67 no-map; 68 }; 69 70 venus_mem: venus@85b00000 { 71 reg = <0x0 0x85b00000 0 0x500000>; 72 no-map; 73 }; 74 75 mpss_mem: mpss@86000000 { 76 reg = <0x0 0x86000000 0x0 0x2000000>; 77 no-map; 78 }; 79 80 adsp_mem: adsp@8e400000 { 81 reg = <0x0 0x8e400000 0x0 0x2800000>; 82 no-map; 83 }; 84 85 wlan_mem: wlan@93900000 { 86 reg = <0x0 0x93900000 0x0 0x200000>; 87 no-map; 88 }; 89 }; 90 91 usb_a_connector: usb-a-connector { 92 compatible = "usb-a-connector"; 93 94 port { 95 usb_a_connector_ss_in: endpoint { 96 remote-endpoint = <&usb_1_qmpphy_usb_ss_out>; 97 }; 98 }; 99 }; 100}; 101 102&apps_rsc { 103 regulators-0 { 104 compatible = "qcom,pm6150-rpmh-regulators"; 105 qcom,pmic-id = "a"; 106 107 vreg_s1a_1p1: smps1 { 108 regulator-min-microvolt = <1128000>; 109 regulator-max-microvolt = <1128000>; 110 }; 111 112 vreg_l4a_0p8: ldo4 { 113 regulator-min-microvolt = <824000>; 114 regulator-max-microvolt = <928000>; 115 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 116 }; 117 118 vreg_l9a_0p6: ldo9 { 119 regulator-min-microvolt = <488000>; 120 regulator-max-microvolt = <800000>; 121 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 122 }; 123 124 vreg_l10a_1p8: ldo10 { 125 regulator-min-microvolt = <1800000>; 126 regulator-max-microvolt = <1800000>; 127 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 128 regulator-always-on; 129 regulator-boot-on; 130 }; 131 132 vreg_l11a_1p8: ldo11 { 133 regulator-min-microvolt = <1800000>; 134 regulator-max-microvolt = <1800000>; 135 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 136 }; 137 138 vreg_l12a_1p8: ldo12 { 139 regulator-min-microvolt = <1800000>; 140 regulator-max-microvolt = <1800000>; 141 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 142 }; 143 144 vreg_l13a_1p8: ldo13 { 145 regulator-min-microvolt = <1800000>; 146 regulator-max-microvolt = <1800000>; 147 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 148 }; 149 150 vreg_l14a_1p8: ldo14 { 151 regulator-min-microvolt = <1800000>; 152 regulator-max-microvolt = <1800000>; 153 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 154 }; 155 156 vreg_l15a_1p8: ldo15 { 157 regulator-min-microvolt = <1800000>; 158 regulator-max-microvolt = <1800000>; 159 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 160 }; 161 162 vreg_l16a_2p7: ldo16 { 163 regulator-min-microvolt = <2496000>; 164 regulator-max-microvolt = <3304000>; 165 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 166 }; 167 168 vreg_l17a_3p0: ldo17 { 169 regulator-min-microvolt = <2920000>; 170 regulator-max-microvolt = <3232000>; 171 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 172 }; 173 174 vreg_l18a_2p8: ldo18 { 175 regulator-min-microvolt = <2496000>; 176 regulator-max-microvolt = <3304000>; 177 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 178 }; 179 180 vreg_l19a_2p9: ldo19 { 181 regulator-min-microvolt = <2960000>; 182 regulator-max-microvolt = <2960000>; 183 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 184 }; 185 }; 186 187 regulators-1 { 188 compatible = "qcom,pm6150l-rpmh-regulators"; 189 qcom,pmic-id = "c"; 190 191 vreg_s8c_1p3: smps8 { 192 regulator-min-microvolt = <1120000>; 193 regulator-max-microvolt = <1408000>; 194 }; 195 196 vreg_l1c_1p8: ldo1 { 197 regulator-min-microvolt = <1616000>; 198 regulator-max-microvolt = <1984000>; 199 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 200 }; 201 202 vreg_l2c_1p3: ldo2 { 203 regulator-min-microvolt = <1168000>; 204 regulator-max-microvolt = <1304000>; 205 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 206 }; 207 208 vreg_l3c_1p2: ldo3 { 209 regulator-min-microvolt = <1144000>; 210 regulator-max-microvolt = <1304000>; 211 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 212 }; 213 214 vreg_l4c_1p8: ldo4 { 215 regulator-min-microvolt = <1648000>; 216 regulator-max-microvolt = <3304000>; 217 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 218 }; 219 220 vreg_l5c_1p8: ldo5 { 221 regulator-min-microvolt = <1648000>; 222 regulator-max-microvolt = <3304000>; 223 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 224 }; 225 226 vreg_l6c_2p9: ldo6 { 227 regulator-min-microvolt = <1800000>; 228 regulator-max-microvolt = <2950000>; 229 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 230 }; 231 232 vreg_l7c_3p0: ldo7 { 233 regulator-min-microvolt = <3000000>; 234 regulator-max-microvolt = <3312000>; 235 regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>; 236 }; 237 238 vreg_l8c_1p8: ldo8 { 239 regulator-min-microvolt = <1800000>; 240 regulator-max-microvolt = <1800000>; 241 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 242 }; 243 244 vreg_l9c_2p9: ldo9 { 245 regulator-min-microvolt = <2952000>; 246 regulator-max-microvolt = <2952000>; 247 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 248 }; 249 250 vreg_l10c_3p3: ldo10 { 251 regulator-min-microvolt = <3000000>; 252 regulator-max-microvolt = <3400000>; 253 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 254 }; 255 256 vreg_l11c_3p3: ldo11 { 257 regulator-min-microvolt = <3000000>; 258 regulator-max-microvolt = <3400000>; 259 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 260 }; 261 262 vreg_bob: bob { 263 regulator-min-microvolt = <3008000>; 264 regulator-max-microvolt = <3960000>; 265 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>; 266 }; 267 }; 268}; 269 270&gpu { 271 status = "okay"; 272}; 273 274&gpu_zap_shader { 275 firmware-name = "qcom/sc7180/ecs/liva-qc710/qcdxkmsuc7180.mbn"; 276}; 277 278&mdss { 279 status = "okay"; 280}; 281 282&mdss_dp { 283 pinctrl-0 = <&dp_hot_plug_det>; 284 pinctrl-names = "default"; 285 286 status = "okay"; 287}; 288 289&mdss_dp_out { 290 data-lanes = <0 1>; 291 remote-endpoint = <&usb_1_qmpphy_dp_in>; 292}; 293 294&pm6150_rtc { 295 qcom,uefi-rtc-info; 296 297 status = "okay"; 298}; 299 300&qfprom { 301 vcc-supply = <&vreg_l11a_1p8>; 302}; 303 304&qupv3_id_0 { 305 status = "okay"; 306}; 307 308&qupv3_id_1 { 309 status = "okay"; 310}; 311 312&remoteproc_adsp { 313 memory-region = <&adsp_mem>; 314 firmware-name = "qcom/sc7180/ecs/liva-qc710/qcadsp7180.mbn"; 315 316 status = "okay"; 317}; 318 319&remoteproc_mpss { 320 firmware-name = "qcom/sc7180/ecs/liva-qc710/qcmpss7180_nm.mbn"; 321 322 status = "okay"; 323}; 324 325&sdhc_1 { 326 pinctrl-0 = <&sdc1_default>; 327 pinctrl-1 = <&sdc1_sleep>; 328 pinctrl-names = "default", "sleep"; 329 vmmc-supply = <&vreg_l19a_2p9>; 330 vqmmc-supply = <&vreg_l12a_1p8>; 331 332 status = "okay"; 333}; 334 335&sdhc_2 { 336 pinctrl-0 = <&sdc2_default>; 337 pinctrl-1 = <&sdc2_sleep>; 338 pinctrl-names = "default", "sleep"; 339 vmmc-supply = <&vreg_l9c_2p9>; 340 vqmmc-supply = <&vreg_l6c_2p9>; 341 342 cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>; 343 344 status = "okay"; 345}; 346 347&tlmm { 348 /* 349 * The TZ seem to protect those because some boards can have 350 * fingerprint sensor connected to this range. Not connected 351 * on this board 352 */ 353 gpio-reserved-ranges = <58 5>; 354 355 qup_uart3_sleep: qup-uart3-sleep-state { 356 cts-pins { 357 /* 358 * Configure a pull-down on CTS to match the pull of 359 * the Bluetooth module. 360 */ 361 pins = "gpio38"; 362 function = "gpio"; 363 bias-pull-down; 364 }; 365 366 rts-pins { 367 /* 368 * Configure pull-down on RTS. As RTS is active low 369 * signal, pull it low to indicate the BT SoC that it 370 * can wakeup the system anytime from suspend state by 371 * pulling RX low (by sending wakeup bytes). 372 */ 373 pins = "gpio39"; 374 function = "gpio"; 375 bias-pull-down; 376 }; 377 378 tx-pins { 379 /* 380 * Configure pull-up on TX when it isn't actively driven 381 * to prevent BT SoC from receiving garbage during sleep. 382 */ 383 pins = "gpio40"; 384 function = "gpio"; 385 bias-pull-up; 386 }; 387 388 rx-pins { 389 /* 390 * Configure a pull-up on RX. This is needed to avoid 391 * garbage data when the TX pin of the Bluetooth module 392 * is floating which may cause spurious wakeups. 393 */ 394 pins = "gpio41"; 395 function = "gpio"; 396 bias-pull-up; 397 }; 398 }; 399 400 sdc1_default: sdc1-default-state { 401 clk-pins { 402 pins = "sdc1_clk"; 403 drive-strength = <16>; 404 bias-disable; 405 }; 406 407 cmd-pins { 408 pins = "sdc1_cmd"; 409 drive-strength = <16>; 410 bias-pull-up; 411 }; 412 413 data-pins { 414 pins = "sdc1_data"; 415 drive-strength = <16>; 416 bias-pull-up; 417 }; 418 419 rclk-pins { 420 pins = "sdc1_rclk"; 421 bias-pull-down; 422 }; 423 }; 424 425 sdc1_sleep: sdc1-sleep-state { 426 clk-pins { 427 pins = "sdc1_clk"; 428 drive-strength = <2>; 429 bias-disable; 430 }; 431 432 cmd-pins { 433 pins = "sdc1_cmd"; 434 drive-strength = <2>; 435 bias-pull-up; 436 }; 437 438 data-pins { 439 pins = "sdc1_data"; 440 drive-strength = <2>; 441 bias-pull-up; 442 }; 443 444 rclk-pins { 445 pins = "sdc1_rclk"; 446 bias-pull-down; 447 }; 448 }; 449 450 sdc2_default: sdc2-default-state { 451 clk-pins { 452 pins = "sdc2_clk"; 453 bias-disable; 454 drive-strength = <16>; 455 }; 456 457 cmd-pins { 458 pins = "sdc2_cmd"; 459 bias-pull-up; 460 drive-strength = <10>; 461 }; 462 463 data-pins { 464 pins = "sdc2_data"; 465 bias-pull-up; 466 drive-strength = <10>; 467 }; 468 469 sd-cd-pins { 470 pins = "gpio69"; 471 function = "gpio"; 472 bias-pull-up; 473 drive-strength = <2>; 474 }; 475 }; 476 477 sdc2_sleep: sdc2-sleep-state { 478 clk-pins { 479 pins = "sdc2_clk"; 480 bias-disable; 481 drive-strength = <2>; 482 }; 483 484 cmd-pins { 485 pins = "sdc2_cmd"; 486 bias-pull-up; 487 drive-strength = <2>; 488 }; 489 490 data-pins { 491 pins = "sdc2_data"; 492 bias-pull-up; 493 drive-strength = <2>; 494 }; 495 496 sd-cd-pins { 497 pins = "gpio69"; 498 function = "gpio"; 499 bias-pull-up; 500 drive-strength = <2>; 501 }; 502 }; 503}; 504&uart3 { 505 /delete-property/ interrupts; 506 interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>, 507 <&tlmm 41 IRQ_TYPE_EDGE_FALLING>; 508 509 pinctrl-1 = <&qup_uart3_sleep>; 510 pinctrl-names = "default", "sleep"; 511 512 status = "okay"; 513 514 bluetooth: bluetooth { 515 compatible = "qcom,wcn3991-bt"; 516 vddio-supply = <&vreg_l10a_1p8>; 517 vddxo-supply = <&vreg_l1c_1p8>; 518 vddrf-supply = <&vreg_l2c_1p3>; 519 vddch0-supply = <&vreg_l10c_3p3>; 520 max-speed = <3200000>; 521 }; 522}; 523 524&usb_1 { 525 status = "okay"; 526}; 527 528&usb_1_dwc3 { 529 dr_mode = "host"; 530 #address-cells = <1>; 531 #size-cells = <0>; 532 533 hub@1 { 534 compatible = "usb5e3,608"; 535 reg = <1>; 536 #address-cells = <1>; 537 #size-cells = <0>; 538 539 /* @1: 3.0 Type-A port on the back 540 * @2: 2.0 Type-A port the side 541 * @3: 2.0 Type-C port on the back 542 */ 543 544 ethernet@4 { 545 compatible = "usbbda,8152"; 546 reg = <4>; 547 }; 548 }; 549}; 550 551&usb_1_hsphy { 552 vdd-supply = <&vreg_l4a_0p8>; 553 vdda-pll-supply = <&vreg_l11a_1p8>; 554 vdda-phy-dpdm-supply = <&vreg_l17a_3p0>; 555 qcom,imp-res-offset-value = <8>; 556 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>; 557 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; 558 qcom,bias-ctrl-value = <0x22>; 559 qcom,charge-ctrl-value = <3>; 560 qcom,hsdisc-trim-value = <0>; 561 562 status = "okay"; 563}; 564 565&usb_1_qmpphy { 566 vdda-phy-supply = <&vreg_l3c_1p2>; 567 vdda-pll-supply = <&vreg_l4a_0p8>; 568 569 /delete-property/ mode-switch; 570 /delete-property/ orientation-switch; 571 572 status = "okay"; 573 574 ports { 575 port@0 { 576 #address-cells = <1>; 577 #size-cells = <0>; 578 579 /delete-node/ endpoint; 580 581 usb_1_qmpphy_dp_out: endpoint@0 { 582 reg = <0>; 583 584 data-lanes = <3 2>; 585 remote-endpoint = <&hdmi_bridge_dp_in>; 586 }; 587 588 usb_1_qmpphy_usb_ss_out: endpoint@1 { 589 reg = <1>; 590 591 data-lanes = <1 0>; 592 remote-endpoint = <&usb_a_connector_ss_in>; 593 }; 594 }; 595 }; 596}; 597 598&usb_1_qmpphy_dp_in { 599 remote-endpoint = <&mdss_dp_out>; 600}; 601 602&venus { 603 firmware-name = "qcom/sc7180/ecs/liva-qc710/qcvss7180.mbn"; 604}; 605 606&wifi { 607 vdd-0.8-cx-mx-supply = <&vreg_l9a_0p6>; 608 vdd-1.8-xo-supply = <&vreg_l1c_1p8>; 609 vdd-1.3-rfa-supply = <&vreg_l2c_1p3>; 610 vdd-3.3-ch0-supply = <&vreg_l10c_3p3>; 611 vdd-3.3-ch1-supply = <&vreg_l11c_3p3>; 612 613 qcom,calibration-variant = "ECS_QC710"; 614 615 status = "okay"; 616}; 617