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/interrupt-controller/arm-gic.h> 9#include <dt-bindings/clock/qcom,gcc-msm8974.h> 10#include <dt-bindings/clock/qcom,mmcc-msm8974.h> 11#include <dt-bindings/clock/qcom,rpmcc.h> 12#include <dt-bindings/gpio/gpio.h> 13#include <dt-bindings/power/qcom-rpmpd.h> 14#include <dt-bindings/reset/qcom,gcc-msm8974.h> 15#include <dt-bindings/thermal/thermal.h> 16 17/ { 18 #address-cells = <1>; 19 #size-cells = <1>; 20 interrupt-parent = <&intc>; 21 22 chosen { }; 23 24 clocks { 25 xo_board: xo_board { 26 compatible = "fixed-clock"; 27 #clock-cells = <0>; 28 clock-frequency = <19200000>; 29 }; 30 31 sleep_clk: sleep_clk { 32 compatible = "fixed-clock"; 33 #clock-cells = <0>; 34 clock-frequency = <32768>; 35 }; 36 }; 37 38 cpus { 39 #address-cells = <1>; 40 #size-cells = <0>; 41 42 CPU0: cpu@0 { 43 compatible = "arm,cortex-a7"; 44 enable-method = "qcom,msm8226-smp"; 45 device_type = "cpu"; 46 reg = <0>; 47 next-level-cache = <&L2>; 48 clocks = <&apcs>; 49 operating-points-v2 = <&cpu_opp_table>; 50 qcom,acc = <&acc0>; 51 qcom,saw = <&saw0>; 52 #cooling-cells = <2>; 53 }; 54 55 CPU1: cpu@1 { 56 compatible = "arm,cortex-a7"; 57 enable-method = "qcom,msm8226-smp"; 58 device_type = "cpu"; 59 reg = <1>; 60 next-level-cache = <&L2>; 61 clocks = <&apcs>; 62 operating-points-v2 = <&cpu_opp_table>; 63 qcom,acc = <&acc1>; 64 qcom,saw = <&saw1>; 65 #cooling-cells = <2>; 66 }; 67 68 CPU2: cpu@2 { 69 compatible = "arm,cortex-a7"; 70 enable-method = "qcom,msm8226-smp"; 71 device_type = "cpu"; 72 reg = <2>; 73 next-level-cache = <&L2>; 74 clocks = <&apcs>; 75 operating-points-v2 = <&cpu_opp_table>; 76 qcom,acc = <&acc2>; 77 qcom,saw = <&saw2>; 78 #cooling-cells = <2>; 79 }; 80 81 CPU3: cpu@3 { 82 compatible = "arm,cortex-a7"; 83 enable-method = "qcom,msm8226-smp"; 84 device_type = "cpu"; 85 reg = <3>; 86 next-level-cache = <&L2>; 87 clocks = <&apcs>; 88 operating-points-v2 = <&cpu_opp_table>; 89 qcom,acc = <&acc3>; 90 qcom,saw = <&saw3>; 91 #cooling-cells = <2>; 92 }; 93 94 L2: l2-cache { 95 compatible = "cache"; 96 cache-level = <2>; 97 cache-unified; 98 }; 99 }; 100 101 firmware { 102 scm { 103 compatible = "qcom,scm-msm8226", "qcom,scm"; 104 clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>; 105 clock-names = "core", "bus", "iface"; 106 }; 107 }; 108 109 memory@0 { 110 device_type = "memory"; 111 reg = <0x0 0x0>; 112 }; 113 114 cpu_opp_table: opp-table-cpu { 115 compatible = "operating-points-v2"; 116 opp-shared; 117 118 opp-300000000 { 119 opp-hz = /bits/ 64 <300000000>; 120 }; 121 122 opp-384000000 { 123 opp-hz = /bits/ 64 <384000000>; 124 }; 125 126 opp-600000000 { 127 opp-hz = /bits/ 64 <600000000>; 128 }; 129 130 opp-787200000 { 131 opp-hz = /bits/ 64 <787200000>; 132 }; 133 134 /* Higher CPU frequencies need speedbin support */ 135 }; 136 137 pmu { 138 compatible = "arm,cortex-a7-pmu"; 139 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | 140 IRQ_TYPE_LEVEL_HIGH)>; 141 }; 142 143 rpm: remoteproc { 144 compatible = "qcom,msm8226-rpm-proc", "qcom,rpm-proc"; 145 146 master-stats { 147 compatible = "qcom,rpm-master-stats"; 148 qcom,rpm-msg-ram = <&apss_master_stats>, 149 <&mpss_master_stats>, 150 <&lpss_master_stats>, 151 <&pronto_master_stats>; 152 qcom,master-names = "APSS", 153 "MPSS", 154 "LPSS", 155 "PRONTO"; 156 }; 157 158 smd-edge { 159 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 160 mboxes = <&apcs 0>; 161 qcom,smd-edge = <15>; 162 163 rpm_requests: rpm-requests { 164 compatible = "qcom,rpm-msm8226", "qcom,smd-rpm"; 165 qcom,smd-channels = "rpm_requests"; 166 167 rpmcc: clock-controller { 168 compatible = "qcom,rpmcc-msm8226", "qcom,rpmcc"; 169 #clock-cells = <1>; 170 clocks = <&xo_board>; 171 clock-names = "xo"; 172 }; 173 174 rpmpd: power-controller { 175 compatible = "qcom,msm8226-rpmpd"; 176 #power-domain-cells = <1>; 177 operating-points-v2 = <&rpmpd_opp_table>; 178 179 rpmpd_opp_table: opp-table { 180 compatible = "operating-points-v2"; 181 182 rpmpd_opp_ret: opp1 { 183 opp-level = <1>; 184 }; 185 rpmpd_opp_svs_krait: opp2 { 186 opp-level = <2>; 187 }; 188 rpmpd_opp_svs_soc: opp3 { 189 opp-level = <3>; 190 }; 191 rpmpd_opp_nom: opp4 { 192 opp-level = <4>; 193 }; 194 rpmpd_opp_turbo: opp5 { 195 opp-level = <5>; 196 }; 197 rpmpd_opp_super_turbo: opp6 { 198 opp-level = <6>; 199 }; 200 }; 201 }; 202 }; 203 }; 204 }; 205 206 reserved-memory { 207 #address-cells = <1>; 208 #size-cells = <1>; 209 ranges; 210 211 smem_region: smem@3000000 { 212 reg = <0x3000000 0x100000>; 213 no-map; 214 }; 215 216 adsp_region: adsp@dc00000 { 217 reg = <0x0dc00000 0x1900000>; 218 no-map; 219 }; 220 }; 221 222 smem { 223 compatible = "qcom,smem"; 224 225 memory-region = <&smem_region>; 226 qcom,rpm-msg-ram = <&rpm_msg_ram>; 227 228 hwlocks = <&tcsr_mutex 3>; 229 }; 230 231 smp2p-adsp { 232 compatible = "qcom,smp2p"; 233 qcom,smem = <443>, <429>; 234 235 interrupt-parent = <&intc>; 236 interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>; 237 238 mboxes = <&apcs 10>; 239 240 qcom,local-pid = <0>; 241 qcom,remote-pid = <2>; 242 243 adsp_smp2p_out: master-kernel { 244 qcom,entry-name = "master-kernel"; 245 #qcom,smem-state-cells = <1>; 246 }; 247 248 adsp_smp2p_in: slave-kernel { 249 qcom,entry-name = "slave-kernel"; 250 251 interrupt-controller; 252 #interrupt-cells = <2>; 253 }; 254 }; 255 256 soc: soc { 257 compatible = "simple-bus"; 258 #address-cells = <1>; 259 #size-cells = <1>; 260 ranges; 261 262 intc: interrupt-controller@f9000000 { 263 compatible = "qcom,msm-qgic2"; 264 reg = <0xf9000000 0x1000>, 265 <0xf9002000 0x1000>; 266 interrupt-controller; 267 #interrupt-cells = <3>; 268 }; 269 270 apcs: mailbox@f9011000 { 271 compatible = "qcom,msm8226-apcs-kpss-global", 272 "qcom,msm8916-apcs-kpss-global", "syscon"; 273 reg = <0xf9011000 0x1000>; 274 #mbox-cells = <1>; 275 clocks = <&a7pll>, <&gcc GPLL0_VOTE>; 276 clock-names = "pll", "aux"; 277 #clock-cells = <0>; 278 }; 279 280 a7pll: clock@f9016000 { 281 compatible = "qcom,msm8226-a7pll"; 282 reg = <0xf9016000 0x40>; 283 #clock-cells = <0>; 284 clocks = <&xo_board>; 285 clock-names = "xo"; 286 operating-points-v2 = <&a7pll_opp_table>; 287 288 a7pll_opp_table: opp-table { 289 compatible = "operating-points-v2"; 290 291 opp-768000000 { 292 opp-hz = /bits/ 64 <768000000>; 293 }; 294 295 opp-787200000 { 296 opp-hz = /bits/ 64 <787200000>; 297 }; 298 299 opp-998400000 { 300 opp-hz = /bits/ 64 <998400000>; 301 }; 302 303 opp-1094400000 { 304 opp-hz = /bits/ 64 <1094400000>; 305 }; 306 307 opp-1190400000 { 308 opp-hz = /bits/ 64 <1190400000>; 309 }; 310 311 opp-1305600000 { 312 opp-hz = /bits/ 64 <1305600000>; 313 }; 314 315 opp-1344000000 { 316 opp-hz = /bits/ 64 <1344000000>; 317 }; 318 319 opp-1401600000 { 320 opp-hz = /bits/ 64 <1401600000>; 321 }; 322 323 opp-1497600000 { 324 opp-hz = /bits/ 64 <1497600000>; 325 }; 326 327 opp-1593600000 { 328 opp-hz = /bits/ 64 <1593600000>; 329 }; 330 331 opp-1689600000 { 332 opp-hz = /bits/ 64 <1689600000>; 333 }; 334 335 opp-1785600000 { 336 opp-hz = /bits/ 64 <1785600000>; 337 }; 338 }; 339 }; 340 341 saw_l2: power-manager@f9012000 { 342 compatible = "qcom,msm8226-saw2-v2.1-l2", "qcom,saw2"; 343 reg = <0xf9012000 0x1000>; 344 }; 345 346 watchdog@f9017000 { 347 compatible = "qcom,apss-wdt-msm8226", "qcom,kpss-wdt"; 348 reg = <0xf9017000 0x1000>; 349 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>, 350 <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>; 351 clocks = <&sleep_clk>; 352 }; 353 354 timer@f9020000 { 355 compatible = "arm,armv7-timer-mem"; 356 reg = <0xf9020000 0x1000>; 357 #address-cells = <1>; 358 #size-cells = <1>; 359 ranges; 360 361 frame@f9021000 { 362 frame-number = <0>; 363 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 364 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 365 reg = <0xf9021000 0x1000>, 366 <0xf9022000 0x1000>; 367 }; 368 369 frame@f9023000 { 370 frame-number = <1>; 371 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 372 reg = <0xf9023000 0x1000>; 373 status = "disabled"; 374 }; 375 376 frame@f9024000 { 377 frame-number = <2>; 378 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 379 reg = <0xf9024000 0x1000>; 380 status = "disabled"; 381 }; 382 383 frame@f9025000 { 384 frame-number = <3>; 385 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 386 reg = <0xf9025000 0x1000>; 387 status = "disabled"; 388 }; 389 390 frame@f9026000 { 391 frame-number = <4>; 392 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 393 reg = <0xf9026000 0x1000>; 394 status = "disabled"; 395 }; 396 397 frame@f9027000 { 398 frame-number = <5>; 399 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 400 reg = <0xf9027000 0x1000>; 401 status = "disabled"; 402 }; 403 404 frame@f9028000 { 405 frame-number = <6>; 406 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 407 reg = <0xf9028000 0x1000>; 408 status = "disabled"; 409 }; 410 }; 411 412 acc0: power-manager@f9088000 { 413 compatible = "qcom,kpss-acc-v2"; 414 reg = <0xf9088000 0x1000>, <0xf9008000 0x1000>; 415 }; 416 417 saw0: power-manager@f9089000 { 418 compatible = "qcom,msm8226-saw2-v2.1-cpu", "qcom,saw2"; 419 reg = <0xf9089000 0x1000>; 420 }; 421 422 acc1: power-manager@f9098000 { 423 compatible = "qcom,kpss-acc-v2"; 424 reg = <0xf9098000 0x1000>, <0xf9008000 0x1000>; 425 }; 426 427 saw1: power-manager@f9099000 { 428 compatible = "qcom,msm8226-saw2-v2.1-cpu", "qcom,saw2"; 429 reg = <0xf9099000 0x1000>; 430 }; 431 432 acc2: power-manager@f90a8000 { 433 compatible = "qcom,kpss-acc-v2"; 434 reg = <0xf90a8000 0x1000>, <0xf9008000 0x1000>; 435 }; 436 437 saw2: power-manager@f90a9000 { 438 compatible = "qcom,msm8226-saw2-v2.1-cpu", "qcom,saw2"; 439 reg = <0xf90a9000 0x1000>; 440 }; 441 442 acc3: power-manager@f90b8000 { 443 compatible = "qcom,kpss-acc-v2"; 444 reg = <0xf90b8000 0x1000>, <0xf9008000 0x1000>; 445 }; 446 447 saw3: power-manager@f90b9000 { 448 compatible = "qcom,msm8226-saw2-v2.1-cpu", "qcom,saw2"; 449 reg = <0xf90b9000 0x1000>; 450 }; 451 452 sdhc_1: mmc@f9824900 { 453 compatible = "qcom,msm8226-sdhci", "qcom,sdhci-msm-v4"; 454 reg = <0xf9824900 0x11c>, <0xf9824000 0x800>; 455 reg-names = "hc", "core"; 456 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 457 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; 458 interrupt-names = "hc_irq", "pwr_irq"; 459 clocks = <&gcc GCC_SDCC1_AHB_CLK>, 460 <&gcc GCC_SDCC1_APPS_CLK>, 461 <&rpmcc RPM_SMD_XO_CLK_SRC>; 462 clock-names = "iface", "core", "xo"; 463 pinctrl-names = "default"; 464 pinctrl-0 = <&sdhc1_default_state>; 465 status = "disabled"; 466 }; 467 468 sdhc_3: mmc@f9864900 { 469 compatible = "qcom,msm8226-sdhci", "qcom,sdhci-msm-v4"; 470 reg = <0xf9864900 0x11c>, <0xf9864000 0x800>; 471 reg-names = "hc", "core"; 472 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>, 473 <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>; 474 interrupt-names = "hc_irq", "pwr_irq"; 475 clocks = <&gcc GCC_SDCC3_AHB_CLK>, 476 <&gcc GCC_SDCC3_APPS_CLK>, 477 <&rpmcc RPM_SMD_XO_CLK_SRC>; 478 clock-names = "iface", "core", "xo"; 479 pinctrl-names = "default"; 480 pinctrl-0 = <&sdhc3_default_state>; 481 status = "disabled"; 482 }; 483 484 sdhc_2: mmc@f98a4900 { 485 compatible = "qcom,msm8226-sdhci", "qcom,sdhci-msm-v4"; 486 reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>; 487 reg-names = "hc", "core"; 488 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 489 <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; 490 interrupt-names = "hc_irq", "pwr_irq"; 491 clocks = <&gcc GCC_SDCC2_AHB_CLK>, 492 <&gcc GCC_SDCC2_APPS_CLK>, 493 <&rpmcc RPM_SMD_XO_CLK_SRC>; 494 clock-names = "iface", "core", "xo"; 495 pinctrl-names = "default"; 496 pinctrl-0 = <&sdhc2_default_state>; 497 status = "disabled"; 498 }; 499 500 blsp1_uart1: serial@f991d000 { 501 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 502 reg = <0xf991d000 0x1000>; 503 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 504 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 505 clock-names = "core", "iface"; 506 status = "disabled"; 507 }; 508 509 blsp1_uart2: serial@f991e000 { 510 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 511 reg = <0xf991e000 0x1000>; 512 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 513 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, 514 <&gcc GCC_BLSP1_AHB_CLK>; 515 clock-names = "core", 516 "iface"; 517 status = "disabled"; 518 }; 519 520 blsp1_uart3: serial@f991f000 { 521 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 522 reg = <0xf991f000 0x1000>; 523 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 524 clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 525 clock-names = "core", "iface"; 526 status = "disabled"; 527 }; 528 529 blsp1_uart4: serial@f9920000 { 530 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 531 reg = <0xf9920000 0x1000>; 532 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 533 clocks = <&gcc GCC_BLSP1_UART4_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 534 clock-names = "core", "iface"; 535 status = "disabled"; 536 }; 537 538 blsp1_i2c1: i2c@f9923000 { 539 compatible = "qcom,i2c-qup-v2.1.1"; 540 reg = <0xf9923000 0x1000>; 541 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 542 clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 543 clock-names = "core", "iface"; 544 pinctrl-names = "default"; 545 pinctrl-0 = <&blsp1_i2c1_pins>; 546 #address-cells = <1>; 547 #size-cells = <0>; 548 status = "disabled"; 549 }; 550 551 blsp1_i2c2: i2c@f9924000 { 552 compatible = "qcom,i2c-qup-v2.1.1"; 553 reg = <0xf9924000 0x1000>; 554 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 555 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 556 clock-names = "core", "iface"; 557 pinctrl-names = "default"; 558 pinctrl-0 = <&blsp1_i2c2_pins>; 559 #address-cells = <1>; 560 #size-cells = <0>; 561 status = "disabled"; 562 }; 563 564 blsp1_i2c3: i2c@f9925000 { 565 compatible = "qcom,i2c-qup-v2.1.1"; 566 reg = <0xf9925000 0x1000>; 567 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 568 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 569 clock-names = "core", "iface"; 570 pinctrl-names = "default"; 571 pinctrl-0 = <&blsp1_i2c3_pins>; 572 #address-cells = <1>; 573 #size-cells = <0>; 574 status = "disabled"; 575 }; 576 577 blsp1_i2c4: i2c@f9926000 { 578 compatible = "qcom,i2c-qup-v2.1.1"; 579 reg = <0xf9926000 0x1000>; 580 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 581 clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 582 clock-names = "core", "iface"; 583 pinctrl-names = "default"; 584 pinctrl-0 = <&blsp1_i2c4_pins>; 585 #address-cells = <1>; 586 #size-cells = <0>; 587 status = "disabled"; 588 }; 589 590 blsp1_i2c5: i2c@f9927000 { 591 compatible = "qcom,i2c-qup-v2.1.1"; 592 reg = <0xf9927000 0x1000>; 593 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 594 clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 595 clock-names = "core", "iface"; 596 pinctrl-names = "default"; 597 pinctrl-0 = <&blsp1_i2c5_pins>; 598 #address-cells = <1>; 599 #size-cells = <0>; 600 status = "disabled"; 601 }; 602 603 blsp1_i2c6: i2c@f9928000 { 604 compatible = "qcom,i2c-qup-v2.1.1"; 605 reg = <0xf9928000 0x1000>; 606 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 607 clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>, 608 <&gcc GCC_BLSP1_AHB_CLK>; 609 clock-names = "core", 610 "iface"; 611 pinctrl-0 = <&blsp1_i2c6_pins>; 612 pinctrl-names = "default"; 613 #address-cells = <1>; 614 #size-cells = <0>; 615 status = "disabled"; 616 }; 617 618 usb: usb@f9a55000 { 619 compatible = "qcom,ci-hdrc"; 620 reg = <0xf9a55000 0x200>, 621 <0xf9a55200 0x200>; 622 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 623 clocks = <&gcc GCC_USB_HS_AHB_CLK>, 624 <&gcc GCC_USB_HS_SYSTEM_CLK>; 625 clock-names = "iface", "core"; 626 assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>; 627 assigned-clock-rates = <75000000>; 628 resets = <&gcc GCC_USB_HS_BCR>; 629 reset-names = "core"; 630 phy_type = "ulpi"; 631 dr_mode = "otg"; 632 hnp-disable; 633 srp-disable; 634 adp-disable; 635 ahb-burst-config = <0>; 636 phy-names = "usb-phy"; 637 phys = <&usb_hs_phy>; 638 status = "disabled"; 639 #reset-cells = <1>; 640 641 ulpi { 642 usb_hs_phy: phy { 643 compatible = "qcom,usb-hs-phy-msm8226", 644 "qcom,usb-hs-phy"; 645 #phy-cells = <0>; 646 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, 647 <&gcc GCC_USB2A_PHY_SLEEP_CLK>; 648 clock-names = "ref", "sleep"; 649 resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>; 650 reset-names = "phy", "por"; 651 qcom,init-seq = /bits/ 8 <0x0 0x44 652 0x1 0x68 0x2 0x24 0x3 0x13>; 653 }; 654 }; 655 }; 656 657 rng@f9bff000 { 658 compatible = "qcom,prng"; 659 reg = <0xf9bff000 0x200>; 660 clocks = <&gcc GCC_PRNG_AHB_CLK>; 661 clock-names = "core"; 662 }; 663 664 sram@fc190000 { 665 compatible = "qcom,msm8226-rpm-stats"; 666 reg = <0xfc190000 0x10000>; 667 }; 668 669 gcc: clock-controller@fc400000 { 670 compatible = "qcom,gcc-msm8226"; 671 reg = <0xfc400000 0x4000>; 672 #clock-cells = <1>; 673 #reset-cells = <1>; 674 #power-domain-cells = <1>; 675 676 clocks = <&xo_board>, 677 <&sleep_clk>; 678 clock-names = "xo", 679 "sleep_clk"; 680 }; 681 682 rpm_msg_ram: sram@fc428000 { 683 compatible = "qcom,rpm-msg-ram"; 684 reg = <0xfc428000 0x4000>; 685 686 #address-cells = <1>; 687 #size-cells = <1>; 688 ranges = <0 0xfc428000 0x4000>; 689 690 apss_master_stats: sram@150 { 691 reg = <0x150 0x14>; 692 }; 693 694 mpss_master_stats: sram@b50 { 695 reg = <0xb50 0x14>; 696 }; 697 698 lpss_master_stats: sram@1550 { 699 reg = <0x1550 0x14>; 700 }; 701 702 pronto_master_stats: sram@1f50 { 703 reg = <0x1f50 0x14>; 704 }; 705 }; 706 707 tsens: thermal-sensor@fc4a9000 { 708 compatible = "qcom,msm8226-tsens", "qcom,tsens-v0_1"; 709 reg = <0xfc4a9000 0x1000>, /* TM */ 710 <0xfc4a8000 0x1000>; /* SROT */ 711 nvmem-cells = <&tsens_mode>, 712 <&tsens_base1>, <&tsens_base2>, 713 <&tsens_s0_p1>, <&tsens_s0_p2>, 714 <&tsens_s1_p1>, <&tsens_s1_p2>, 715 <&tsens_s2_p1>, <&tsens_s2_p2>, 716 <&tsens_s3_p1>, <&tsens_s3_p2>, 717 <&tsens_s4_p1>, <&tsens_s4_p2>, 718 <&tsens_s5_p1>, <&tsens_s5_p2>, 719 <&tsens_s6_p1>, <&tsens_s6_p2>; 720 nvmem-cell-names = "mode", 721 "base1", "base2", 722 "s0_p1", "s0_p2", 723 "s1_p1", "s1_p2", 724 "s2_p1", "s2_p2", 725 "s3_p1", "s3_p2", 726 "s4_p1", "s4_p2", 727 "s5_p1", "s5_p2", 728 "s6_p1", "s6_p2"; 729 #qcom,sensors = <6>; 730 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 731 interrupt-names = "uplow"; 732 #thermal-sensor-cells = <1>; 733 }; 734 735 restart@fc4ab000 { 736 compatible = "qcom,pshold"; 737 reg = <0xfc4ab000 0x4>; 738 }; 739 740 qfprom: efuse@fc4bc000 { 741 compatible = "qcom,msm8226-qfprom", "qcom,qfprom"; 742 reg = <0xfc4bc000 0x1000>; 743 #address-cells = <1>; 744 #size-cells = <1>; 745 746 tsens_base1: base1@1c1 { 747 reg = <0x1c1 0x2>; 748 bits = <5 8>; 749 }; 750 751 tsens_s0_p1: s0-p1@1c2 { 752 reg = <0x1c2 0x2>; 753 bits = <5 6>; 754 }; 755 756 tsens_s1_p1: s1-p1@1c4 { 757 reg = <0x1c4 0x1>; 758 bits = <0 6>; 759 }; 760 761 tsens_s2_p1: s2-p1@1c4 { 762 reg = <0x1c4 0x2>; 763 bits = <6 6>; 764 }; 765 766 tsens_s3_p1: s3-p1@1c5 { 767 reg = <0x1c5 0x2>; 768 bits = <4 6>; 769 }; 770 771 tsens_s4_p1: s4-p1@1c6 { 772 reg = <0x1c6 0x1>; 773 bits = <2 6>; 774 }; 775 776 tsens_s5_p1: s5-p1@1c7 { 777 reg = <0x1c7 0x1>; 778 bits = <0 6>; 779 }; 780 781 tsens_s6_p1: s6-p1@1ca { 782 reg = <0x1ca 0x2>; 783 bits = <4 6>; 784 }; 785 786 tsens_base2: base2@1cc { 787 reg = <0x1cc 0x1>; 788 bits = <0 8>; 789 }; 790 791 tsens_s0_p2: s0-p2@1cd { 792 reg = <0x1cd 0x1>; 793 bits = <0 6>; 794 }; 795 796 tsens_s1_p2: s1-p2@1cd { 797 reg = <0x1cd 0x2>; 798 bits = <6 6>; 799 }; 800 801 tsens_s2_p2: s2-p2@1ce { 802 reg = <0x1ce 0x2>; 803 bits = <4 6>; 804 }; 805 806 tsens_s3_p2: s3-p2@1cf { 807 reg = <0x1cf 0x1>; 808 bits = <2 6>; 809 }; 810 811 tsens_s4_p2: s4-p2@446 { 812 reg = <0x446 0x2>; 813 bits = <4 6>; 814 }; 815 816 tsens_s5_p2: s5-p2@447 { 817 reg = <0x447 0x1>; 818 bits = <2 6>; 819 }; 820 821 tsens_s6_p2: s6-p2@44e { 822 reg = <0x44e 0x1>; 823 bits = <1 6>; 824 }; 825 826 tsens_mode: mode@44f { 827 reg = <0x44f 0x1>; 828 bits = <5 3>; 829 }; 830 }; 831 832 spmi_bus: spmi@fc4cf000 { 833 compatible = "qcom,spmi-pmic-arb"; 834 reg-names = "core", "intr", "cnfg"; 835 reg = <0xfc4cf000 0x1000>, 836 <0xfc4cb000 0x1000>, 837 <0xfc4ca000 0x1000>; 838 interrupt-names = "periph_irq"; 839 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 840 qcom,ee = <0>; 841 qcom,channel = <0>; 842 #address-cells = <2>; 843 #size-cells = <0>; 844 interrupt-controller; 845 #interrupt-cells = <4>; 846 }; 847 848 tcsr_mutex: hwlock@fd484000 { 849 compatible = "qcom,msm8226-tcsr-mutex", "qcom,tcsr-mutex"; 850 reg = <0xfd484000 0x1000>; 851 #hwlock-cells = <1>; 852 }; 853 854 tlmm: pinctrl@fd510000 { 855 compatible = "qcom,msm8226-pinctrl"; 856 reg = <0xfd510000 0x4000>; 857 gpio-controller; 858 #gpio-cells = <2>; 859 gpio-ranges = <&tlmm 0 0 117>; 860 interrupt-controller; 861 #interrupt-cells = <2>; 862 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 863 864 blsp1_i2c1_pins: blsp1-i2c1-state { 865 pins = "gpio2", "gpio3"; 866 function = "blsp_i2c1"; 867 drive-strength = <2>; 868 bias-disable; 869 }; 870 871 blsp1_i2c2_pins: blsp1-i2c2-state { 872 pins = "gpio6", "gpio7"; 873 function = "blsp_i2c2"; 874 drive-strength = <2>; 875 bias-disable; 876 }; 877 878 blsp1_i2c3_pins: blsp1-i2c3-state { 879 pins = "gpio10", "gpio11"; 880 function = "blsp_i2c3"; 881 drive-strength = <2>; 882 bias-disable; 883 }; 884 885 blsp1_i2c4_pins: blsp1-i2c4-state { 886 pins = "gpio14", "gpio15"; 887 function = "blsp_i2c4"; 888 drive-strength = <2>; 889 bias-disable; 890 }; 891 892 blsp1_i2c5_pins: blsp1-i2c5-state { 893 pins = "gpio18", "gpio19"; 894 function = "blsp_i2c5"; 895 drive-strength = <2>; 896 bias-disable; 897 }; 898 899 blsp1_i2c6_pins: blsp1-i2c6-state { 900 pins = "gpio22", "gpio23"; 901 function = "blsp_i2c6"; 902 drive-strength = <2>; 903 bias-disable; 904 }; 905 906 cci_default: cci-default-state { 907 pins = "gpio29", "gpio30"; 908 function = "cci_i2c0"; 909 910 drive-strength = <2>; 911 bias-disable; 912 }; 913 914 cci_sleep: cci-sleep-state { 915 pins = "gpio29", "gpio30"; 916 function = "gpio"; 917 918 drive-strength = <2>; 919 bias-disable; 920 }; 921 922 sdhc1_default_state: sdhc1-default-state { 923 clk-pins { 924 pins = "sdc1_clk"; 925 drive-strength = <10>; 926 bias-disable; 927 }; 928 929 cmd-data-pins { 930 pins = "sdc1_cmd", "sdc1_data"; 931 drive-strength = <10>; 932 bias-pull-up; 933 }; 934 }; 935 936 sdhc2_default_state: sdhc2-default-state { 937 clk-pins { 938 pins = "sdc2_clk"; 939 drive-strength = <10>; 940 bias-disable; 941 }; 942 943 cmd-data-pins { 944 pins = "sdc2_cmd", "sdc2_data"; 945 drive-strength = <10>; 946 bias-pull-up; 947 }; 948 }; 949 950 sdhc3_default_state: sdhc3-default-state { 951 clk-pins { 952 pins = "gpio44"; 953 function = "sdc3"; 954 drive-strength = <8>; 955 bias-disable; 956 }; 957 958 cmd-pins { 959 pins = "gpio43"; 960 function = "sdc3"; 961 drive-strength = <8>; 962 bias-pull-up; 963 }; 964 965 data-pins { 966 pins = "gpio39", "gpio40", "gpio41", "gpio42"; 967 function = "sdc3"; 968 drive-strength = <8>; 969 bias-pull-up; 970 }; 971 }; 972 }; 973 974 mmcc: clock-controller@fd8c0000 { 975 compatible = "qcom,mmcc-msm8226"; 976 reg = <0xfd8c0000 0x6000>; 977 #clock-cells = <1>; 978 #reset-cells = <1>; 979 #power-domain-cells = <1>; 980 981 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, 982 <&gcc GCC_MMSS_GPLL0_CLK_SRC>, 983 <&gcc GPLL0_VOTE>, 984 <&gcc GPLL1_VOTE>, 985 <&rpmcc RPM_SMD_GFX3D_CLK_SRC>, 986 <&mdss_dsi0_phy 1>, 987 <&mdss_dsi0_phy 0>; 988 clock-names = "xo", 989 "mmss_gpll0_vote", 990 "gpll0_vote", 991 "gpll1_vote", 992 "gfx3d_clk_src", 993 "dsi0pll", 994 "dsi0pllbyte"; 995 }; 996 997 mdss: display-subsystem@fd900000 { 998 compatible = "qcom,mdss"; 999 reg = <0xfd900000 0x100>, <0xfd924000 0x1000>; 1000 reg-names = "mdss_phys", "vbif_phys"; 1001 1002 power-domains = <&mmcc MDSS_GDSC>; 1003 1004 clocks = <&mmcc MDSS_AHB_CLK>, 1005 <&mmcc MDSS_AXI_CLK>, 1006 <&mmcc MDSS_VSYNC_CLK>; 1007 clock-names = "iface", 1008 "bus", 1009 "vsync"; 1010 1011 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 1012 1013 interrupt-controller; 1014 #interrupt-cells = <1>; 1015 1016 #address-cells = <1>; 1017 #size-cells = <1>; 1018 ranges; 1019 1020 status = "disabled"; 1021 1022 mdss_mdp: display-controller@fd900000 { 1023 compatible = "qcom,msm8226-mdp5", "qcom,mdp5"; 1024 reg = <0xfd900100 0x22000>; 1025 reg-names = "mdp_phys"; 1026 1027 interrupt-parent = <&mdss>; 1028 interrupts = <0>; 1029 1030 clocks = <&mmcc MDSS_AHB_CLK>, 1031 <&mmcc MDSS_AXI_CLK>, 1032 <&mmcc MDSS_MDP_CLK>, 1033 <&mmcc MDSS_VSYNC_CLK>; 1034 clock-names = "iface", 1035 "bus", 1036 "core", 1037 "vsync"; 1038 1039 ports { 1040 #address-cells = <1>; 1041 #size-cells = <0>; 1042 1043 port@0 { 1044 reg = <0>; 1045 mdss_mdp_intf1_out: endpoint { 1046 remote-endpoint = <&mdss_dsi0_in>; 1047 }; 1048 }; 1049 }; 1050 }; 1051 1052 mdss_dsi0: dsi@fd922800 { 1053 compatible = "qcom,msm8226-dsi-ctrl", 1054 "qcom,mdss-dsi-ctrl"; 1055 reg = <0xfd922800 0x1f8>; 1056 reg-names = "dsi_ctrl"; 1057 1058 interrupt-parent = <&mdss>; 1059 interrupts = <4>; 1060 1061 assigned-clocks = <&mmcc BYTE0_CLK_SRC>, 1062 <&mmcc PCLK0_CLK_SRC>; 1063 assigned-clock-parents = <&mdss_dsi0_phy 0>, 1064 <&mdss_dsi0_phy 1>; 1065 1066 clocks = <&mmcc MDSS_MDP_CLK>, 1067 <&mmcc MDSS_AHB_CLK>, 1068 <&mmcc MDSS_AXI_CLK>, 1069 <&mmcc MDSS_BYTE0_CLK>, 1070 <&mmcc MDSS_PCLK0_CLK>, 1071 <&mmcc MDSS_ESC0_CLK>, 1072 <&mmcc MMSS_MISC_AHB_CLK>; 1073 clock-names = "mdp_core", 1074 "iface", 1075 "bus", 1076 "byte", 1077 "pixel", 1078 "core", 1079 "core_mmss"; 1080 1081 phys = <&mdss_dsi0_phy>; 1082 1083 #address-cells = <1>; 1084 #size-cells = <0>; 1085 1086 ports { 1087 #address-cells = <1>; 1088 #size-cells = <0>; 1089 1090 port@0 { 1091 reg = <0>; 1092 mdss_dsi0_in: endpoint { 1093 remote-endpoint = <&mdss_mdp_intf1_out>; 1094 }; 1095 }; 1096 1097 port@1 { 1098 reg = <1>; 1099 mdss_dsi0_out: endpoint { 1100 }; 1101 }; 1102 }; 1103 }; 1104 1105 mdss_dsi0_phy: phy@fd922a00 { 1106 compatible = "qcom,dsi-phy-28nm-8226"; 1107 reg = <0xfd922a00 0xd4>, 1108 <0xfd922b00 0x280>, 1109 <0xfd922d80 0x30>; 1110 reg-names = "dsi_pll", 1111 "dsi_phy", 1112 "dsi_phy_regulator"; 1113 1114 #clock-cells = <1>; 1115 #phy-cells = <0>; 1116 1117 clocks = <&mmcc MDSS_AHB_CLK>, 1118 <&rpmcc RPM_SMD_XO_CLK_SRC>; 1119 clock-names = "iface", 1120 "ref"; 1121 }; 1122 }; 1123 1124 cci: cci@fda0c000 { 1125 compatible = "qcom,msm8226-cci"; 1126 reg = <0xfda0c000 0x1000>; 1127 #address-cells = <1>; 1128 #size-cells = <0>; 1129 interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>; 1130 clocks = <&mmcc CAMSS_TOP_AHB_CLK>, 1131 <&mmcc CAMSS_CCI_CCI_AHB_CLK>, 1132 <&mmcc CAMSS_CCI_CCI_CLK>; 1133 clock-names = "camss_top_ahb", 1134 "cci_ahb", 1135 "cci"; 1136 1137 pinctrl-names = "default", "sleep"; 1138 pinctrl-0 = <&cci_default>; 1139 pinctrl-1 = <&cci_sleep>; 1140 1141 status = "disabled"; 1142 1143 cci_i2c0: i2c-bus@0 { 1144 reg = <0>; 1145 clock-frequency = <400000>; 1146 #address-cells = <1>; 1147 #size-cells = <0>; 1148 }; 1149 }; 1150 1151 gpu: gpu@fdb00000 { 1152 compatible = "qcom,adreno-305.18", "qcom,adreno"; 1153 reg = <0xfdb00000 0x10000>; 1154 reg-names = "kgsl_3d0_reg_memory"; 1155 1156 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 1157 interrupt-names = "kgsl_3d0_irq"; 1158 1159 clocks = <&mmcc OXILI_GFX3D_CLK>, 1160 <&mmcc OXILICX_AHB_CLK>, 1161 <&mmcc OXILICX_AXI_CLK>; 1162 clock-names = "core", "iface", "mem_iface"; 1163 1164 sram = <&gmu_sram>; 1165 power-domains = <&mmcc OXILICX_GDSC>; 1166 operating-points-v2 = <&gpu_opp_table>; 1167 1168 status = "disabled"; 1169 1170 gpu_opp_table: opp-table { 1171 compatible = "operating-points-v2"; 1172 1173 opp-450000000 { 1174 opp-hz = /bits/ 64 <450000000>; 1175 }; 1176 1177 opp-320000000 { 1178 opp-hz = /bits/ 64 <320000000>; 1179 }; 1180 1181 opp-200000000 { 1182 opp-hz = /bits/ 64 <200000000>; 1183 }; 1184 1185 opp-19000000 { 1186 opp-hz = /bits/ 64 <19000000>; 1187 }; 1188 }; 1189 }; 1190 1191 sram@fdd00000 { 1192 compatible = "qcom,msm8226-ocmem"; 1193 reg = <0xfdd00000 0x2000>, 1194 <0xfec00000 0x20000>; 1195 reg-names = "ctrl", "mem"; 1196 ranges = <0 0xfec00000 0x20000>; 1197 clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>; 1198 clock-names = "core"; 1199 1200 #address-cells = <1>; 1201 #size-cells = <1>; 1202 1203 gmu_sram: gmu-sram@0 { 1204 reg = <0x0 0x20000>; 1205 }; 1206 }; 1207 1208 adsp: remoteproc@fe200000 { 1209 compatible = "qcom,msm8226-adsp-pil"; 1210 reg = <0xfe200000 0x100>; 1211 1212 interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>, 1213 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 1214 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 1215 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 1216 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 1217 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; 1218 1219 power-domains = <&rpmpd MSM8226_VDDCX>; 1220 power-domain-names = "cx"; 1221 1222 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>; 1223 clock-names = "xo"; 1224 1225 memory-region = <&adsp_region>; 1226 1227 qcom,smem-states = <&adsp_smp2p_out 0>; 1228 qcom,smem-state-names = "stop"; 1229 1230 status = "disabled"; 1231 1232 smd-edge { 1233 interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>; 1234 1235 mboxes = <&apcs 8>; 1236 qcom,smd-edge = <1>; 1237 1238 label = "lpass"; 1239 }; 1240 }; 1241 1242 sram@fe805000 { 1243 compatible = "qcom,msm8226-imem", "syscon", "simple-mfd"; 1244 reg = <0xfe805000 0x1000>; 1245 1246 reboot-mode { 1247 compatible = "syscon-reboot-mode"; 1248 offset = <0x65c>; 1249 1250 mode-bootloader = <0x77665500>; 1251 mode-normal = <0x77665501>; 1252 mode-recovery = <0x77665502>; 1253 }; 1254 }; 1255 }; 1256 1257 thermal-zones { 1258 cpu0-thermal { 1259 polling-delay-passive = <250>; 1260 polling-delay = <1000>; 1261 1262 thermal-sensors = <&tsens 5>; 1263 1264 cooling-maps { 1265 map0 { 1266 trip = <&cpu_alert0>; 1267 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1268 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1269 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1270 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 1271 }; 1272 }; 1273 1274 trips { 1275 cpu_alert0: trip0 { 1276 temperature = <75000>; 1277 hysteresis = <2000>; 1278 type = "passive"; 1279 }; 1280 1281 cpu_crit0: trip1 { 1282 temperature = <110000>; 1283 hysteresis = <2000>; 1284 type = "critical"; 1285 }; 1286 }; 1287 }; 1288 1289 cpu1-thermal { 1290 polling-delay-passive = <250>; 1291 polling-delay = <1000>; 1292 1293 thermal-sensors = <&tsens 2>; 1294 1295 cooling-maps { 1296 map0 { 1297 trip = <&cpu_alert1>; 1298 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1299 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1300 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1301 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 1302 }; 1303 }; 1304 1305 trips { 1306 cpu_alert1: trip0 { 1307 temperature = <75000>; 1308 hysteresis = <2000>; 1309 type = "passive"; 1310 }; 1311 1312 cpu_crit1: trip1 { 1313 temperature = <110000>; 1314 hysteresis = <2000>; 1315 type = "critical"; 1316 }; 1317 }; 1318 }; 1319 }; 1320 1321 timer { 1322 compatible = "arm,armv7-timer"; 1323 interrupts = <GIC_PPI 2 1324 (GIC_CPU_MASK_RAW(15) | IRQ_TYPE_LEVEL_LOW)>, 1325 <GIC_PPI 3 1326 (GIC_CPU_MASK_RAW(15) | IRQ_TYPE_LEVEL_LOW)>, 1327 <GIC_PPI 4 1328 (GIC_CPU_MASK_RAW(15) | IRQ_TYPE_LEVEL_LOW)>, 1329 <GIC_PPI 1 1330 (GIC_CPU_MASK_RAW(15) | IRQ_TYPE_LEVEL_LOW)>; 1331 }; 1332}; 1333