1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2023, Dang Huynh <danct12@riseup.net> 4 */ 5 6#include <dt-bindings/clock/qcom,dsi-phy-28nm.h> 7#include <dt-bindings/clock/qcom,gcc-msm8917.h> 8#include <dt-bindings/clock/qcom,rpmcc.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h> 10#include <dt-bindings/power/qcom-rpmpd.h> 11#include <dt-bindings/thermal/thermal.h> 12 13/ { 14 interrupt-parent = <&intc>; 15 16 #address-cells = <2>; 17 #size-cells = <2>; 18 19 clocks { 20 xo_board: xo-board { 21 compatible = "fixed-clock"; 22 #clock-cells = <0>; 23 }; 24 25 sleep_clk: sleep-clk { 26 compatible = "fixed-clock"; 27 #clock-cells = <0>; 28 }; 29 }; 30 31 cpus { 32 #address-cells = <1>; 33 #size-cells = <0>; 34 35 cpu0: cpu@0 { 36 compatible = "arm,cortex-a53"; 37 reg = <0x0>; 38 device_type = "cpu"; 39 enable-method = "psci"; 40 operating-points-v2 = <&cpu_opp_table_c0>; 41 next-level-cache = <&l2_0>; 42 #cooling-cells = <2>; 43 44 l2_0: l2-cache { 45 compatible = "cache"; 46 cache-level = <2>; 47 cache-size = <0x80000>; 48 cache-unified; 49 }; 50 }; 51 52 cpu1: cpu@1 { 53 compatible = "arm,cortex-a53"; 54 reg = <0x1>; 55 device_type = "cpu"; 56 enable-method = "psci"; 57 operating-points-v2 = <&cpu_opp_table_c0>; 58 next-level-cache = <&l2_0>; 59 #cooling-cells = <2>; 60 }; 61 62 cpu2: cpu@2 { 63 compatible = "arm,cortex-a53"; 64 reg = <0x2>; 65 device_type = "cpu"; 66 enable-method = "psci"; 67 operating-points-v2 = <&cpu_opp_table_c0>; 68 next-level-cache = <&l2_0>; 69 #cooling-cells = <2>; 70 }; 71 72 cpu3: cpu@3 { 73 compatible = "arm,cortex-a53"; 74 reg = <0x3>; 75 device_type = "cpu"; 76 enable-method = "psci"; 77 operating-points-v2 = <&cpu_opp_table_c0>; 78 next-level-cache = <&l2_0>; 79 #cooling-cells = <2>; 80 }; 81 82 cpu4: cpu@100 { 83 compatible = "arm,cortex-a53"; 84 reg = <0x100>; 85 device_type = "cpu"; 86 next-level-cache = <&l2_1>; 87 enable-method = "psci"; 88 operating-points-v2 = <&cpu_opp_table_c1>; 89 #cooling-cells = <2>; 90 91 l2_1: l2-cache { 92 compatible = "cache"; 93 cache-level = <2>; 94 cache-size = <0x100000>; 95 cache-unified; 96 }; 97 }; 98 99 cpu5: cpu@101 { 100 compatible = "arm,cortex-a53"; 101 reg = <0x101>; 102 device_type = "cpu"; 103 next-level-cache = <&l2_1>; 104 enable-method = "psci"; 105 operating-points-v2 = <&cpu_opp_table_c1>; 106 #cooling-cells = <2>; 107 }; 108 109 cpu6: cpu@102 { 110 compatible = "arm,cortex-a53"; 111 reg = <0x102>; 112 device_type = "cpu"; 113 next-level-cache = <&l2_1>; 114 enable-method = "psci"; 115 operating-points-v2 = <&cpu_opp_table_c1>; 116 #cooling-cells = <2>; 117 }; 118 119 cpu7: cpu@103 { 120 compatible = "arm,cortex-a53"; 121 reg = <0x103>; 122 device_type = "cpu"; 123 next-level-cache = <&l2_1>; 124 enable-method = "psci"; 125 operating-points-v2 = <&cpu_opp_table_c1>; 126 #cooling-cells = <2>; 127 }; 128 129 cpu-map { 130 /* Little Cores */ 131 cluster0 { 132 core0 { 133 cpu = <&cpu0>; 134 }; 135 136 core1 { 137 cpu = <&cpu1>; 138 }; 139 140 core2 { 141 cpu = <&cpu2>; 142 }; 143 144 core3 { 145 cpu = <&cpu3>; 146 }; 147 }; 148 149 /* Big Cores */ 150 cluster1 { 151 core0 { 152 cpu = <&cpu4>; 153 }; 154 155 core1 { 156 cpu = <&cpu5>; 157 }; 158 159 core2 { 160 cpu = <&cpu6>; 161 }; 162 163 core3 { 164 cpu = <&cpu7>; 165 }; 166 }; 167 }; 168 }; 169 170 firmware { 171 scm: scm { 172 compatible = "qcom,scm-msm8937", "qcom,scm"; 173 clocks = <&gcc GCC_CRYPTO_CLK>, 174 <&gcc GCC_CRYPTO_AXI_CLK>, 175 <&gcc GCC_CRYPTO_AHB_CLK>; 176 clock-names = "core", 177 "bus", 178 "iface"; 179 #reset-cells = <1>; 180 181 qcom,dload-mode = <&tcsr 0x6100>; 182 }; 183 }; 184 185 memory@80000000 { 186 /* We expect the bootloader to fill in the reg */ 187 reg = <0 0x80000000 0 0>; 188 device_type = "memory"; 189 }; 190 191 reserved-memory { 192 ranges; 193 #address-cells = <2>; 194 #size-cells = <2>; 195 196 qseecom_mem: reserved@85b00000 { 197 reg = <0x0 0x85b00000 0x0 0x800000>; 198 no-map; 199 }; 200 201 smem@86300000 { 202 compatible = "qcom,smem"; 203 reg = <0x0 0x86300000 0x0 0x100000>; 204 no-map; 205 206 hwlocks = <&tcsr_mutex 3>; 207 qcom,rpm-msg-ram = <&rpm_msg_ram>; 208 }; 209 210 reserved@86400000 { 211 reg = <0x0 0x86400000 0x0 0x400000>; 212 no-map; 213 }; 214 215 rmtfs@92100000 { 216 compatible = "qcom,rmtfs-mem"; 217 reg = <0x0 0x92100000 0x0 0x180000>; 218 no-map; 219 220 qcom,client-id = <1>; 221 }; 222 223 adsp_mem: adsp { 224 size = <0x0 0x1100000>; 225 alignment = <0x0 0x100000>; 226 alloc-ranges = <0x0 0x86800000 0x0 0x8000000>; 227 no-map; 228 status = "disabled"; 229 }; 230 231 mba_mem: mba { 232 size = <0x0 0x100000>; 233 alignment = <0x0 0x100000>; 234 alloc-ranges = <0x0 0x86800000 0x0 0x8000000>; 235 no-map; 236 status = "disabled"; 237 }; 238 239 wcnss_mem: wcnss { 240 size = <0x0 0x700000>; 241 alignment = <0x0 0x100000>; 242 alloc-ranges = <0x0 0x86800000 0x0 0x8000000>; 243 no-map; 244 status = "disabled"; 245 }; 246 247 venus_mem: venus { 248 size = <0x0 0x400000>; 249 alignment = <0x0 0x100000>; 250 alloc-ranges = <0x0 0x86800000 0x0 0x8000000>; 251 no-map; 252 status = "disabled"; 253 }; 254 }; 255 256 cpu_opp_table_c0: opp-table-c0 { 257 compatible = "operating-points-v2"; 258 opp-shared; 259 260 opp-768000000 { 261 opp-hz = /bits/ 64 <768000000>; 262 }; 263 264 opp-902400000 { 265 opp-hz = /bits/ 64 <902400000>; 266 }; 267 268 opp-998400000 { 269 opp-hz = /bits/ 64 <998400000>; 270 }; 271 272 opp-1094400000 { 273 opp-hz = /bits/ 64 <1094400000>; 274 }; 275 }; 276 277 cpu_opp_table_c1: opp-table-c1 { 278 compatible = "operating-points-v2"; 279 opp-shared; 280 281 opp-960000000 { 282 opp-hz = /bits/ 64 <960000000>; 283 }; 284 285 opp-1094400000 { 286 opp-hz = /bits/ 64 <1094400000>; 287 }; 288 289 opp-1209600000 { 290 opp-hz = /bits/ 64 <1209600000>; 291 }; 292 293 opp-1248000000 { 294 opp-hz = /bits/ 64 <1248000000>; 295 }; 296 297 opp-1344000000 { 298 opp-hz = /bits/ 64 <1344000000>; 299 }; 300 301 opp-1401600000 { 302 opp-hz = /bits/ 64 <1401600000>; 303 }; 304 }; 305 306 pmu { 307 compatible = "arm,cortex-a53-pmu"; 308 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 309 }; 310 311 psci { 312 compatible = "arm,psci-1.0"; 313 method = "smc"; 314 }; 315 316 rpm: remoteproc { 317 compatible = "qcom,msm8937-rpm-proc", "qcom,rpm-proc"; 318 319 smd-edge { 320 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 321 qcom,ipc = <&apcs1 8 0>; 322 qcom,smd-edge = <15>; 323 324 rpm_requests: rpm-requests { 325 compatible = "qcom,rpm-msm8937", "qcom,smd-rpm"; 326 qcom,smd-channels = "rpm_requests"; 327 328 rpmcc: clock-controller { 329 compatible = "qcom,rpmcc-msm8937", "qcom,rpmcc"; 330 #clock-cells = <1>; 331 clocks = <&xo_board>; 332 clock-names = "xo"; 333 }; 334 335 rpmpd: power-controller { 336 compatible = "qcom,msm8937-rpmpd", "qcom,msm8917-rpmpd"; 337 #power-domain-cells = <1>; 338 operating-points-v2 = <&rpmpd_opp_table>; 339 340 rpmpd_opp_table: opp-table { 341 compatible = "operating-points-v2"; 342 343 rpmpd_opp_ret: opp1 { 344 opp-level = <RPM_SMD_LEVEL_RETENTION>; 345 }; 346 347 rpmpd_opp_ret_plus: opp2 { 348 opp-level = <RPM_SMD_LEVEL_RETENTION_PLUS>; 349 }; 350 351 rpmpd_opp_min_svs: opp3 { 352 opp-level = <RPM_SMD_LEVEL_MIN_SVS>; 353 }; 354 355 rpmpd_opp_low_svs: opp4 { 356 opp-level = <RPM_SMD_LEVEL_LOW_SVS>; 357 }; 358 359 rpmpd_opp_svs: opp5 { 360 opp-level = <RPM_SMD_LEVEL_SVS>; 361 }; 362 363 rpmpd_opp_svs_plus: opp6 { 364 opp-level = <RPM_SMD_LEVEL_SVS_PLUS>; 365 }; 366 367 rpmpd_opp_nom: opp7 { 368 opp-level = <RPM_SMD_LEVEL_NOM>; 369 }; 370 371 rpmpd_opp_nom_plus: opp8 { 372 opp-level = <RPM_SMD_LEVEL_NOM_PLUS>; 373 }; 374 375 rpmpd_opp_turbo: opp9 { 376 opp-level = <RPM_SMD_LEVEL_TURBO>; 377 }; 378 }; 379 }; 380 }; 381 }; 382 }; 383 384 smp2p-adsp { 385 compatible = "qcom,smp2p"; 386 qcom,smem = <443>, <429>; 387 388 interrupts = <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>; 389 390 mboxes = <&apcs1 10>; 391 392 qcom,local-pid = <0>; 393 qcom,remote-pid = <2>; 394 395 adsp_smp2p_out: master-kernel { 396 qcom,entry-name = "master-kernel"; 397 398 #qcom,smem-state-cells = <1>; 399 }; 400 401 adsp_smp2p_in: slave-kernel { 402 qcom,entry-name = "slave-kernel"; 403 404 interrupt-controller; 405 #interrupt-cells = <2>; 406 }; 407 }; 408 409 smp2p-modem { 410 compatible = "qcom,smp2p"; 411 qcom,smem = <435>, <428>; 412 413 interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>; 414 415 mboxes = <&apcs1 14>; 416 417 qcom,local-pid = <0>; 418 qcom,remote-pid = <1>; 419 420 modem_smp2p_out: master-kernel { 421 qcom,entry-name = "master-kernel"; 422 423 #qcom,smem-state-cells = <1>; 424 }; 425 426 modem_smp2p_in: slave-kernel { 427 qcom,entry-name = "slave-kernel"; 428 429 interrupt-controller; 430 #interrupt-cells = <2>; 431 }; 432 }; 433 434 smp2p-wcnss { 435 compatible = "qcom,smp2p"; 436 qcom,smem = <451>, <431>; 437 438 interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>; 439 440 mboxes = <&apcs1 18>; 441 442 qcom,local-pid = <0>; 443 qcom,remote-pid = <4>; 444 445 wcnss_smp2p_out: master-kernel { 446 qcom,entry-name = "master-kernel"; 447 448 #qcom,smem-state-cells = <1>; 449 }; 450 451 wcnss_smp2p_in: slave-kernel { 452 qcom,entry-name = "slave-kernel"; 453 454 interrupt-controller; 455 #interrupt-cells = <2>; 456 }; 457 }; 458 459 smsm { 460 compatible = "qcom,smsm"; 461 462 #address-cells = <1>; 463 #size-cells = <0>; 464 465 mboxes = <0>, <&apcs1 13>, <0>, <&apcs1 19>; 466 467 apps_smsm: apps@0 { 468 reg = <0>; 469 470 #qcom,smem-state-cells = <1>; 471 }; 472 473 hexagon_smsm: hexagon@1 { 474 reg = <1>; 475 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; 476 477 interrupt-controller; 478 #interrupt-cells = <2>; 479 }; 480 481 wcnss_smsm: wcnss@6 { 482 reg = <6>; 483 interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>; 484 485 interrupt-controller; 486 #interrupt-cells = <2>; 487 }; 488 }; 489 490 soc: soc@0 { 491 compatible = "simple-bus"; 492 ranges = <0 0 0 0xffffffff>; 493 #address-cells = <1>; 494 #size-cells = <1>; 495 496 qfprom: qfprom@a4000 { 497 compatible = "qcom,msm8937-qfprom", "qcom,qfprom"; 498 reg = <0x000a4000 0x3000>; 499 #address-cells = <1>; 500 #size-cells = <1>; 501 502 tsens_base1: base1@1d8 { 503 reg = <0x1d8 0x1>; 504 bits = <0 8>; 505 }; 506 507 tsens_s5_p1: s5-p1@1d9 { 508 reg = <0x1d9 0x1>; 509 bits = <0 6>; 510 }; 511 512 tsens_s5_p2: s5-p2@1d9 { 513 reg = <0x1d9 0x2>; 514 bits = <6 6>; 515 }; 516 517 tsens_s6_p1: s6-p1@1da { 518 reg = <0x1da 0x2>; 519 bits = <4 6>; 520 }; 521 522 tsens_s6_p2: s6-p2@1db { 523 reg = <0x1db 0x1>; 524 bits = <2 6>; 525 }; 526 527 tsens_s7_p1: s7-p1@1dc { 528 reg = <0x1dc 0x1>; 529 bits = <0 6>; 530 }; 531 532 tsens_s7_p2: s7-p2@1dc { 533 reg = <0x1dc 0x2>; 534 bits = <6 6>; 535 }; 536 537 tsens_s8_p1: s8-p1@1dd { 538 reg = <0x1dd 0x2>; 539 bits = <4 6>; 540 }; 541 542 tsens_s8_p2: s8-p2@1de { 543 reg = <0x1de 0x1>; 544 bits = <2 6>; 545 }; 546 547 tsens_base2: base2@1df { 548 reg = <0x1df 0x1>; 549 bits = <0 8>; 550 }; 551 552 tsens_mode: mode@210 { 553 reg = <0x210 0x1>; 554 bits = <0 3>; 555 }; 556 557 tsens_s0_p1: s0-p1@210 { 558 reg = <0x210 0x2>; 559 bits = <3 6>; 560 }; 561 562 tsens_s0_p2: s0-p2@211 { 563 reg = <0x211 0x1>; 564 bits = <1 6>; 565 }; 566 567 tsens_s1_p1: s1-p1@211 { 568 reg = <0x211 0x2>; 569 bits = <7 6>; 570 }; 571 572 tsens_s1_p2: s1-p2@212 { 573 reg = <0x212 0x2>; 574 bits = <5 6>; 575 }; 576 577 tsens_s2_p1: s2-p1@213 { 578 reg = <0x213 0x2>; 579 bits = <3 6>; 580 }; 581 582 tsens_s2_p2: s2-p2@214 { 583 reg = <0x214 0x1>; 584 bits = <1 6>; 585 }; 586 587 tsens_s3_p1: s3-p1@214 { 588 reg = <0x214 0x2>; 589 bits = <7 6>; 590 }; 591 592 tsens_s3_p2: s3-p2@215 { 593 reg = <0x215 0x2>; 594 bits = <5 6>; 595 }; 596 597 tsens_s4_p1: s4-p1@216 { 598 reg = <0x216 0x2>; 599 bits = <3 6>; 600 }; 601 602 tsens_s4_p2: s4-p2@217 { 603 reg = <0x217 0x1>; 604 bits = <1 6>; 605 }; 606 607 tsens_s9_p1: s9-p1@230 { 608 reg = <0x230 0x1>; 609 bits = <0 6>; 610 }; 611 612 tsens_s9_p2: s9-p2@230 { 613 reg = <0x230 0x2>; 614 bits = <6 6>; 615 }; 616 617 tsens_s10_p1: s10-p1@231 { 618 reg = <0x231 0x2>; 619 bits = <4 6>; 620 }; 621 622 tsens_s10_p2: s10-p2@232 { 623 reg = <0x232 0x1>; 624 bits = <2 6>; 625 }; 626 627 gpu_speed_bin: gpu-speed-bin@201b { 628 reg = <0x201b 0x1>; 629 bits = <7 1>; 630 }; 631 }; 632 633 rpm_msg_ram: sram@60000 { 634 compatible = "qcom,rpm-msg-ram"; 635 reg = <0x00060000 0x8000>; 636 }; 637 638 usb_hs_phy: phy@6c000 { 639 compatible = "qcom,usb-hs-28nm-femtophy"; 640 reg = <0x0006c000 0x200>; 641 #phy-cells = <0>; 642 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, 643 <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>, 644 <&gcc GCC_USB2A_PHY_SLEEP_CLK>; 645 clock-names = "ref", 646 "ahb", 647 "sleep"; 648 resets = <&gcc GCC_QUSB2_PHY_BCR>, 649 <&gcc GCC_USB2_HS_PHY_ONLY_BCR>; 650 reset-names = "phy", 651 "por"; 652 status = "disabled"; 653 }; 654 655 rng@e3000 { 656 compatible = "qcom,prng"; 657 reg = <0x000e3000 0x1000>; 658 clocks = <&gcc GCC_PRNG_AHB_CLK>; 659 clock-names = "core"; 660 }; 661 662 tsens: thermal-sensor@4a9000 { 663 compatible = "qcom,msm8937-tsens", "qcom,tsens-v1"; 664 reg = <0x004a9000 0x1000>, 665 <0x004a8000 0x1000>; 666 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 667 interrupt-names = "uplow"; 668 nvmem-cells = <&tsens_mode>, 669 <&tsens_base1>, <&tsens_base2>, 670 <&tsens_s0_p1>, <&tsens_s0_p2>, 671 <&tsens_s1_p1>, <&tsens_s1_p2>, 672 <&tsens_s2_p1>, <&tsens_s2_p2>, 673 <&tsens_s3_p1>, <&tsens_s3_p2>, 674 <&tsens_s4_p1>, <&tsens_s4_p2>, 675 <&tsens_s5_p1>, <&tsens_s5_p2>, 676 <&tsens_s6_p1>, <&tsens_s6_p2>, 677 <&tsens_s7_p1>, <&tsens_s7_p2>, 678 <&tsens_s8_p1>, <&tsens_s8_p2>, 679 <&tsens_s9_p1>, <&tsens_s9_p2>, 680 <&tsens_s10_p1>, <&tsens_s10_p2>; 681 nvmem-cell-names = "mode", 682 "base1", "base2", 683 "s0_p1", "s0_p2", 684 "s1_p1", "s1_p2", 685 "s2_p1", "s2_p2", 686 "s3_p1", "s3_p2", 687 "s4_p1", "s4_p2", 688 "s5_p1", "s5_p2", 689 "s6_p1", "s6_p2", 690 "s7_p1", "s7_p2", 691 "s8_p1", "s8_p2", 692 "s9_p1", "s9_p2", 693 "s10_p1", "s10_p2"; 694 #qcom,sensors = <11>; 695 #thermal-sensor-cells = <1>; 696 }; 697 698 restart@4ab000 { 699 compatible = "qcom,pshold"; 700 reg = <0x004ab000 0x4>; 701 }; 702 703 tlmm: pinctrl@1000000 { 704 compatible = "qcom,msm8917-pinctrl"; 705 reg = <0x01000000 0x300000>; 706 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 707 gpio-controller; 708 gpio-ranges = <&tlmm 0 0 134>; 709 #gpio-cells = <2>; 710 interrupt-controller; 711 #interrupt-cells = <2>; 712 713 blsp1_i2c2_default: blsp1-i2c2-default-state { 714 pins = "gpio6", "gpio7"; 715 function = "blsp_i2c2"; 716 drive-strength = <2>; 717 bias-disable; 718 }; 719 720 blsp1_i2c2_sleep: blsp1-i2c2-sleep-state { 721 pins = "gpio6", "gpio7"; 722 function = "gpio"; 723 drive-strength = <2>; 724 bias-disable; 725 }; 726 727 blsp1_i2c3_default: blsp1-i2c3-default-state { 728 pins = "gpio10", "gpio11"; 729 function = "blsp_i2c3"; 730 drive-strength = <2>; 731 bias-disable; 732 }; 733 734 blsp1_i2c3_sleep: blsp1-i2c3-sleep-state { 735 pins = "gpio10", "gpio11"; 736 function = "gpio"; 737 drive-strength = <2>; 738 bias-disable; 739 }; 740 741 blsp1_i2c4_default: blsp1-i2c4-default-state { 742 pins = "gpio14", "gpio15"; 743 function = "blsp_i2c4"; 744 drive-strength = <2>; 745 bias-disable; 746 }; 747 748 blsp1_i2c4_sleep: blsp1-i2c4-sleep-state { 749 pins = "gpio14", "gpio15"; 750 function = "gpio"; 751 drive-strength = <2>; 752 bias-disable; 753 }; 754 755 blsp2_i2c1_default: blsp2-i2c1-default-state { 756 pins = "gpio18", "gpio19"; 757 function = "blsp_i2c5"; 758 drive-strength = <2>; 759 bias-disable; 760 }; 761 762 blsp2_i2c1_sleep: blsp2-i2c1-sleep-state { 763 pins = "gpio18", "gpio19"; 764 function = "gpio"; 765 drive-strength = <2>; 766 bias-disable; 767 }; 768 769 blsp1_spi3_default: blsp1-spi3-default-state { 770 cs-pins { 771 pins = "gpio10"; 772 function = "blsp_spi3"; 773 drive-strength = <2>; 774 bias-disable; 775 }; 776 777 spi-pins { 778 pins = "gpio8", "gpio9", "gpio11"; 779 function = "blsp_spi3"; 780 drive-strength = <12>; 781 bias-disable; 782 }; 783 }; 784 785 blsp1_spi3_sleep: blsp1-spi3-sleep-state { 786 cs-pins { 787 pins = "gpio10"; 788 function = "gpio"; 789 drive-strength = <2>; 790 bias-disable; 791 }; 792 793 spi-pins { 794 pins = "gpio8", "gpio9", "gpio11"; 795 function = "gpio"; 796 drive-strength = <2>; 797 bias-pull-down; 798 }; 799 }; 800 801 blsp2_spi2_default: blsp2-spi2-default-state { 802 cs0-pins { 803 pins = "gpio47"; 804 function = "blsp_spi6"; 805 drive-strength = <16>; 806 bias-disable; 807 }; 808 809 cs1-pins { 810 pins = "gpio22"; 811 function = "blsp_spi6"; 812 drive-strength = <16>; 813 bias-disable; 814 }; 815 816 spi-pins { 817 pins = "gpio20", "gpio21", "gpio23"; 818 function = "blsp_spi6"; 819 drive-strength = <16>; 820 bias-disable; 821 }; 822 }; 823 824 blsp2_spi2_sleep: blsp2-spi2-sleep-state { 825 cs0-pins { 826 pins = "gpio47"; 827 function = "gpio"; 828 drive-strength = <2>; 829 bias-disable; 830 }; 831 832 cs1-pins { 833 pins = "gpio22"; 834 function = "gpio"; 835 drive-strength = <2>; 836 bias-disable; 837 }; 838 839 spi-pins { 840 pins = "gpio20", "gpio21", "gpio23"; 841 function = "gpio"; 842 drive-strength = <2>; 843 bias-pull-down; 844 }; 845 }; 846 847 blsp1_uart1_default: blsp1-uart1-default-state { 848 pins = "gpio0", "gpio1", "gpio2", "gpio3"; 849 function = "blsp_uart1"; 850 drive-strength = <2>; 851 bias-disable; 852 }; 853 854 blsp1_uart1_sleep: blsp1-uart1-sleep-state { 855 pins = "gpio0", "gpio1", "gpio2", "gpio3"; 856 function = "gpio"; 857 drive-strength = <2>; 858 bias-disable; 859 }; 860 861 blsp1_uart2_default: blsp1-uart2-default-state { 862 pins = "gpio4", "gpio5"; 863 function = "blsp_uart2"; 864 drive-strength = <2>; 865 bias-disable; 866 }; 867 868 blsp1_uart2_sleep: blsp1-uart2-sleep-state { 869 pins = "gpio4", "gpio5"; 870 function = "gpio"; 871 drive-strength = <2>; 872 bias-pull-down; 873 }; 874 875 sdc1_default: sdc1-default-state { 876 clk-pins { 877 pins = "sdc1_clk"; 878 drive-strength = <16>; 879 bias-disable; 880 }; 881 882 cmd-pins { 883 pins = "sdc1_cmd"; 884 drive-strength = <10>; 885 bias-pull-up; 886 }; 887 888 data-pins { 889 pins = "sdc1_data"; 890 drive-strength = <10>; 891 bias-pull-up; 892 }; 893 894 rclk-pins { 895 pins = "sdc1_rclk"; 896 bias-pull-down; 897 }; 898 }; 899 900 sdc1_sleep: sdc1-sleep-state { 901 clk-pins { 902 pins = "sdc1_clk"; 903 drive-strength = <2>; 904 bias-disable; 905 }; 906 907 cmd-pins { 908 pins = "sdc1_cmd"; 909 drive-strength = <2>; 910 bias-pull-up; 911 }; 912 913 data-pins { 914 pins = "sdc1_data"; 915 drive-strength = <2>; 916 bias-pull-up; 917 }; 918 919 rclk-pins { 920 pins = "sdc1_rclk"; 921 bias-pull-down; 922 }; 923 }; 924 925 sdc2_default: sdc2-default-state { 926 clk-pins { 927 pins = "sdc2_clk"; 928 drive-strength = <16>; 929 bias-disable; 930 }; 931 932 sdc2_cmd_default: cmd-pins { 933 pins = "sdc2_cmd"; 934 drive-strength = <16>; 935 bias-pull-up; 936 }; 937 938 sdc2_data_default: data-pins { 939 pins = "sdc2_data"; 940 drive-strength = <16>; 941 bias-pull-up; 942 }; 943 }; 944 945 sdc2_sleep: sdc2-sleep-state { 946 clk-pins { 947 pins = "sdc2_clk"; 948 drive-strength = <2>; 949 bias-disable; 950 }; 951 952 cmd-pins { 953 pins = "sdc2_cmd"; 954 drive-strength = <2>; 955 bias-pull-up; 956 }; 957 958 data-pins { 959 pins = "sdc2_data"; 960 drive-strength = <2>; 961 bias-pull-up; 962 }; 963 }; 964 965 wcnss_pin_a: wcnss-active-state { 966 wcss-wlan-pins { 967 pins = "gpio79", "gpio80"; 968 function = "wcss_wlan"; 969 drive-strength = <6>; 970 bias-pull-up; 971 972 }; 973 974 wcss-wlan0-pins { 975 pins = "gpio78"; 976 function = "wcss_wlan0"; 977 drive-strength = <6>; 978 bias-pull-up; 979 980 }; 981 982 wcss-wlan1-pins { 983 pins = "gpio77"; 984 function = "wcss_wlan1"; 985 drive-strength = <6>; 986 bias-pull-up; 987 988 }; 989 990 wcss-wlan2-pins { 991 pins = "gpio76"; 992 function = "wcss_wlan2"; 993 drive-strength = <6>; 994 bias-pull-up; 995 996 }; 997 }; 998 }; 999 1000 gcc: clock-controller@1800000 { 1001 compatible = "qcom,gcc-msm8937"; 1002 reg = <0x01800000 0x80000>; 1003 #clock-cells = <1>; 1004 #reset-cells = <1>; 1005 #power-domain-cells = <1>; 1006 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, 1007 <&sleep_clk>, 1008 <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>, 1009 <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>, 1010 <&mdss_dsi1_phy DSI_PIXEL_PLL_CLK>, 1011 <&mdss_dsi1_phy DSI_BYTE_PLL_CLK>; 1012 clock-names = "xo", 1013 "sleep", 1014 "dsi0pll", 1015 "dsi0pllbyte", 1016 "dsi1pll", 1017 "dsi1pllbyte"; 1018 }; 1019 1020 tcsr_mutex: hwlock@1905000 { 1021 compatible = "qcom,tcsr-mutex"; 1022 reg = <0x01905000 0x20000>; 1023 #hwlock-cells = <1>; 1024 }; 1025 1026 tcsr: syscon@1937000 { 1027 compatible = "qcom,tcsr-msm8937", "syscon"; 1028 reg = <0x01937000 0x30000>; 1029 }; 1030 1031 mdss: display-subsystem@1a00000 { 1032 compatible = "qcom,mdss"; 1033 reg = <0x01a00000 0x1000>, 1034 <0x01ab0000 0x3000>; 1035 reg-names = "mdss_phys", 1036 "vbif_phys"; 1037 ranges; 1038 1039 power-domains = <&gcc MDSS_GDSC>; 1040 1041 clocks = <&gcc GCC_MDSS_AHB_CLK>, 1042 <&gcc GCC_MDSS_AXI_CLK>, 1043 <&gcc GCC_MDSS_VSYNC_CLK>; 1044 clock-names = "iface", 1045 "bus", 1046 "vsync"; 1047 resets = <&gcc GCC_MDSS_BCR>; 1048 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 1049 1050 interrupt-controller; 1051 #interrupt-cells = <1>; 1052 1053 #address-cells = <1>; 1054 #size-cells = <1>; 1055 1056 status = "disabled"; 1057 1058 mdp: display-controller@1a01000 { 1059 compatible = "qcom,msm8937-mdp5", "qcom,mdp5"; 1060 reg = <0x01a01000 0x89000>; 1061 reg-names = "mdp_phys"; 1062 1063 interrupt-parent = <&mdss>; 1064 interrupts = <0>; 1065 1066 clocks = <&gcc GCC_MDSS_AHB_CLK>, 1067 <&gcc GCC_MDSS_AXI_CLK>, 1068 <&gcc GCC_MDSS_MDP_CLK>, 1069 <&gcc GCC_MDSS_VSYNC_CLK>; 1070 clock-names = "iface", 1071 "bus", 1072 "core", 1073 "vsync"; 1074 1075 iommus = <&apps_iommu 0x15>; 1076 1077 ports { 1078 #address-cells = <1>; 1079 #size-cells = <0>; 1080 1081 port@0 { 1082 reg = <0>; 1083 mdp5_intf1_out: endpoint { 1084 remote-endpoint = <&mdss_dsi0_in>; 1085 }; 1086 }; 1087 1088 port@1 { 1089 reg = <1>; 1090 mdp5_intf2_out: endpoint { 1091 remote-endpoint = <&mdss_dsi1_in>; 1092 }; 1093 }; 1094 }; 1095 }; 1096 1097 mdss_dsi0: dsi@1a94000 { 1098 compatible = "qcom,mdss-dsi-ctrl"; 1099 reg = <0x01a94000 0x300>; 1100 reg-names = "dsi_ctrl"; 1101 1102 interrupt-parent = <&mdss>; 1103 interrupts = <4>; 1104 1105 assigned-clocks = <&gcc BYTE0_CLK_SRC>, 1106 <&gcc PCLK0_CLK_SRC>; 1107 assigned-clock-parents = <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>, 1108 <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>; 1109 1110 clocks = <&gcc GCC_MDSS_MDP_CLK>, 1111 <&gcc GCC_MDSS_AHB_CLK>, 1112 <&gcc GCC_MDSS_AXI_CLK>, 1113 <&gcc GCC_MDSS_BYTE0_CLK>, 1114 <&gcc GCC_MDSS_PCLK0_CLK>, 1115 <&gcc GCC_MDSS_ESC0_CLK>; 1116 clock-names = "mdp_core", 1117 "iface", 1118 "bus", 1119 "byte", 1120 "pixel", 1121 "core"; 1122 phys = <&mdss_dsi0_phy>; 1123 1124 operating-points-v2 = <&mdss_dsi0_opp_table>; 1125 power-domains = <&rpmpd RPMPD_VDDCX>; 1126 1127 #address-cells = <1>; 1128 #size-cells = <0>; 1129 1130 status = "disabled"; 1131 1132 ports { 1133 #address-cells = <1>; 1134 #size-cells = <0>; 1135 1136 port@0 { 1137 reg = <0>; 1138 mdss_dsi0_in: endpoint { 1139 remote-endpoint = <&mdp5_intf1_out>; 1140 }; 1141 }; 1142 1143 port@1 { 1144 reg = <1>; 1145 mdss_dsi0_out: endpoint { 1146 }; 1147 }; 1148 }; 1149 1150 mdss_dsi0_opp_table: opp-table { 1151 compatible = "operating-points-v2"; 1152 1153 opp-125000000 { 1154 opp-hz = /bits/ 64 <125000000>; 1155 required-opps = <&rpmpd_opp_svs>; 1156 }; 1157 1158 opp-187500000 { 1159 opp-hz = /bits/ 64 <187500000>; 1160 required-opps = <&rpmpd_opp_nom>; 1161 }; 1162 }; 1163 }; 1164 1165 mdss_dsi0_phy: phy@1a94400 { 1166 compatible = "qcom,dsi-phy-28nm-8937"; 1167 reg = <0x01a94a00 0xd4>, 1168 <0x01a94400 0x280>, 1169 <0x01a94b80 0x30>; 1170 reg-names = "dsi_pll", 1171 "dsi_phy", 1172 "dsi_phy_regulator"; 1173 1174 #clock-cells = <1>; 1175 #phy-cells = <0>; 1176 1177 clocks = <&gcc GCC_MDSS_AHB_CLK>, 1178 <&rpmcc RPM_SMD_XO_CLK_SRC>; 1179 clock-names = "iface", 1180 "ref"; 1181 1182 status = "disabled"; 1183 }; 1184 1185 mdss_dsi1: dsi@1a96000 { 1186 compatible = "qcom,mdss-dsi-ctrl"; 1187 reg = <0x01a96000 0x300>; 1188 reg-names = "dsi_ctrl"; 1189 1190 interrupt-parent = <&mdss>; 1191 interrupts = <4>; 1192 1193 assigned-clocks = <&gcc MSM8937_BYTE1_CLK_SRC>, 1194 <&gcc MSM8937_PCLK1_CLK_SRC>; 1195 assigned-clock-parents = <&mdss_dsi1_phy DSI_BYTE_PLL_CLK>, 1196 <&mdss_dsi1_phy DSI_PIXEL_PLL_CLK>; 1197 1198 clocks = <&gcc GCC_MDSS_MDP_CLK>, 1199 <&gcc GCC_MDSS_AHB_CLK>, 1200 <&gcc GCC_MDSS_AXI_CLK>, 1201 <&gcc MSM8937_GCC_MDSS_BYTE1_CLK>, 1202 <&gcc MSM8937_GCC_MDSS_PCLK1_CLK>, 1203 <&gcc MSM8937_GCC_MDSS_ESC1_CLK>; 1204 clock-names = "mdp_core", 1205 "iface", 1206 "bus", 1207 "byte", 1208 "pixel", 1209 "core"; 1210 phys = <&mdss_dsi1_phy>; 1211 1212 operating-points-v2 = <&mdss_dsi1_opp_table>; 1213 power-domains = <&rpmpd RPMPD_VDDCX>; 1214 1215 #address-cells = <1>; 1216 #size-cells = <0>; 1217 1218 status = "disabled"; 1219 1220 ports { 1221 #address-cells = <1>; 1222 #size-cells = <0>; 1223 1224 port@0 { 1225 reg = <0>; 1226 mdss_dsi1_in: endpoint { 1227 remote-endpoint = <&mdp5_intf2_out>; 1228 }; 1229 }; 1230 1231 port@1 { 1232 reg = <1>; 1233 mdss_dsi1_out: endpoint { 1234 }; 1235 }; 1236 }; 1237 1238 mdss_dsi1_opp_table: opp-table { 1239 compatible = "operating-points-v2"; 1240 1241 opp-125000000 { 1242 opp-hz = /bits/ 64 <125000000>; 1243 required-opps = <&rpmpd_opp_svs>; 1244 }; 1245 1246 opp-187500000 { 1247 opp-hz = /bits/ 64 <187500000>; 1248 required-opps = <&rpmpd_opp_nom>; 1249 }; 1250 }; 1251 }; 1252 1253 mdss_dsi1_phy: phy@1a96a00 { 1254 compatible = "qcom,dsi-phy-28nm-8937"; 1255 reg = <0x01a96a00 0xd4>, 1256 <0x01a96400 0x280>, 1257 <0x01a94b80 0x30>; 1258 reg-names = "dsi_pll", 1259 "dsi_phy", 1260 "dsi_phy_regulator"; 1261 1262 #clock-cells = <1>; 1263 #phy-cells = <0>; 1264 1265 clocks = <&gcc GCC_MDSS_AHB_CLK>, 1266 <&rpmcc RPM_SMD_XO_CLK_SRC>; 1267 clock-names = "iface", 1268 "ref"; 1269 1270 status = "disabled"; 1271 }; 1272 }; 1273 1274 gpu: gpu@1c00000 { 1275 compatible = "qcom,adreno-505.0", "qcom,adreno"; 1276 reg = <0x01c00000 0x40000>; 1277 reg-names = "kgsl_3d0_reg_memory"; 1278 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 1279 interrupt-names = "kgsl_3d0_irq"; 1280 #cooling-cells = <2>; 1281 clocks = <&gcc GCC_OXILI_GFX3D_CLK>, 1282 <&gcc GCC_OXILI_AHB_CLK>, 1283 <&gcc GCC_BIMC_GFX_CLK>, 1284 <&gcc GCC_BIMC_GPU_CLK>, 1285 <&gcc MSM8937_GCC_OXILI_TIMER_CLK>, 1286 <&gcc MSM8937_GCC_OXILI_AON_CLK>; 1287 clock-names = "core", 1288 "iface", 1289 "mem_iface", 1290 "alt_mem_iface", 1291 "rbbmtimer", 1292 "alwayson"; 1293 operating-points-v2 = <&gpu_opp_table>; 1294 power-domains = <&gcc OXILI_GX_GDSC>; 1295 1296 iommus = <&adreno_smmu 0>; 1297 1298 nvmem-cells = <&gpu_speed_bin>; 1299 nvmem-cell-names = "speed_bin"; 1300 1301 status = "disabled"; 1302 1303 gpu_opp_table: opp-table { 1304 compatible = "operating-points-v2"; 1305 1306 opp-19200000 { 1307 opp-hz = /bits/ 64 <19200000>; 1308 opp-supported-hw = <0xff>; 1309 required-opps = <&rpmpd_opp_min_svs>; 1310 }; 1311 1312 opp-216000000 { 1313 opp-hz = /bits/ 64 <216000000>; 1314 opp-supported-hw = <0xff>; 1315 required-opps = <&rpmpd_opp_svs>; 1316 }; 1317 1318 opp-300000000 { 1319 opp-hz = /bits/ 64 <300000000>; 1320 opp-supported-hw = <0xff>; 1321 required-opps = <&rpmpd_opp_svs_plus>; 1322 }; 1323 1324 opp-375000000 { 1325 opp-hz = /bits/ 64 <375000000>; 1326 opp-supported-hw = <0xff>; 1327 required-opps = <&rpmpd_opp_nom>; 1328 }; 1329 1330 opp-400000000 { 1331 opp-hz = /bits/ 64 <400000000>; 1332 opp-supported-hw = <0xff>; 1333 required-opps = <&rpmpd_opp_nom_plus>; 1334 }; 1335 1336 opp-450000000 { 1337 opp-hz = /bits/ 64 <450000000>; 1338 opp-supported-hw = <0xff>; 1339 required-opps = <&rpmpd_opp_turbo>; 1340 }; 1341 }; 1342 }; 1343 1344 adreno_smmu: iommu@1c40000 { 1345 compatible = "qcom,msm8996-smmu-v2", 1346 "qcom,adreno-smmu", 1347 "qcom,smmu-v2"; 1348 reg = <0x01c40000 0x10000>; 1349 1350 #global-interrupts = <1>; 1351 interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>, 1352 <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>, 1353 <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>, 1354 <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>, 1355 <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>; 1356 #iommu-cells = <1>; 1357 1358 clocks = <&gcc GCC_BIMC_GFX_CLK>, 1359 <&gcc GCC_OXILI_AHB_CLK>; 1360 clock-names = "bus", 1361 "iface"; 1362 1363 power-domains = <&gcc MSM8937_OXILI_CX_GDSC>; 1364 }; 1365 1366 apps_iommu: iommu@1e20000 { 1367 compatible = "qcom,msm8937-iommu", "qcom,msm-iommu-v1"; 1368 ranges = <0 0x01e20000 0x20000>; 1369 1370 clocks = <&gcc GCC_SMMU_CFG_CLK>, 1371 <&gcc GCC_APSS_TCU_CLK>; 1372 clock-names = "iface", 1373 "bus"; 1374 1375 qcom,iommu-secure-id = <17>; 1376 1377 #address-cells = <1>; 1378 #iommu-cells = <1>; 1379 #size-cells = <1>; 1380 1381 /* VFE */ 1382 iommu-ctx@14000 { 1383 compatible = "qcom,msm-iommu-v1-ns"; 1384 reg = <0x14000 0x1000>; 1385 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 1386 }; 1387 1388 /* MDP_0 */ 1389 iommu-ctx@15000 { 1390 compatible = "qcom,msm-iommu-v1-ns"; 1391 reg = <0x15000 0x1000>; 1392 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; 1393 }; 1394 1395 /* VENUS_NS */ 1396 iommu-ctx@16000 { 1397 compatible = "qcom,msm-iommu-v1-ns"; 1398 reg = <0x16000 0x1000>; 1399 interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; 1400 }; 1401 }; 1402 1403 spmi_bus: spmi@200f000 { 1404 compatible = "qcom,spmi-pmic-arb"; 1405 reg = <0x0200f000 0x001000>, 1406 <0x02400000 0x800000>, 1407 <0x02c00000 0x800000>, 1408 <0x03800000 0x200000>, 1409 <0x0200a000 0x002100>; 1410 reg-names = "core", 1411 "chnls", 1412 "obsrvr", 1413 "intr", 1414 "cnfg"; 1415 interrupt-names = "periph_irq"; 1416 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 1417 qcom,ee = <0>; 1418 qcom,channel = <0>; 1419 #address-cells = <2>; 1420 #size-cells = <0>; 1421 interrupt-controller; 1422 #interrupt-cells = <4>; 1423 }; 1424 1425 bam_dmux_dma: dma-controller@4044000 { 1426 compatible = "qcom,bam-v1.7.0"; 1427 reg = <0x04044000 0x19000>; 1428 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 1429 #dma-cells = <1>; 1430 qcom,ee = <0>; 1431 1432 num-channels = <6>; 1433 qcom,num-ees = <1>; 1434 qcom,powered-remotely; 1435 1436 status = "disabled"; 1437 }; 1438 1439 sdhc_1: mmc@7824900 { 1440 compatible = "qcom,sdhci-msm-v4"; 1441 reg = <0x07824900 0x500>, 1442 <0x07824000 0x800>; 1443 reg-names = "hc", 1444 "core"; 1445 1446 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 1447 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; 1448 interrupt-names = "hc_irq", 1449 "pwr_irq"; 1450 clocks = <&gcc GCC_SDCC1_AHB_CLK>, 1451 <&gcc GCC_SDCC1_APPS_CLK>, 1452 <&rpmcc RPM_SMD_XO_CLK_SRC>; 1453 clock-names = "iface", 1454 "core", 1455 "xo"; 1456 pinctrl-0 = <&sdc1_default>; 1457 pinctrl-1 = <&sdc1_sleep>; 1458 pinctrl-names = "default", 1459 "sleep"; 1460 power-domains = <&rpmpd RPMPD_VDDCX>; 1461 mmc-hs200-1_8v; 1462 mmc-hs400-1_8v; 1463 mmc-ddr-1_8v; 1464 bus-width = <8>; 1465 non-removable; 1466 status = "disabled"; 1467 }; 1468 1469 sdhc_2: mmc@7864900 { 1470 compatible = "qcom,sdhci-msm-v4"; 1471 reg = <0x07864900 0x500>, 1472 <0x07864000 0x800>; 1473 reg-names = "hc", 1474 "core"; 1475 1476 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 1477 <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; 1478 interrupt-names = "hc_irq", 1479 "pwr_irq"; 1480 clocks = <&gcc GCC_SDCC2_AHB_CLK>, 1481 <&gcc GCC_SDCC2_APPS_CLK>, 1482 <&rpmcc RPM_SMD_XO_CLK_SRC>; 1483 clock-names = "iface", 1484 "core", 1485 "xo"; 1486 pinctrl-0 = <&sdc2_default>; 1487 pinctrl-1 = <&sdc2_sleep>; 1488 pinctrl-names = "default", 1489 "sleep"; 1490 power-domains = <&rpmpd RPMPD_VDDCX>; 1491 bus-width = <4>; 1492 status = "disabled"; 1493 }; 1494 1495 blsp1_dma: dma-controller@7884000 { 1496 compatible = "qcom,bam-v1.7.0"; 1497 reg = <0x07884000 0x1f000>; 1498 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; 1499 clocks = <&gcc GCC_BLSP1_AHB_CLK>; 1500 clock-names = "bam_clk"; 1501 qcom,controlled-remotely; 1502 #dma-cells = <1>; 1503 num-channels = <12>; 1504 qcom,num-ees = <4>; 1505 qcom,ee = <0>; 1506 }; 1507 1508 blsp1_uart2: serial@78b0000 { 1509 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 1510 reg = <0x078b0000 0x200>; 1511 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1512 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, 1513 <&gcc GCC_BLSP1_AHB_CLK>; 1514 clock-names = "core", 1515 "iface"; 1516 dmas = <&blsp1_dma 2>, 1517 <&blsp1_dma 3>; 1518 dma-names = "tx", 1519 "rx"; 1520 pinctrl-0 = <&blsp1_uart2_default>; 1521 pinctrl-1 = <&blsp1_uart2_sleep>; 1522 pinctrl-names = "default", 1523 "sleep"; 1524 status = "disabled"; 1525 }; 1526 1527 blsp1_i2c2: i2c@78b6000 { 1528 compatible = "qcom,i2c-qup-v2.2.1"; 1529 reg = <0x078b6000 0x600>; 1530 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 1531 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, 1532 <&gcc GCC_BLSP1_AHB_CLK>; 1533 clock-names = "core", "iface"; 1534 dmas = <&blsp1_dma 6>, 1535 <&blsp1_dma 7>; 1536 dma-names = "tx", 1537 "rx"; 1538 pinctrl-0 = <&blsp1_i2c2_default>; 1539 pinctrl-1 = <&blsp1_i2c2_sleep>; 1540 pinctrl-names = "default", 1541 "sleep"; 1542 #address-cells = <1>; 1543 #size-cells = <0>; 1544 status = "disabled"; 1545 }; 1546 1547 blsp1_i2c3: i2c@78b7000 { 1548 compatible = "qcom,i2c-qup-v2.2.1"; 1549 reg = <0x078b7000 0x600>; 1550 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 1551 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, 1552 <&gcc GCC_BLSP1_AHB_CLK>; 1553 clock-names = "core", 1554 "iface"; 1555 dmas = <&blsp1_dma 8>, 1556 <&blsp1_dma 9>; 1557 dma-names = "tx", 1558 "rx"; 1559 pinctrl-0 = <&blsp1_i2c3_default>; 1560 pinctrl-1 = <&blsp1_i2c3_sleep>; 1561 pinctrl-names = "default", 1562 "sleep"; 1563 #address-cells = <1>; 1564 #size-cells = <0>; 1565 status = "disabled"; 1566 }; 1567 1568 blsp1_spi3: spi@78b7000 { 1569 compatible = "qcom,spi-qup-v2.2.1"; 1570 reg = <0x078b7000 0x600>; 1571 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 1572 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>, 1573 <&gcc GCC_BLSP1_AHB_CLK>; 1574 clock-names = "core", 1575 "iface"; 1576 dmas = <&blsp1_dma 8>, 1577 <&blsp1_dma 9>; 1578 dma-names = "tx", 1579 "rx"; 1580 pinctrl-0 = <&blsp1_spi3_default>; 1581 pinctrl-1 = <&blsp1_spi3_sleep>; 1582 pinctrl-names = "default", 1583 "sleep"; 1584 #address-cells = <1>; 1585 #size-cells = <0>; 1586 status = "disabled"; 1587 }; 1588 1589 blsp1_i2c4: i2c@78b8000 { 1590 compatible = "qcom,i2c-qup-v2.2.1"; 1591 reg = <0x078b8000 0x500>; 1592 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 1593 clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>, 1594 <&gcc GCC_BLSP1_AHB_CLK>; 1595 clock-names = "core", 1596 "iface"; 1597 dmas = <&blsp1_dma 10>, 1598 <&blsp1_dma 11>; 1599 dma-names = "tx", 1600 "rx"; 1601 pinctrl-0 = <&blsp1_i2c4_default>; 1602 pinctrl-1 = <&blsp1_i2c4_sleep>; 1603 pinctrl-names = "default", 1604 "sleep"; 1605 #address-cells = <1>; 1606 #size-cells = <0>; 1607 status = "disabled"; 1608 }; 1609 1610 blsp2_dma: dma-controller@7ac4000 { 1611 compatible = "qcom,bam-v1.7.0"; 1612 reg = <0x07ac4000 0x1d000>; 1613 interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>; 1614 clocks = <&gcc GCC_BLSP2_AHB_CLK>; 1615 clock-names = "bam_clk"; 1616 qcom,controlled-remotely; 1617 #dma-cells = <1>; 1618 num-channels = <10>; 1619 qcom,num-ees = <4>; 1620 qcom,ee = <0>; 1621 }; 1622 1623 blsp2_i2c1: i2c@7af5000 { 1624 compatible = "qcom,i2c-qup-v2.2.1"; 1625 reg = <0x07af5000 0x600>; 1626 interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>; 1627 clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>, 1628 <&gcc GCC_BLSP2_AHB_CLK>; 1629 clock-names = "core", 1630 "iface"; 1631 dmas = <&blsp2_dma 4>, 1632 <&blsp2_dma 5>; 1633 dma-names = "tx", 1634 "rx"; 1635 pinctrl-0 = <&blsp2_i2c1_default>; 1636 pinctrl-1 = <&blsp2_i2c1_sleep>; 1637 pinctrl-names = "default", 1638 "sleep"; 1639 #address-cells = <1>; 1640 #size-cells = <0>; 1641 status = "disabled"; 1642 }; 1643 1644 blsp2_spi2: spi@7af6000 { 1645 compatible = "qcom,spi-qup-v2.2.1"; 1646 reg = <0x07af6000 0x600>; 1647 interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>; 1648 clocks = <&gcc GCC_BLSP2_QUP2_SPI_APPS_CLK>, 1649 <&gcc GCC_BLSP2_AHB_CLK>; 1650 clock-names = "core", 1651 "iface"; 1652 dmas = <&blsp2_dma 6>, 1653 <&blsp2_dma 7>; 1654 dma-names = "tx", 1655 "rx"; 1656 pinctrl-0 = <&blsp2_spi2_default>; 1657 pinctrl-1 = <&blsp2_spi2_sleep>; 1658 pinctrl-names = "default", 1659 "sleep"; 1660 #address-cells = <1>; 1661 #size-cells = <0>; 1662 status = "disabled"; 1663 }; 1664 1665 usb: usb@78db000 { 1666 compatible = "qcom,ci-hdrc"; 1667 reg = <0x078db000 0x200>, 1668 <0x078db200 0x200>; 1669 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 1670 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 1671 clocks = <&gcc GCC_USB_HS_AHB_CLK>, 1672 <&gcc GCC_USB_HS_SYSTEM_CLK>; 1673 clock-names = "iface", 1674 "core"; 1675 assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>; 1676 assigned-clock-rates = <80000000>; 1677 resets = <&gcc GCC_USB_HS_BCR>; 1678 reset-names = "core"; 1679 phy_type = "ulpi"; 1680 dr_mode = "otg"; 1681 hnp-disable; 1682 srp-disable; 1683 adp-disable; 1684 ahb-burst-config = <0>; 1685 phy-names = "usb-phy"; 1686 phys = <&usb_hs_phy>; 1687 status = "disabled"; 1688 #reset-cells = <1>; 1689 }; 1690 1691 wcnss: remoteproc@a204000 { 1692 compatible = "qcom,pronto-v3-pil", "qcom,pronto"; 1693 reg = <0x0a204000 0x2000>, 1694 <0x0a202000 0x1000>, 1695 <0x0a21b000 0x3000>; 1696 reg-names = "ccu", 1697 "dxe", 1698 "pmu"; 1699 1700 memory-region = <&wcnss_mem>; 1701 1702 interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>, 1703 <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 1704 <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 1705 <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 1706 <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 1707 interrupt-names = "wdog", 1708 "fatal", 1709 "ready", 1710 "handover", 1711 "stop-ack"; 1712 1713 power-domains = <&rpmpd RPMPD_VDDCX>, 1714 <&rpmpd RPMPD_VDDMX>; 1715 power-domain-names = "cx", 1716 "mx"; 1717 1718 qcom,smem-states = <&wcnss_smp2p_out 0>; 1719 qcom,smem-state-names = "stop"; 1720 1721 pinctrl-0 = <&wcnss_pin_a>; 1722 pinctrl-names = "default"; 1723 1724 status = "disabled"; 1725 1726 wcnss_iris: iris { 1727 clocks = <&rpmcc RPM_SMD_RF_CLK2>; 1728 clock-names = "xo"; 1729 }; 1730 1731 smd-edge { 1732 interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>; 1733 1734 mboxes = <&apcs1 17>; 1735 qcom,smd-edge = <6>; 1736 qcom,remote-pid = <4>; 1737 1738 label = "pronto"; 1739 1740 wcnss_ctrl: wcnss { 1741 compatible = "qcom,wcnss"; 1742 qcom,smd-channels = "WCNSS_CTRL"; 1743 1744 qcom,mmio = <&wcnss>; 1745 1746 wcnss_bt: bluetooth { 1747 compatible = "qcom,wcnss-bt"; 1748 }; 1749 1750 wcnss_wifi: wifi { 1751 compatible = "qcom,wcnss-wlan"; 1752 1753 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 1754 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; 1755 interrupt-names = "tx", 1756 "rx"; 1757 1758 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>; 1759 qcom,smem-state-names = "tx-enable", 1760 "tx-rings-empty"; 1761 }; 1762 }; 1763 }; 1764 }; 1765 1766 intc: interrupt-controller@b000000 { 1767 compatible = "qcom,msm-qgic2"; 1768 interrupt-controller; 1769 #interrupt-cells = <3>; 1770 reg = <0x0b000000 0x1000>, 1771 <0x0b002000 0x1000>; 1772 }; 1773 1774 apcs1: mailbox@b011000 { 1775 compatible = "qcom,msm8939-apcs-kpss-global", "syscon"; 1776 reg = <0x0b011000 0x1000>; 1777 #mbox-cells = <1>; 1778 }; 1779 1780 watchdog@b017000 { 1781 compatible = "qcom,apss-wdt-qcs404", "qcom,kpss-wdt"; 1782 reg = <0x0b017000 0x1000>; 1783 clocks = <&sleep_clk>; 1784 }; 1785 1786 timer@b120000 { 1787 compatible = "arm,armv7-timer-mem"; 1788 reg = <0x0b120000 0x1000>; 1789 ranges; 1790 #address-cells = <1>; 1791 #size-cells = <1>; 1792 1793 frame@b121000 { 1794 reg = <0x0b121000 0x1000>, 1795 <0x0b122000 0x1000>; 1796 frame-number = <0>; 1797 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 1798 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 1799 }; 1800 1801 frame@b123000 { 1802 reg = <0x0b123000 0x1000>; 1803 frame-number = <1>; 1804 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 1805 status = "disabled"; 1806 }; 1807 1808 frame@b124000 { 1809 reg = <0x0b124000 0x1000>; 1810 frame-number = <2>; 1811 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 1812 status = "disabled"; 1813 }; 1814 1815 frame@b125000 { 1816 reg = <0x0b125000 0x1000>; 1817 frame-number = <3>; 1818 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 1819 status = "disabled"; 1820 }; 1821 1822 frame@b126000 { 1823 reg = <0x0b126000 0x1000>; 1824 frame-number = <4>; 1825 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 1826 status = "disabled"; 1827 }; 1828 1829 frame@b127000 { 1830 reg = <0x0b127000 0x1000>; 1831 frame-number = <5>; 1832 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 1833 status = "disabled"; 1834 }; 1835 1836 frame@b128000 { 1837 reg = <0x0b128000 0x1000>; 1838 frame-number = <6>; 1839 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 1840 status = "disabled"; 1841 }; 1842 }; 1843 }; 1844 1845 thermal_zones: thermal-zones { 1846 aoss-thermal { 1847 thermal-sensors = <&tsens 0>; 1848 1849 trips { 1850 aoss_alert0: trip-point0 { 1851 temperature = <85000>; 1852 hysteresis = <2000>; 1853 type = "critical"; 1854 }; 1855 }; 1856 }; 1857 1858 mdm-core-thermal { 1859 thermal-sensors = <&tsens 1>; 1860 1861 trips { 1862 mdm_core_alert0: trip-point0 { 1863 temperature = <85000>; 1864 hysteresis = <2000>; 1865 type = "critical"; 1866 }; 1867 }; 1868 }; 1869 1870 q6-thermal { 1871 thermal-sensors = <&tsens 2>; 1872 1873 trips { 1874 q6_alert0: trip-point0 { 1875 temperature = <85000>; 1876 hysteresis = <2000>; 1877 type = "critical"; 1878 }; 1879 }; 1880 }; 1881 1882 camera-thermal { 1883 thermal-sensors = <&tsens 3>; 1884 1885 trips { 1886 camera_alert0: trip-point0 { 1887 temperature = <85000>; 1888 hysteresis = <2000>; 1889 type = "critical"; 1890 }; 1891 }; 1892 }; 1893 1894 cpuss1-thermal { 1895 thermal-sensors = <&tsens 4>; 1896 1897 cooling-maps { 1898 map0 { 1899 trip = <&cpuss1_alert0>; 1900 cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1901 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1902 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1903 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 1904 }; 1905 }; 1906 1907 trips { 1908 cpuss1_alert0: trip-point0 { 1909 temperature = <75000>; 1910 hysteresis = <2000>; 1911 type = "passive"; 1912 }; 1913 1914 cpuss1_alert1: trip-point1 { 1915 temperature = <85000>; 1916 hysteresis = <2000>; 1917 type = "hot"; 1918 }; 1919 1920 cpuss1_crit: cpuss1-crit { 1921 temperature = <100000>; 1922 hysteresis = <2000>; 1923 type = "critical"; 1924 }; 1925 }; 1926 }; 1927 1928 cpu4-thermal { 1929 thermal-sensors = <&tsens 5>; 1930 1931 cooling-maps { 1932 map0 { 1933 trip = <&cpu4_alert1>; 1934 cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1935 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1936 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1937 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 1938 }; 1939 }; 1940 1941 trips { 1942 cpu4_alert0: trip-point0 { 1943 temperature = <75000>; 1944 hysteresis = <2000>; 1945 type = "passive"; 1946 }; 1947 1948 cpu4_alert1: trip-point1 { 1949 temperature = <85000>; 1950 hysteresis = <2000>; 1951 type = "hot"; 1952 }; 1953 1954 cpu4_crit: cpu-crit { 1955 temperature = <100000>; 1956 hysteresis = <2000>; 1957 type = "critical"; 1958 }; 1959 }; 1960 }; 1961 1962 cpu5-thermal { 1963 thermal-sensors = <&tsens 6>; 1964 1965 cooling-maps { 1966 map0 { 1967 trip = <&cpu5_alert1>; 1968 cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1969 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1970 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1971 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 1972 }; 1973 }; 1974 1975 trips { 1976 cpu5_alert0: trip-point0 { 1977 temperature = <75000>; 1978 hysteresis = <2000>; 1979 type = "hot"; 1980 }; 1981 1982 cpu5_alert1: trip-point1 { 1983 temperature = <85000>; 1984 hysteresis = <2000>; 1985 type = "passive"; 1986 }; 1987 1988 cpu5_crit: cpu-crit { 1989 temperature = <100000>; 1990 hysteresis = <2000>; 1991 type = "critical"; 1992 }; 1993 }; 1994 }; 1995 1996 cpu6-thermal { 1997 thermal-sensors = <&tsens 7>; 1998 1999 cooling-maps { 2000 map0 { 2001 trip = <&cpu6_alert1>; 2002 cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2003 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2004 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2005 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 2006 }; 2007 }; 2008 2009 trips { 2010 cpu6_alert0: trip-point0 { 2011 temperature = <75000>; 2012 hysteresis = <2000>; 2013 type = "hot"; 2014 }; 2015 2016 cpu6_alert1: trip-point1 { 2017 temperature = <85000>; 2018 hysteresis = <2000>; 2019 type = "passive"; 2020 }; 2021 2022 cpu6_crit: cpu-crit { 2023 temperature = <100000>; 2024 hysteresis = <2000>; 2025 type = "critical"; 2026 }; 2027 }; 2028 }; 2029 2030 cpu7-thermal { 2031 thermal-sensors = <&tsens 8>; 2032 2033 cooling-maps { 2034 map0 { 2035 trip = <&cpu7_alert1>; 2036 cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2037 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2038 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2039 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 2040 }; 2041 }; 2042 2043 trips { 2044 cpu7_alert0: trip-point0 { 2045 temperature = <75000>; 2046 hysteresis = <2000>; 2047 type = "hot"; 2048 }; 2049 2050 cpu7_alert1: trip-point1 { 2051 temperature = <85000>; 2052 hysteresis = <2000>; 2053 type = "passive"; 2054 }; 2055 2056 cpu7_crit: cpu-crit { 2057 temperature = <100000>; 2058 hysteresis = <2000>; 2059 type = "critical"; 2060 }; 2061 }; 2062 }; 2063 2064 cpuss0-thermal { 2065 thermal-sensors = <&tsens 9>; 2066 2067 cooling-maps { 2068 map0 { 2069 trip = <&cpuss0_alert0>; 2070 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2071 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2072 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 2073 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 2074 }; 2075 }; 2076 2077 trips { 2078 cpuss0_alert0: trip-point0 { 2079 temperature = <75000>; 2080 hysteresis = <2000>; 2081 type = "passive"; 2082 }; 2083 2084 cpuss0_alert1: trip-point1 { 2085 temperature = <85000>; 2086 hysteresis = <2000>; 2087 type = "hot"; 2088 }; 2089 2090 cpuss0_crit: cpuss0-crit { 2091 temperature = <100000>; 2092 hysteresis = <2000>; 2093 type = "critical"; 2094 }; 2095 }; 2096 }; 2097 2098 gpu-thermal { 2099 polling-delay-passive = <250>; 2100 2101 thermal-sensors = <&tsens 10>; 2102 2103 cooling-maps { 2104 map0 { 2105 trip = <&gpu_alert>; 2106 cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 2107 }; 2108 }; 2109 2110 trips { 2111 gpu_alert: trip-point0 { 2112 temperature = <70000>; 2113 hysteresis = <2000>; 2114 type = "passive"; 2115 }; 2116 2117 gpu_crit: gpu-crit { 2118 temperature = <90000>; 2119 hysteresis = <2000>; 2120 type = "critical"; 2121 }; 2122 }; 2123 }; 2124 }; 2125 2126 timer { 2127 compatible = "arm,armv8-timer"; 2128 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 2129 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 2130 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 2131 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 2132 }; 2133}; 2134 2135