1// SPDX-License-Identifier: GPL-2.0 2/dts-v1/; 3 4#include <dt-bindings/clock/qcom,gcc-msm8960.h> 5#include <dt-bindings/clock/qcom,lcc-msm8960.h> 6#include <dt-bindings/reset/qcom,gcc-msm8960.h> 7#include <dt-bindings/clock/qcom,mmcc-msm8960.h> 8#include <dt-bindings/clock/qcom,rpmcc.h> 9#include <dt-bindings/soc/qcom,gsbi.h> 10#include <dt-bindings/interrupt-controller/irq.h> 11#include <dt-bindings/interrupt-controller/arm-gic.h> 12/ { 13 #address-cells = <1>; 14 #size-cells = <1>; 15 model = "Qualcomm APQ8064"; 16 compatible = "qcom,apq8064"; 17 interrupt-parent = <&intc>; 18 19 reserved-memory { 20 #address-cells = <1>; 21 #size-cells = <1>; 22 ranges; 23 24 smem_region: smem@80000000 { 25 reg = <0x80000000 0x200000>; 26 no-map; 27 }; 28 29 wcnss_mem: wcnss@8f000000 { 30 reg = <0x8f000000 0x700000>; 31 no-map; 32 }; 33 }; 34 35 cpus { 36 #address-cells = <1>; 37 #size-cells = <0>; 38 39 CPU0: cpu@0 { 40 compatible = "qcom,krait"; 41 enable-method = "qcom,kpss-acc-v1"; 42 device_type = "cpu"; 43 reg = <0>; 44 next-level-cache = <&L2>; 45 qcom,acc = <&acc0>; 46 qcom,saw = <&saw0>; 47 cpu-idle-states = <&CPU_SPC>; 48 }; 49 50 CPU1: cpu@1 { 51 compatible = "qcom,krait"; 52 enable-method = "qcom,kpss-acc-v1"; 53 device_type = "cpu"; 54 reg = <1>; 55 next-level-cache = <&L2>; 56 qcom,acc = <&acc1>; 57 qcom,saw = <&saw1>; 58 cpu-idle-states = <&CPU_SPC>; 59 }; 60 61 CPU2: cpu@2 { 62 compatible = "qcom,krait"; 63 enable-method = "qcom,kpss-acc-v1"; 64 device_type = "cpu"; 65 reg = <2>; 66 next-level-cache = <&L2>; 67 qcom,acc = <&acc2>; 68 qcom,saw = <&saw2>; 69 cpu-idle-states = <&CPU_SPC>; 70 }; 71 72 CPU3: cpu@3 { 73 compatible = "qcom,krait"; 74 enable-method = "qcom,kpss-acc-v1"; 75 device_type = "cpu"; 76 reg = <3>; 77 next-level-cache = <&L2>; 78 qcom,acc = <&acc3>; 79 qcom,saw = <&saw3>; 80 cpu-idle-states = <&CPU_SPC>; 81 }; 82 83 L2: l2-cache { 84 compatible = "cache"; 85 cache-level = <2>; 86 cache-unified; 87 }; 88 89 idle-states { 90 CPU_SPC: cpu-spc { 91 compatible = "qcom,idle-state-spc", 92 "arm,idle-state"; 93 entry-latency-us = <400>; 94 exit-latency-us = <900>; 95 min-residency-us = <3000>; 96 }; 97 }; 98 }; 99 100 memory@0 { 101 device_type = "memory"; 102 reg = <0x0 0x0>; 103 }; 104 105 thermal-zones { 106 cpu0-thermal { 107 polling-delay-passive = <250>; 108 polling-delay = <1000>; 109 110 thermal-sensors = <&tsens 7>; 111 coefficients = <1199 0>; 112 113 trips { 114 cpu_alert0: trip0 { 115 temperature = <75000>; 116 hysteresis = <2000>; 117 type = "passive"; 118 }; 119 cpu_crit0: trip1 { 120 temperature = <110000>; 121 hysteresis = <2000>; 122 type = "critical"; 123 }; 124 }; 125 }; 126 127 cpu1-thermal { 128 polling-delay-passive = <250>; 129 polling-delay = <1000>; 130 131 thermal-sensors = <&tsens 8>; 132 coefficients = <1132 0>; 133 134 trips { 135 cpu_alert1: trip0 { 136 temperature = <75000>; 137 hysteresis = <2000>; 138 type = "passive"; 139 }; 140 cpu_crit1: trip1 { 141 temperature = <110000>; 142 hysteresis = <2000>; 143 type = "critical"; 144 }; 145 }; 146 }; 147 148 cpu2-thermal { 149 polling-delay-passive = <250>; 150 polling-delay = <1000>; 151 152 thermal-sensors = <&tsens 9>; 153 coefficients = <1199 0>; 154 155 trips { 156 cpu_alert2: trip0 { 157 temperature = <75000>; 158 hysteresis = <2000>; 159 type = "passive"; 160 }; 161 cpu_crit2: trip1 { 162 temperature = <110000>; 163 hysteresis = <2000>; 164 type = "critical"; 165 }; 166 }; 167 }; 168 169 cpu3-thermal { 170 polling-delay-passive = <250>; 171 polling-delay = <1000>; 172 173 thermal-sensors = <&tsens 10>; 174 coefficients = <1132 0>; 175 176 trips { 177 cpu_alert3: trip0 { 178 temperature = <75000>; 179 hysteresis = <2000>; 180 type = "passive"; 181 }; 182 cpu_crit3: trip1 { 183 temperature = <110000>; 184 hysteresis = <2000>; 185 type = "critical"; 186 }; 187 }; 188 }; 189 }; 190 191 cpu-pmu { 192 compatible = "qcom,krait-pmu"; 193 interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 194 }; 195 196 clocks { 197 cxo_board: cxo_board { 198 compatible = "fixed-clock"; 199 #clock-cells = <0>; 200 clock-frequency = <19200000>; 201 }; 202 203 pxo_board: pxo_board { 204 compatible = "fixed-clock"; 205 #clock-cells = <0>; 206 clock-frequency = <27000000>; 207 }; 208 209 sleep_clk: sleep_clk { 210 compatible = "fixed-clock"; 211 #clock-cells = <0>; 212 clock-frequency = <32768>; 213 }; 214 }; 215 216 sfpb_mutex: hwmutex { 217 compatible = "qcom,sfpb-mutex"; 218 syscon = <&sfpb_wrapper_mutex 0x604 0x4>; 219 #hwlock-cells = <1>; 220 }; 221 222 smem { 223 compatible = "qcom,smem"; 224 memory-region = <&smem_region>; 225 226 hwlocks = <&sfpb_mutex 3>; 227 }; 228 229 smsm { 230 compatible = "qcom,smsm"; 231 232 #address-cells = <1>; 233 #size-cells = <0>; 234 235 qcom,ipc-1 = <&l2cc 8 4>; 236 qcom,ipc-2 = <&l2cc 8 14>; 237 qcom,ipc-3 = <&l2cc 8 23>; 238 qcom,ipc-4 = <&sps_sic_non_secure 0x4094 0>; 239 240 apps_smsm: apps@0 { 241 reg = <0>; 242 #qcom,smem-state-cells = <1>; 243 }; 244 245 modem_smsm: modem@1 { 246 reg = <1>; 247 interrupts = <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>; 248 249 interrupt-controller; 250 #interrupt-cells = <2>; 251 }; 252 253 q6_smsm: q6@2 { 254 reg = <2>; 255 interrupts = <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>; 256 257 interrupt-controller; 258 #interrupt-cells = <2>; 259 }; 260 261 wcnss_smsm: wcnss@3 { 262 reg = <3>; 263 interrupts = <GIC_SPI 204 IRQ_TYPE_EDGE_RISING>; 264 265 interrupt-controller; 266 #interrupt-cells = <2>; 267 }; 268 269 dsps_smsm: dsps@4 { 270 reg = <4>; 271 interrupts = <GIC_SPI 137 IRQ_TYPE_EDGE_RISING>; 272 273 interrupt-controller; 274 #interrupt-cells = <2>; 275 }; 276 }; 277 278 firmware { 279 scm { 280 compatible = "qcom,scm-apq8064", "qcom,scm"; 281 282 clocks = <&rpmcc RPM_DAYTONA_FABRIC_CLK>; 283 clock-names = "core"; 284 }; 285 }; 286 287 soc: soc { 288 #address-cells = <1>; 289 #size-cells = <1>; 290 ranges; 291 compatible = "simple-bus"; 292 293 tlmm_pinmux: pinctrl@800000 { 294 compatible = "qcom,apq8064-pinctrl"; 295 reg = <0x800000 0x4000>; 296 297 gpio-controller; 298 gpio-ranges = <&tlmm_pinmux 0 0 90>; 299 #gpio-cells = <2>; 300 interrupt-controller; 301 #interrupt-cells = <2>; 302 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 303 304 pinctrl-names = "default"; 305 pinctrl-0 = <&ps_hold>; 306 }; 307 308 sfpb_wrapper_mutex: syscon@1200000 { 309 compatible = "syscon"; 310 reg = <0x01200000 0x8000>; 311 }; 312 313 intc: interrupt-controller@2000000 { 314 compatible = "qcom,msm-qgic2"; 315 interrupt-controller; 316 #interrupt-cells = <3>; 317 reg = <0x02000000 0x1000>, 318 <0x02002000 0x1000>; 319 }; 320 321 timer@200a000 { 322 compatible = "qcom,kpss-wdt-apq8064", "qcom,kpss-timer", 323 "qcom,msm-timer"; 324 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>, 325 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>, 326 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>; 327 reg = <0x0200a000 0x100>; 328 clock-frequency = <27000000>; 329 cpu-offset = <0x80000>; 330 }; 331 332 acc0: clock-controller@2088000 { 333 compatible = "qcom,kpss-acc-v1"; 334 reg = <0x02088000 0x1000>, <0x02008000 0x1000>; 335 clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 336 clock-names = "pll8_vote", "pxo"; 337 clock-output-names = "acpu0_aux"; 338 #clock-cells = <0>; 339 }; 340 341 acc1: clock-controller@2098000 { 342 compatible = "qcom,kpss-acc-v1"; 343 reg = <0x02098000 0x1000>, <0x02008000 0x1000>; 344 clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 345 clock-names = "pll8_vote", "pxo"; 346 clock-output-names = "acpu1_aux"; 347 #clock-cells = <0>; 348 }; 349 350 acc2: clock-controller@20a8000 { 351 compatible = "qcom,kpss-acc-v1"; 352 reg = <0x020a8000 0x1000>, <0x02008000 0x1000>; 353 clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 354 clock-names = "pll8_vote", "pxo"; 355 clock-output-names = "acpu2_aux"; 356 #clock-cells = <0>; 357 }; 358 359 acc3: clock-controller@20b8000 { 360 compatible = "qcom,kpss-acc-v1"; 361 reg = <0x020b8000 0x1000>, <0x02008000 0x1000>; 362 clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 363 clock-names = "pll8_vote", "pxo"; 364 clock-output-names = "acpu3_aux"; 365 #clock-cells = <0>; 366 }; 367 368 saw0: power-manager@2089000 { 369 compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2"; 370 reg = <0x02089000 0x1000>, <0x02009000 0x1000>; 371 372 saw0_vreg: regulator { 373 regulator-min-microvolt = <850000>; 374 regulator-max-microvolt = <1300000>; 375 }; 376 }; 377 378 saw1: power-manager@2099000 { 379 compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2"; 380 reg = <0x02099000 0x1000>, <0x02009000 0x1000>; 381 382 saw1_vreg: regulator { 383 regulator-min-microvolt = <850000>; 384 regulator-max-microvolt = <1300000>; 385 }; 386 }; 387 388 saw2: power-manager@20a9000 { 389 compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2"; 390 reg = <0x020a9000 0x1000>, <0x02009000 0x1000>; 391 392 saw2_vreg: regulator { 393 regulator-min-microvolt = <850000>; 394 regulator-max-microvolt = <1300000>; 395 }; 396 }; 397 398 saw3: power-manager@20b9000 { 399 compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2"; 400 reg = <0x020b9000 0x1000>, <0x02009000 0x1000>; 401 402 saw3_vreg: regulator { 403 regulator-min-microvolt = <850000>; 404 regulator-max-microvolt = <1300000>; 405 }; 406 }; 407 408 sps_sic_non_secure: sps-sic-non-secure@12100000 { 409 compatible = "syscon"; 410 reg = <0x12100000 0x10000>; 411 }; 412 413 gsbi1: gsbi@12440000 { 414 status = "disabled"; 415 compatible = "qcom,gsbi-v1.0.0"; 416 cell-index = <1>; 417 reg = <0x12440000 0x100>; 418 clocks = <&gcc GSBI1_H_CLK>; 419 clock-names = "iface"; 420 #address-cells = <1>; 421 #size-cells = <1>; 422 ranges; 423 424 syscon-tcsr = <&tcsr>; 425 426 gsbi1_serial: serial@12450000 { 427 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 428 reg = <0x12450000 0x100>, 429 <0x12400000 0x03>; 430 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; 431 clocks = <&gcc GSBI1_UART_CLK>, <&gcc GSBI1_H_CLK>; 432 clock-names = "core", "iface"; 433 status = "disabled"; 434 }; 435 436 gsbi1_i2c: i2c@12460000 { 437 compatible = "qcom,i2c-qup-v1.1.1"; 438 pinctrl-0 = <&i2c1_pins>; 439 pinctrl-1 = <&i2c1_pins_sleep>; 440 pinctrl-names = "default", "sleep"; 441 reg = <0x12460000 0x1000>; 442 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>; 443 clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>; 444 clock-names = "core", "iface"; 445 #address-cells = <1>; 446 #size-cells = <0>; 447 status = "disabled"; 448 }; 449 450 }; 451 452 gsbi2: gsbi@12480000 { 453 status = "disabled"; 454 compatible = "qcom,gsbi-v1.0.0"; 455 cell-index = <2>; 456 reg = <0x12480000 0x100>; 457 clocks = <&gcc GSBI2_H_CLK>; 458 clock-names = "iface"; 459 #address-cells = <1>; 460 #size-cells = <1>; 461 ranges; 462 463 syscon-tcsr = <&tcsr>; 464 465 gsbi2_i2c: i2c@124a0000 { 466 compatible = "qcom,i2c-qup-v1.1.1"; 467 reg = <0x124a0000 0x1000>; 468 pinctrl-0 = <&i2c2_pins>; 469 pinctrl-1 = <&i2c2_pins_sleep>; 470 pinctrl-names = "default", "sleep"; 471 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>; 472 clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>; 473 clock-names = "core", "iface"; 474 #address-cells = <1>; 475 #size-cells = <0>; 476 status = "disabled"; 477 }; 478 }; 479 480 gsbi3: gsbi@16200000 { 481 status = "disabled"; 482 compatible = "qcom,gsbi-v1.0.0"; 483 cell-index = <3>; 484 reg = <0x16200000 0x100>; 485 clocks = <&gcc GSBI3_H_CLK>; 486 clock-names = "iface"; 487 #address-cells = <1>; 488 #size-cells = <1>; 489 ranges; 490 gsbi3_i2c: i2c@16280000 { 491 compatible = "qcom,i2c-qup-v1.1.1"; 492 pinctrl-0 = <&i2c3_pins>; 493 pinctrl-1 = <&i2c3_pins_sleep>; 494 pinctrl-names = "default", "sleep"; 495 reg = <0x16280000 0x1000>; 496 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 497 clocks = <&gcc GSBI3_QUP_CLK>, 498 <&gcc GSBI3_H_CLK>; 499 clock-names = "core", "iface"; 500 #address-cells = <1>; 501 #size-cells = <0>; 502 status = "disabled"; 503 }; 504 }; 505 506 gsbi4: gsbi@16300000 { 507 status = "disabled"; 508 compatible = "qcom,gsbi-v1.0.0"; 509 cell-index = <4>; 510 reg = <0x16300000 0x03>; 511 clocks = <&gcc GSBI4_H_CLK>; 512 clock-names = "iface"; 513 #address-cells = <1>; 514 #size-cells = <1>; 515 ranges; 516 517 gsbi4_serial: serial@16340000 { 518 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 519 reg = <0x16340000 0x100>, 520 <0x16300000 0x3>; 521 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 522 pinctrl-0 = <&gsbi4_uart_pin_a>; 523 pinctrl-names = "default"; 524 clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>; 525 clock-names = "core", "iface"; 526 status = "disabled"; 527 }; 528 529 gsbi4_i2c: i2c@16380000 { 530 compatible = "qcom,i2c-qup-v1.1.1"; 531 pinctrl-0 = <&i2c4_pins>; 532 pinctrl-1 = <&i2c4_pins_sleep>; 533 pinctrl-names = "default", "sleep"; 534 reg = <0x16380000 0x1000>; 535 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 536 clocks = <&gcc GSBI4_QUP_CLK>, 537 <&gcc GSBI4_H_CLK>; 538 clock-names = "core", "iface"; 539 status = "disabled"; 540 }; 541 }; 542 543 gsbi5: gsbi@1a200000 { 544 status = "disabled"; 545 compatible = "qcom,gsbi-v1.0.0"; 546 cell-index = <5>; 547 reg = <0x1a200000 0x03>; 548 clocks = <&gcc GSBI5_H_CLK>; 549 clock-names = "iface"; 550 #address-cells = <1>; 551 #size-cells = <1>; 552 ranges; 553 554 gsbi5_serial: serial@1a240000 { 555 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 556 reg = <0x1a240000 0x100>, 557 <0x1a200000 0x03>; 558 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 559 clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>; 560 clock-names = "core", "iface"; 561 status = "disabled"; 562 }; 563 564 gsbi5_spi: spi@1a280000 { 565 compatible = "qcom,spi-qup-v1.1.1"; 566 reg = <0x1a280000 0x1000>; 567 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 568 pinctrl-0 = <&spi5_default>; 569 pinctrl-1 = <&spi5_sleep>; 570 pinctrl-names = "default", "sleep"; 571 clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>; 572 clock-names = "core", "iface"; 573 status = "disabled"; 574 #address-cells = <1>; 575 #size-cells = <0>; 576 }; 577 }; 578 579 gsbi6: gsbi@16500000 { 580 status = "disabled"; 581 compatible = "qcom,gsbi-v1.0.0"; 582 cell-index = <6>; 583 reg = <0x16500000 0x03>; 584 clocks = <&gcc GSBI6_H_CLK>; 585 clock-names = "iface"; 586 #address-cells = <1>; 587 #size-cells = <1>; 588 ranges; 589 590 gsbi6_serial: serial@16540000 { 591 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 592 reg = <0x16540000 0x100>, 593 <0x16500000 0x03>; 594 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 595 clocks = <&gcc GSBI6_UART_CLK>, <&gcc GSBI6_H_CLK>; 596 clock-names = "core", "iface"; 597 status = "disabled"; 598 }; 599 600 gsbi6_i2c: i2c@16580000 { 601 compatible = "qcom,i2c-qup-v1.1.1"; 602 pinctrl-0 = <&i2c6_pins>; 603 pinctrl-1 = <&i2c6_pins_sleep>; 604 pinctrl-names = "default", "sleep"; 605 reg = <0x16580000 0x1000>; 606 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 607 clocks = <&gcc GSBI6_QUP_CLK>, 608 <&gcc GSBI6_H_CLK>; 609 clock-names = "core", "iface"; 610 status = "disabled"; 611 }; 612 }; 613 614 gsbi7: gsbi@16600000 { 615 status = "disabled"; 616 compatible = "qcom,gsbi-v1.0.0"; 617 cell-index = <7>; 618 reg = <0x16600000 0x100>; 619 clocks = <&gcc GSBI7_H_CLK>; 620 clock-names = "iface"; 621 #address-cells = <1>; 622 #size-cells = <1>; 623 ranges; 624 syscon-tcsr = <&tcsr>; 625 626 gsbi7_serial: serial@16640000 { 627 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 628 reg = <0x16640000 0x1000>, 629 <0x16600000 0x1000>; 630 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 631 clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>; 632 clock-names = "core", "iface"; 633 status = "disabled"; 634 }; 635 636 gsbi7_i2c: i2c@16680000 { 637 compatible = "qcom,i2c-qup-v1.1.1"; 638 pinctrl-0 = <&i2c7_pins>; 639 pinctrl-1 = <&i2c7_pins_sleep>; 640 pinctrl-names = "default", "sleep"; 641 reg = <0x16680000 0x1000>; 642 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; 643 clocks = <&gcc GSBI7_QUP_CLK>, 644 <&gcc GSBI7_H_CLK>; 645 clock-names = "core", "iface"; 646 status = "disabled"; 647 }; 648 }; 649 650 rng@1a500000 { 651 compatible = "qcom,prng"; 652 reg = <0x1a500000 0x200>; 653 clocks = <&gcc PRNG_CLK>; 654 clock-names = "core"; 655 }; 656 657 ssbi2: ssbi@c00000 { 658 compatible = "qcom,ssbi"; 659 reg = <0x00c00000 0x1000>; 660 qcom,controller-type = "pmic-arbiter"; 661 }; 662 663 ssbi: ssbi@500000 { 664 compatible = "qcom,ssbi"; 665 reg = <0x00500000 0x1000>; 666 qcom,controller-type = "pmic-arbiter"; 667 }; 668 669 qfprom: efuse@700000 { 670 compatible = "qcom,apq8064-qfprom", "qcom,qfprom"; 671 reg = <0x00700000 0x1000>; 672 #address-cells = <1>; 673 #size-cells = <1>; 674 675 tsens_calib: calib@404 { 676 reg = <0x404 0x10>; 677 }; 678 tsens_backup: backup_calib@414 { 679 reg = <0x414 0x10>; 680 }; 681 }; 682 683 gcc: clock-controller@900000 { 684 compatible = "qcom,gcc-apq8064", "syscon"; 685 reg = <0x00900000 0x4000>; 686 #clock-cells = <1>; 687 #reset-cells = <1>; 688 clocks = <&cxo_board>, 689 <&pxo_board>, 690 <&lcc PLL4>; 691 clock-names = "cxo", "pxo", "pll4"; 692 693 tsens: thermal-sensor { 694 compatible = "qcom,msm8960-tsens"; 695 696 nvmem-cells = <&tsens_calib>, <&tsens_backup>; 697 nvmem-cell-names = "calib", "calib_backup"; 698 interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>; 699 interrupt-names = "uplow"; 700 701 #qcom,sensors = <11>; 702 #thermal-sensor-cells = <1>; 703 }; 704 }; 705 706 lcc: clock-controller@28000000 { 707 compatible = "qcom,lcc-apq8064"; 708 reg = <0x28000000 0x1000>; 709 #clock-cells = <1>; 710 #reset-cells = <1>; 711 clocks = <&pxo_board>, 712 <&gcc PLL4_VOTE>, 713 <0>, 714 <0>, <0>, 715 <0>, <0>, 716 <0>; 717 clock-names = "pxo", 718 "pll4_vote", 719 "mi2s_codec_clk", 720 "codec_i2s_mic_codec_clk", 721 "spare_i2s_mic_codec_clk", 722 "codec_i2s_spkr_codec_clk", 723 "spare_i2s_spkr_codec_clk", 724 "pcm_codec_clk"; 725 }; 726 727 mmcc: clock-controller@4000000 { 728 compatible = "qcom,mmcc-apq8064"; 729 reg = <0x4000000 0x1000>; 730 #clock-cells = <1>; 731 #power-domain-cells = <1>; 732 #reset-cells = <1>; 733 clocks = <&pxo_board>, 734 <&gcc PLL3>, 735 <&gcc PLL8_VOTE>, 736 <&dsi0_phy 1>, 737 <&dsi0_phy 0>, 738 <&dsi1_phy 1>, 739 <&dsi1_phy 0>, 740 <&hdmi_phy>; 741 clock-names = "pxo", 742 "pll3", 743 "pll8_vote", 744 "dsi1pll", 745 "dsi1pllbyte", 746 "dsi2pll", 747 "dsi2pllbyte", 748 "hdmipll"; 749 }; 750 751 l2cc: clock-controller@2011000 { 752 compatible = "qcom,kpss-gcc-apq8064", "qcom,kpss-gcc", "syscon"; 753 reg = <0x2011000 0x1000>; 754 clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 755 clock-names = "pll8_vote", "pxo"; 756 #clock-cells = <0>; 757 }; 758 759 rpm: rpm@108000 { 760 compatible = "qcom,rpm-apq8064"; 761 reg = <0x108000 0x1000>; 762 qcom,ipc = <&l2cc 0x8 2>; 763 764 interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>, 765 <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>, 766 <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>; 767 interrupt-names = "ack", "err", "wakeup"; 768 769 rpmcc: clock-controller { 770 compatible = "qcom,rpmcc-apq8064", "qcom,rpmcc"; 771 #clock-cells = <1>; 772 clocks = <&pxo_board>, <&cxo_board>; 773 clock-names = "pxo", "cxo"; 774 }; 775 }; 776 777 usb1: usb@12500000 { 778 compatible = "qcom,ci-hdrc"; 779 reg = <0x12500000 0x200>, 780 <0x12500200 0x200>; 781 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 782 clocks = <&gcc USB_HS1_XCVR_CLK>, <&gcc USB_HS1_H_CLK>; 783 clock-names = "core", "iface"; 784 assigned-clocks = <&gcc USB_HS1_XCVR_CLK>; 785 assigned-clock-rates = <60000000>; 786 resets = <&gcc USB_HS1_RESET>; 787 reset-names = "core"; 788 phy_type = "ulpi"; 789 ahb-burst-config = <0>; 790 phys = <&usb_hs1_phy>; 791 phy-names = "usb-phy"; 792 status = "disabled"; 793 #reset-cells = <1>; 794 795 ulpi { 796 usb_hs1_phy: phy { 797 compatible = "qcom,usb-hs-phy-apq8064", 798 "qcom,usb-hs-phy"; 799 clocks = <&sleep_clk>, <&cxo_board>; 800 clock-names = "sleep", "ref"; 801 resets = <&usb1 0>; 802 reset-names = "por"; 803 #phy-cells = <0>; 804 }; 805 }; 806 }; 807 808 usb3: usb@12520000 { 809 compatible = "qcom,ci-hdrc"; 810 reg = <0x12520000 0x200>, 811 <0x12520200 0x200>; 812 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 813 clocks = <&gcc USB_HS3_XCVR_CLK>, <&gcc USB_HS3_H_CLK>; 814 clock-names = "core", "iface"; 815 assigned-clocks = <&gcc USB_HS3_XCVR_CLK>; 816 assigned-clock-rates = <60000000>; 817 resets = <&gcc USB_HS3_RESET>; 818 reset-names = "core"; 819 phy_type = "ulpi"; 820 ahb-burst-config = <0>; 821 phys = <&usb_hs3_phy>; 822 phy-names = "usb-phy"; 823 status = "disabled"; 824 #reset-cells = <1>; 825 826 ulpi { 827 usb_hs3_phy: phy { 828 compatible = "qcom,usb-hs-phy-apq8064", 829 "qcom,usb-hs-phy"; 830 #phy-cells = <0>; 831 clocks = <&sleep_clk>, <&cxo_board>; 832 clock-names = "sleep", "ref"; 833 resets = <&usb3 0>; 834 reset-names = "por"; 835 }; 836 }; 837 }; 838 839 usb4: usb@12530000 { 840 compatible = "qcom,ci-hdrc"; 841 reg = <0x12530000 0x200>, 842 <0x12530200 0x200>; 843 interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>; 844 clocks = <&gcc USB_HS4_XCVR_CLK>, <&gcc USB_HS4_H_CLK>; 845 clock-names = "core", "iface"; 846 assigned-clocks = <&gcc USB_HS4_XCVR_CLK>; 847 assigned-clock-rates = <60000000>; 848 resets = <&gcc USB_HS4_RESET>; 849 reset-names = "core"; 850 phy_type = "ulpi"; 851 ahb-burst-config = <0>; 852 phys = <&usb_hs4_phy>; 853 phy-names = "usb-phy"; 854 status = "disabled"; 855 #reset-cells = <1>; 856 857 ulpi { 858 usb_hs4_phy: phy { 859 compatible = "qcom,usb-hs-phy-apq8064", 860 "qcom,usb-hs-phy"; 861 #phy-cells = <0>; 862 clocks = <&sleep_clk>, <&cxo_board>; 863 clock-names = "sleep", "ref"; 864 resets = <&usb4 0>; 865 reset-names = "por"; 866 }; 867 }; 868 }; 869 870 sata_phy0: phy@1b400000 { 871 compatible = "qcom,apq8064-sata-phy"; 872 status = "disabled"; 873 reg = <0x1b400000 0x200>; 874 reg-names = "phy_mem"; 875 clocks = <&gcc SATA_PHY_CFG_CLK>; 876 clock-names = "cfg"; 877 #phy-cells = <0>; 878 }; 879 880 sata0: sata@29000000 { 881 compatible = "qcom,apq8064-ahci", "generic-ahci"; 882 status = "disabled"; 883 reg = <0x29000000 0x180>; 884 interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>; 885 886 clocks = <&gcc SFAB_SATA_S_H_CLK>, 887 <&gcc SATA_H_CLK>, 888 <&gcc SATA_A_CLK>, 889 <&gcc SATA_RXOOB_CLK>, 890 <&gcc SATA_PMALIVE_CLK>; 891 clock-names = "slave_iface", 892 "iface", 893 "bus", 894 "rxoob", 895 "core_pmalive"; 896 897 assigned-clocks = <&gcc SATA_RXOOB_CLK>, 898 <&gcc SATA_PMALIVE_CLK>; 899 assigned-clock-rates = <100000000>, <100000000>; 900 901 phys = <&sata_phy0>; 902 phy-names = "sata-phy"; 903 ports-implemented = <0x1>; 904 }; 905 906 sdcc3: mmc@12180000 { 907 compatible = "arm,pl18x", "arm,primecell"; 908 arm,primecell-periphid = <0x00051180>; 909 status = "disabled"; 910 reg = <0x12180000 0x2000>; 911 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 912 clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>; 913 clock-names = "mclk", "apb_pclk"; 914 bus-width = <4>; 915 cap-sd-highspeed; 916 cap-mmc-highspeed; 917 max-frequency = <192000000>; 918 no-1-8-v; 919 dmas = <&sdcc3bam 2>, <&sdcc3bam 1>; 920 dma-names = "tx", "rx"; 921 }; 922 923 sdcc3bam: dma-controller@12182000 { 924 compatible = "qcom,bam-v1.3.0"; 925 reg = <0x12182000 0x8000>; 926 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 927 clocks = <&gcc SDC3_H_CLK>; 928 clock-names = "bam_clk"; 929 #dma-cells = <1>; 930 qcom,ee = <0>; 931 }; 932 933 sdcc4: mmc@121c0000 { 934 compatible = "arm,pl18x", "arm,primecell"; 935 arm,primecell-periphid = <0x00051180>; 936 status = "disabled"; 937 reg = <0x121c0000 0x2000>; 938 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 939 clocks = <&gcc SDC4_CLK>, <&gcc SDC4_H_CLK>; 940 clock-names = "mclk", "apb_pclk"; 941 bus-width = <4>; 942 cap-sd-highspeed; 943 cap-mmc-highspeed; 944 max-frequency = <48000000>; 945 dmas = <&sdcc4bam 2>, <&sdcc4bam 1>; 946 dma-names = "tx", "rx"; 947 pinctrl-names = "default"; 948 pinctrl-0 = <&sdc4_gpios>; 949 }; 950 951 sdcc4bam: dma-controller@121c2000 { 952 compatible = "qcom,bam-v1.3.0"; 953 reg = <0x121c2000 0x8000>; 954 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 955 clocks = <&gcc SDC4_H_CLK>; 956 clock-names = "bam_clk"; 957 #dma-cells = <1>; 958 qcom,ee = <0>; 959 }; 960 961 sdcc1: mmc@12400000 { 962 status = "disabled"; 963 compatible = "arm,pl18x", "arm,primecell"; 964 pinctrl-names = "default"; 965 pinctrl-0 = <&sdcc1_pins>; 966 arm,primecell-periphid = <0x00051180>; 967 reg = <0x12400000 0x2000>; 968 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 969 clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>; 970 clock-names = "mclk", "apb_pclk"; 971 bus-width = <8>; 972 max-frequency = <96000000>; 973 non-removable; 974 cap-sd-highspeed; 975 cap-mmc-highspeed; 976 dmas = <&sdcc1bam 2>, <&sdcc1bam 1>; 977 dma-names = "tx", "rx"; 978 }; 979 980 sdcc1bam: dma-controller@12402000 { 981 compatible = "qcom,bam-v1.3.0"; 982 reg = <0x12402000 0x8000>; 983 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 984 clocks = <&gcc SDC1_H_CLK>; 985 clock-names = "bam_clk"; 986 #dma-cells = <1>; 987 qcom,ee = <0>; 988 }; 989 990 tcsr: syscon@1a400000 { 991 compatible = "qcom,tcsr-apq8064", "syscon"; 992 reg = <0x1a400000 0x100>; 993 }; 994 995 gpu: gpu@4300000 { 996 compatible = "qcom,adreno-320.2", "qcom,adreno"; 997 reg = <0x04300000 0x20000>; 998 reg-names = "kgsl_3d0_reg_memory"; 999 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 1000 interrupt-names = "kgsl_3d0_irq"; 1001 clock-names = 1002 "core", 1003 "iface", 1004 "mem", 1005 "mem_iface"; 1006 clocks = 1007 <&mmcc GFX3D_CLK>, 1008 <&mmcc GFX3D_AHB_CLK>, 1009 <&mmcc GFX3D_AXI_CLK>, 1010 <&mmcc MMSS_IMEM_AHB_CLK>; 1011 1012 iommus = <&gfx3d 0 1013 &gfx3d 1 1014 &gfx3d 2 1015 &gfx3d 3 1016 &gfx3d 4 1017 &gfx3d 5 1018 &gfx3d 6 1019 &gfx3d 7 1020 &gfx3d 8 1021 &gfx3d 9 1022 &gfx3d 10 1023 &gfx3d 11 1024 &gfx3d 12 1025 &gfx3d 13 1026 &gfx3d 14 1027 &gfx3d 15 1028 &gfx3d 16 1029 &gfx3d 17 1030 &gfx3d 18 1031 &gfx3d 19 1032 &gfx3d 20 1033 &gfx3d 21 1034 &gfx3d 22 1035 &gfx3d 23 1036 &gfx3d 24 1037 &gfx3d 25 1038 &gfx3d 26 1039 &gfx3d 27 1040 &gfx3d 28 1041 &gfx3d 29 1042 &gfx3d 30 1043 &gfx3d 31 1044 &gfx3d1 0 1045 &gfx3d1 1 1046 &gfx3d1 2 1047 &gfx3d1 3 1048 &gfx3d1 4 1049 &gfx3d1 5 1050 &gfx3d1 6 1051 &gfx3d1 7 1052 &gfx3d1 8 1053 &gfx3d1 9 1054 &gfx3d1 10 1055 &gfx3d1 11 1056 &gfx3d1 12 1057 &gfx3d1 13 1058 &gfx3d1 14 1059 &gfx3d1 15 1060 &gfx3d1 16 1061 &gfx3d1 17 1062 &gfx3d1 18 1063 &gfx3d1 19 1064 &gfx3d1 20 1065 &gfx3d1 21 1066 &gfx3d1 22 1067 &gfx3d1 23 1068 &gfx3d1 24 1069 &gfx3d1 25 1070 &gfx3d1 26 1071 &gfx3d1 27 1072 &gfx3d1 28 1073 &gfx3d1 29 1074 &gfx3d1 30 1075 &gfx3d1 31>; 1076 1077 operating-points-v2 = <&gpu_opp_table>; 1078 1079 gpu_opp_table: opp-table { 1080 compatible = "operating-points-v2"; 1081 1082 opp-450000000 { 1083 opp-hz = /bits/ 64 <450000000>; 1084 }; 1085 1086 opp-27000000 { 1087 opp-hz = /bits/ 64 <27000000>; 1088 }; 1089 }; 1090 }; 1091 1092 mmss_sfpb: syscon@5700000 { 1093 compatible = "syscon"; 1094 reg = <0x5700000 0x70>; 1095 }; 1096 1097 dsi0: dsi@4700000 { 1098 compatible = "qcom,apq8064-dsi-ctrl", 1099 "qcom,mdss-dsi-ctrl"; 1100 #address-cells = <1>; 1101 #size-cells = <0>; 1102 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 1103 reg = <0x04700000 0x200>; 1104 reg-names = "dsi_ctrl"; 1105 1106 clocks = <&mmcc DSI_M_AHB_CLK>, 1107 <&mmcc DSI_S_AHB_CLK>, 1108 <&mmcc AMP_AHB_CLK>, 1109 <&mmcc DSI_CLK>, 1110 <&mmcc DSI1_BYTE_CLK>, 1111 <&mmcc DSI_PIXEL_CLK>, 1112 <&mmcc DSI1_ESC_CLK>; 1113 clock-names = "iface", "bus", "core_mmss", 1114 "src", "byte", "pixel", 1115 "core"; 1116 1117 assigned-clocks = <&mmcc DSI1_BYTE_SRC>, 1118 <&mmcc DSI1_ESC_SRC>, 1119 <&mmcc DSI_SRC>, 1120 <&mmcc DSI_PIXEL_SRC>; 1121 assigned-clock-parents = <&dsi0_phy 0>, 1122 <&dsi0_phy 0>, 1123 <&dsi0_phy 1>, 1124 <&dsi0_phy 1>; 1125 syscon-sfpb = <&mmss_sfpb>; 1126 phys = <&dsi0_phy>; 1127 status = "disabled"; 1128 1129 ports { 1130 #address-cells = <1>; 1131 #size-cells = <0>; 1132 1133 port@0 { 1134 reg = <0>; 1135 dsi0_in: endpoint { 1136 }; 1137 }; 1138 1139 port@1 { 1140 reg = <1>; 1141 dsi0_out: endpoint { 1142 }; 1143 }; 1144 }; 1145 }; 1146 1147 1148 dsi0_phy: phy@4700200 { 1149 compatible = "qcom,dsi-phy-28nm-8960"; 1150 #clock-cells = <1>; 1151 #phy-cells = <0>; 1152 1153 reg = <0x04700200 0x100>, 1154 <0x04700300 0x200>, 1155 <0x04700500 0x5c>; 1156 reg-names = "dsi_pll", "dsi_phy", "dsi_phy_regulator"; 1157 clock-names = "iface", "ref"; 1158 clocks = <&mmcc DSI_M_AHB_CLK>, 1159 <&pxo_board>; 1160 status = "disabled"; 1161 }; 1162 1163 dsi1: dsi@5800000 { 1164 compatible = "qcom,mdss-dsi-ctrl"; 1165 interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 1166 reg = <0x05800000 0x200>; 1167 reg-names = "dsi_ctrl"; 1168 1169 clocks = <&mmcc DSI2_M_AHB_CLK>, 1170 <&mmcc DSI2_S_AHB_CLK>, 1171 <&mmcc AMP_AHB_CLK>, 1172 <&mmcc DSI2_CLK>, 1173 <&mmcc DSI2_BYTE_CLK>, 1174 <&mmcc DSI2_PIXEL_CLK>, 1175 <&mmcc DSI2_ESC_CLK>; 1176 clock-names = "iface", 1177 "bus", 1178 "core_mmss", 1179 "src", 1180 "byte", 1181 "pixel", 1182 "core"; 1183 1184 assigned-clocks = <&mmcc DSI2_BYTE_SRC>, 1185 <&mmcc DSI2_ESC_SRC>, 1186 <&mmcc DSI2_SRC>, 1187 <&mmcc DSI2_PIXEL_SRC>; 1188 assigned-clock-parents = <&dsi1_phy 0>, 1189 <&dsi1_phy 0>, 1190 <&dsi1_phy 1>, 1191 <&dsi1_phy 1>; 1192 1193 syscon-sfpb = <&mmss_sfpb>; 1194 phys = <&dsi1_phy>; 1195 1196 #address-cells = <1>; 1197 #size-cells = <0>; 1198 1199 status = "disabled"; 1200 1201 ports { 1202 #address-cells = <1>; 1203 #size-cells = <0>; 1204 1205 port@0 { 1206 reg = <0>; 1207 dsi1_in: endpoint { 1208 }; 1209 }; 1210 1211 port@1 { 1212 reg = <1>; 1213 dsi1_out: endpoint { 1214 }; 1215 }; 1216 }; 1217 }; 1218 1219 1220 dsi1_phy: dsi-phy@5800200 { 1221 compatible = "qcom,dsi-phy-28nm-8960"; 1222 reg = <0x05800200 0x100>, 1223 <0x05800300 0x200>, 1224 <0x05800500 0x5c>; 1225 reg-names = "dsi_pll", 1226 "dsi_phy", 1227 "dsi_phy_regulator"; 1228 clock-names = "iface", 1229 "ref"; 1230 clocks = <&mmcc DSI2_M_AHB_CLK>, 1231 <&pxo_board>; 1232 #clock-cells = <1>; 1233 #phy-cells = <0>; 1234 1235 status = "disabled"; 1236 }; 1237 1238 mdp_port0: iommu@7500000 { 1239 compatible = "qcom,apq8064-iommu"; 1240 #iommu-cells = <1>; 1241 clock-names = 1242 "smmu_pclk", 1243 "iommu_clk"; 1244 clocks = 1245 <&mmcc SMMU_AHB_CLK>, 1246 <&mmcc MDP_AXI_CLK>; 1247 reg = <0x07500000 0x100000>; 1248 interrupts = 1249 <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>, 1250 <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 1251 qcom,ncb = <2>; 1252 }; 1253 1254 mdp_port1: iommu@7600000 { 1255 compatible = "qcom,apq8064-iommu"; 1256 #iommu-cells = <1>; 1257 clock-names = 1258 "smmu_pclk", 1259 "iommu_clk"; 1260 clocks = 1261 <&mmcc SMMU_AHB_CLK>, 1262 <&mmcc MDP_AXI_CLK>; 1263 reg = <0x07600000 0x100000>; 1264 interrupts = 1265 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 1266 <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 1267 qcom,ncb = <2>; 1268 }; 1269 1270 gfx3d: iommu@7c00000 { 1271 compatible = "qcom,apq8064-iommu"; 1272 #iommu-cells = <1>; 1273 clock-names = 1274 "smmu_pclk", 1275 "iommu_clk"; 1276 clocks = 1277 <&mmcc SMMU_AHB_CLK>, 1278 <&mmcc GFX3D_AXI_CLK>; 1279 reg = <0x07c00000 0x100000>; 1280 interrupts = 1281 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, 1282 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 1283 qcom,ncb = <3>; 1284 }; 1285 1286 gfx3d1: iommu@7d00000 { 1287 compatible = "qcom,apq8064-iommu"; 1288 #iommu-cells = <1>; 1289 clock-names = 1290 "smmu_pclk", 1291 "iommu_clk"; 1292 clocks = 1293 <&mmcc SMMU_AHB_CLK>, 1294 <&mmcc GFX3D_AXI_CLK>; 1295 reg = <0x07d00000 0x100000>; 1296 interrupts = 1297 <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>, 1298 <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>; 1299 qcom,ncb = <3>; 1300 }; 1301 1302 pcie: pcie@1b500000 { 1303 compatible = "qcom,pcie-apq8064"; 1304 reg = <0x1b500000 0x1000>, 1305 <0x1b502000 0x80>, 1306 <0x1b600000 0x100>, 1307 <0x0ff00000 0x100000>; 1308 reg-names = "dbi", "elbi", "parf", "config"; 1309 device_type = "pci"; 1310 linux,pci-domain = <0>; 1311 bus-range = <0x00 0xff>; 1312 num-lanes = <1>; 1313 #address-cells = <3>; 1314 #size-cells = <2>; 1315 ranges = <0x81000000 0x0 0x00000000 0x0fe00000 0x0 0x00100000>, /* I/O */ 1316 <0x82000000 0x0 0x08000000 0x08000000 0x0 0x07e00000>; /* mem */ 1317 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; 1318 interrupt-names = "msi"; 1319 #interrupt-cells = <1>; 1320 interrupt-map-mask = <0 0 0 0x7>; 1321 interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 1322 <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 1323 <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 1324 <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 1325 clocks = <&gcc PCIE_A_CLK>, 1326 <&gcc PCIE_H_CLK>, 1327 <&gcc PCIE_PHY_REF_CLK>; 1328 clock-names = "core", "iface", "phy"; 1329 resets = <&gcc PCIE_ACLK_RESET>, 1330 <&gcc PCIE_HCLK_RESET>, 1331 <&gcc PCIE_POR_RESET>, 1332 <&gcc PCIE_PCI_RESET>, 1333 <&gcc PCIE_PHY_RESET>; 1334 reset-names = "axi", "ahb", "por", "pci", "phy"; 1335 status = "disabled"; 1336 1337 pcie@0 { 1338 device_type = "pci"; 1339 reg = <0x0 0x0 0x0 0x0 0x0>; 1340 bus-range = <0x01 0xff>; 1341 1342 #address-cells = <3>; 1343 #size-cells = <2>; 1344 ranges; 1345 }; 1346 }; 1347 1348 hdmi: hdmi-tx@4a00000 { 1349 compatible = "qcom,hdmi-tx-8960"; 1350 pinctrl-names = "default"; 1351 pinctrl-0 = <&hdmi_pinctrl>; 1352 reg = <0x04a00000 0x2f0>; 1353 reg-names = "core_physical"; 1354 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 1355 clocks = <&mmcc HDMI_APP_CLK>, 1356 <&mmcc HDMI_M_AHB_CLK>, 1357 <&mmcc HDMI_S_AHB_CLK>; 1358 clock-names = "core", 1359 "master_iface", 1360 "slave_iface"; 1361 1362 phys = <&hdmi_phy>; 1363 1364 status = "disabled"; 1365 1366 ports { 1367 #address-cells = <1>; 1368 #size-cells = <0>; 1369 1370 port@0 { 1371 reg = <0>; 1372 hdmi_in: endpoint { 1373 }; 1374 }; 1375 1376 port@1 { 1377 reg = <1>; 1378 hdmi_out: endpoint { 1379 }; 1380 }; 1381 }; 1382 }; 1383 1384 hdmi_phy: phy@4a00400 { 1385 compatible = "qcom,hdmi-phy-8960"; 1386 reg = <0x4a00400 0x60>, 1387 <0x4a00500 0x100>; 1388 reg-names = "hdmi_phy", 1389 "hdmi_pll"; 1390 1391 clocks = <&mmcc HDMI_S_AHB_CLK>; 1392 clock-names = "slave_iface"; 1393 #phy-cells = <0>; 1394 #clock-cells = <0>; 1395 1396 status = "disabled"; 1397 }; 1398 1399 mdp: display-controller@5100000 { 1400 compatible = "qcom,mdp4"; 1401 reg = <0x05100000 0xf0000>; 1402 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 1403 clocks = <&mmcc MDP_CLK>, 1404 <&mmcc MDP_AHB_CLK>, 1405 <&mmcc MDP_AXI_CLK>, 1406 <&mmcc MDP_LUT_CLK>, 1407 <&mmcc HDMI_TV_CLK>, 1408 <&mmcc MDP_TV_CLK>; 1409 clock-names = "core_clk", 1410 "iface_clk", 1411 "bus_clk", 1412 "lut_clk", 1413 "hdmi_clk", 1414 "tv_clk"; 1415 1416 iommus = <&mdp_port0 0 1417 &mdp_port0 2 1418 &mdp_port1 0 1419 &mdp_port1 2>; 1420 1421 ports { 1422 #address-cells = <1>; 1423 #size-cells = <0>; 1424 1425 port@0 { 1426 reg = <0>; 1427 mdp_lvds_out: endpoint { 1428 }; 1429 }; 1430 1431 port@1 { 1432 reg = <1>; 1433 mdp_dsi1_out: endpoint { 1434 }; 1435 }; 1436 1437 port@2 { 1438 reg = <2>; 1439 mdp_dsi2_out: endpoint { 1440 }; 1441 }; 1442 1443 port@3 { 1444 reg = <3>; 1445 mdp_dtv_out: endpoint { 1446 }; 1447 }; 1448 }; 1449 }; 1450 1451 riva: riva-pil@3200800 { 1452 compatible = "qcom,riva-pil"; 1453 1454 reg = <0x03200800 0x1000>, <0x03202000 0x2000>, <0x03204000 0x100>; 1455 reg-names = "ccu", "dxe", "pmu"; 1456 1457 interrupts-extended = <&intc GIC_SPI 199 IRQ_TYPE_EDGE_RISING>, 1458 <&wcnss_smsm 6 IRQ_TYPE_EDGE_RISING>; 1459 interrupt-names = "wdog", "fatal"; 1460 1461 memory-region = <&wcnss_mem>; 1462 1463 status = "disabled"; 1464 1465 iris { 1466 compatible = "qcom,wcn3660"; 1467 1468 clocks = <&cxo_board>; 1469 clock-names = "xo"; 1470 }; 1471 1472 smd-edge { 1473 interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>; 1474 1475 qcom,ipc = <&l2cc 8 25>; 1476 qcom,smd-edge = <6>; 1477 1478 label = "riva"; 1479 1480 wcnss { 1481 compatible = "qcom,wcnss"; 1482 qcom,smd-channels = "WCNSS_CTRL"; 1483 1484 qcom,mmio = <&riva>; 1485 1486 bluetooth { 1487 compatible = "qcom,wcnss-bt"; 1488 }; 1489 1490 wifi { 1491 compatible = "qcom,wcnss-wlan"; 1492 1493 interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>, 1494 <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>; 1495 interrupt-names = "tx", "rx"; 1496 1497 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>; 1498 qcom,smem-state-names = "tx-enable", "tx-rings-empty"; 1499 }; 1500 }; 1501 }; 1502 }; 1503 1504 etb@1a01000 { 1505 compatible = "arm,coresight-etb10", "arm,primecell"; 1506 reg = <0x1a01000 0x1000>; 1507 1508 clocks = <&rpmcc RPM_QDSS_CLK>; 1509 clock-names = "apb_pclk"; 1510 1511 in-ports { 1512 port { 1513 etb_in: endpoint { 1514 remote-endpoint = <&replicator_out0>; 1515 }; 1516 }; 1517 }; 1518 }; 1519 1520 tpiu@1a03000 { 1521 compatible = "arm,coresight-tpiu", "arm,primecell"; 1522 reg = <0x1a03000 0x1000>; 1523 1524 clocks = <&rpmcc RPM_QDSS_CLK>; 1525 clock-names = "apb_pclk"; 1526 1527 in-ports { 1528 port { 1529 tpiu_in: endpoint { 1530 remote-endpoint = <&replicator_out1>; 1531 }; 1532 }; 1533 }; 1534 }; 1535 1536 replicator { 1537 compatible = "arm,coresight-static-replicator"; 1538 1539 clocks = <&rpmcc RPM_QDSS_CLK>; 1540 clock-names = "apb_pclk"; 1541 1542 out-ports { 1543 #address-cells = <1>; 1544 #size-cells = <0>; 1545 1546 port@0 { 1547 reg = <0>; 1548 replicator_out0: endpoint { 1549 remote-endpoint = <&etb_in>; 1550 }; 1551 }; 1552 port@1 { 1553 reg = <1>; 1554 replicator_out1: endpoint { 1555 remote-endpoint = <&tpiu_in>; 1556 }; 1557 }; 1558 }; 1559 1560 in-ports { 1561 port { 1562 replicator_in: endpoint { 1563 remote-endpoint = <&funnel_out>; 1564 }; 1565 }; 1566 }; 1567 }; 1568 1569 funnel@1a04000 { 1570 compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; 1571 reg = <0x1a04000 0x1000>; 1572 1573 clocks = <&rpmcc RPM_QDSS_CLK>; 1574 clock-names = "apb_pclk"; 1575 1576 in-ports { 1577 #address-cells = <1>; 1578 #size-cells = <0>; 1579 1580 /* 1581 * Not described input ports: 1582 * 2 - connected to STM component 1583 * 3 - not-connected 1584 * 6 - not-connected 1585 * 7 - not-connected 1586 */ 1587 port@0 { 1588 reg = <0>; 1589 funnel_in0: endpoint { 1590 remote-endpoint = <&etm0_out>; 1591 }; 1592 }; 1593 port@1 { 1594 reg = <1>; 1595 funnel_in1: endpoint { 1596 remote-endpoint = <&etm1_out>; 1597 }; 1598 }; 1599 port@4 { 1600 reg = <4>; 1601 funnel_in4: endpoint { 1602 remote-endpoint = <&etm2_out>; 1603 }; 1604 }; 1605 port@5 { 1606 reg = <5>; 1607 funnel_in5: endpoint { 1608 remote-endpoint = <&etm3_out>; 1609 }; 1610 }; 1611 }; 1612 1613 out-ports { 1614 port { 1615 funnel_out: endpoint { 1616 remote-endpoint = <&replicator_in>; 1617 }; 1618 }; 1619 }; 1620 }; 1621 1622 etm@1a1c000 { 1623 compatible = "arm,coresight-etm3x", "arm,primecell"; 1624 reg = <0x1a1c000 0x1000>; 1625 1626 clocks = <&rpmcc RPM_QDSS_CLK>; 1627 clock-names = "apb_pclk"; 1628 1629 cpu = <&CPU0>; 1630 1631 out-ports { 1632 port { 1633 etm0_out: endpoint { 1634 remote-endpoint = <&funnel_in0>; 1635 }; 1636 }; 1637 }; 1638 }; 1639 1640 etm@1a1d000 { 1641 compatible = "arm,coresight-etm3x", "arm,primecell"; 1642 reg = <0x1a1d000 0x1000>; 1643 1644 clocks = <&rpmcc RPM_QDSS_CLK>; 1645 clock-names = "apb_pclk"; 1646 1647 cpu = <&CPU1>; 1648 1649 out-ports { 1650 port { 1651 etm1_out: endpoint { 1652 remote-endpoint = <&funnel_in1>; 1653 }; 1654 }; 1655 }; 1656 }; 1657 1658 etm@1a1e000 { 1659 compatible = "arm,coresight-etm3x", "arm,primecell"; 1660 reg = <0x1a1e000 0x1000>; 1661 1662 clocks = <&rpmcc RPM_QDSS_CLK>; 1663 clock-names = "apb_pclk"; 1664 1665 cpu = <&CPU2>; 1666 1667 out-ports { 1668 port { 1669 etm2_out: endpoint { 1670 remote-endpoint = <&funnel_in4>; 1671 }; 1672 }; 1673 }; 1674 }; 1675 1676 etm@1a1f000 { 1677 compatible = "arm,coresight-etm3x", "arm,primecell"; 1678 reg = <0x1a1f000 0x1000>; 1679 1680 clocks = <&rpmcc RPM_QDSS_CLK>; 1681 clock-names = "apb_pclk"; 1682 1683 cpu = <&CPU3>; 1684 1685 out-ports { 1686 port { 1687 etm3_out: endpoint { 1688 remote-endpoint = <&funnel_in5>; 1689 }; 1690 }; 1691 }; 1692 }; 1693 }; 1694}; 1695#include "qcom-apq8064-pins.dtsi" 1696