1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved. 4 */ 5 6#include <dt-bindings/clock/qcom,rpmh.h> 7#include <dt-bindings/clock/qcom,sm4450-gcc.h> 8#include <dt-bindings/gpio/gpio.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h> 10#include <dt-bindings/soc/qcom,rpmh-rsc.h> 11 12/ { 13 interrupt-parent = <&intc>; 14 15 #address-cells = <2>; 16 #size-cells = <2>; 17 18 chosen { }; 19 20 clocks { 21 xo_board: xo-board { 22 compatible = "fixed-clock"; 23 clock-frequency = <76800000>; 24 #clock-cells = <0>; 25 }; 26 27 sleep_clk: sleep-clk { 28 compatible = "fixed-clock"; 29 clock-frequency = <32000>; 30 #clock-cells = <0>; 31 }; 32 }; 33 34 cpus { 35 #address-cells = <2>; 36 #size-cells = <0>; 37 38 CPU0: cpu@0 { 39 device_type = "cpu"; 40 compatible = "arm,cortex-a55"; 41 reg = <0x0 0x0>; 42 enable-method = "psci"; 43 next-level-cache = <&L2_0>; 44 power-domains = <&CPU_PD0>; 45 power-domain-names = "psci"; 46 #cooling-cells = <2>; 47 48 L2_0: l2-cache { 49 compatible = "cache"; 50 cache-level = <2>; 51 cache-unified; 52 next-level-cache = <&L3_0>; 53 54 L3_0: l3-cache { 55 compatible = "cache"; 56 cache-level = <3>; 57 cache-unified; 58 }; 59 }; 60 }; 61 62 CPU1: cpu@100 { 63 device_type = "cpu"; 64 compatible = "arm,cortex-a55"; 65 reg = <0x0 0x100>; 66 enable-method = "psci"; 67 next-level-cache = <&L2_100>; 68 power-domains = <&CPU_PD0>; 69 power-domain-names = "psci"; 70 #cooling-cells = <2>; 71 72 L2_100: l2-cache { 73 compatible = "cache"; 74 cache-level = <2>; 75 cache-unified; 76 next-level-cache = <&L3_0>; 77 }; 78 }; 79 80 CPU2: cpu@200 { 81 device_type = "cpu"; 82 compatible = "arm,cortex-a55"; 83 reg = <0x0 0x200>; 84 enable-method = "psci"; 85 next-level-cache = <&L2_200>; 86 power-domains = <&CPU_PD0>; 87 power-domain-names = "psci"; 88 #cooling-cells = <2>; 89 90 L2_200: l2-cache { 91 compatible = "cache"; 92 cache-level = <2>; 93 cache-unified; 94 next-level-cache = <&L3_0>; 95 }; 96 }; 97 98 CPU3: cpu@300 { 99 device_type = "cpu"; 100 compatible = "arm,cortex-a55"; 101 reg = <0x0 0x300>; 102 enable-method = "psci"; 103 next-level-cache = <&L2_300>; 104 power-domains = <&CPU_PD0>; 105 power-domain-names = "psci"; 106 #cooling-cells = <2>; 107 108 L2_300: l2-cache { 109 compatible = "cache"; 110 cache-level = <2>; 111 cache-unified; 112 next-level-cache = <&L3_0>; 113 }; 114 }; 115 116 CPU4: cpu@400 { 117 device_type = "cpu"; 118 compatible = "arm,cortex-a55"; 119 reg = <0x0 0x400>; 120 enable-method = "psci"; 121 next-level-cache = <&L2_400>; 122 power-domains = <&CPU_PD0>; 123 power-domain-names = "psci"; 124 #cooling-cells = <2>; 125 126 L2_400: l2-cache { 127 compatible = "cache"; 128 cache-level = <2>; 129 cache-unified; 130 next-level-cache = <&L3_0>; 131 }; 132 }; 133 134 CPU5: cpu@500 { 135 device_type = "cpu"; 136 compatible = "arm,cortex-a55"; 137 reg = <0x0 0x500>; 138 enable-method = "psci"; 139 next-level-cache = <&L2_500>; 140 power-domains = <&CPU_PD0>; 141 power-domain-names = "psci"; 142 #cooling-cells = <2>; 143 144 L2_500: l2-cache { 145 compatible = "cache"; 146 cache-level = <2>; 147 cache-unified; 148 next-level-cache = <&L3_0>; 149 }; 150 }; 151 152 CPU6: cpu@600 { 153 device_type = "cpu"; 154 compatible = "arm,cortex-a78"; 155 reg = <0x0 0x600>; 156 enable-method = "psci"; 157 next-level-cache = <&L2_600>; 158 power-domains = <&CPU_PD0>; 159 power-domain-names = "psci"; 160 #cooling-cells = <2>; 161 162 L2_600: l2-cache { 163 compatible = "cache"; 164 cache-level = <2>; 165 cache-unified; 166 next-level-cache = <&L3_0>; 167 }; 168 }; 169 170 CPU7: cpu@700 { 171 device_type = "cpu"; 172 compatible = "arm,cortex-a78"; 173 reg = <0x0 0x700>; 174 enable-method = "psci"; 175 next-level-cache = <&L2_700>; 176 power-domains = <&CPU_PD0>; 177 power-domain-names = "psci"; 178 #cooling-cells = <2>; 179 180 L2_700: l2-cache { 181 compatible = "cache"; 182 cache-level = <2>; 183 cache-unified; 184 next-level-cache = <&L3_0>; 185 }; 186 }; 187 188 cpu-map { 189 cluster0 { 190 core0 { 191 cpu = <&CPU0>; 192 }; 193 194 core1 { 195 cpu = <&CPU1>; 196 }; 197 198 core2 { 199 cpu = <&CPU2>; 200 }; 201 202 core3 { 203 cpu = <&CPU3>; 204 }; 205 206 core4 { 207 cpu = <&CPU4>; 208 }; 209 210 core5 { 211 cpu = <&CPU5>; 212 }; 213 214 core6 { 215 cpu = <&CPU6>; 216 }; 217 218 core7 { 219 cpu = <&CPU7>; 220 }; 221 }; 222 }; 223 224 idle-states { 225 entry-method = "psci"; 226 227 LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 { 228 compatible = "arm,idle-state"; 229 arm,psci-suspend-param = <0x40000004>; 230 entry-latency-us = <800>; 231 exit-latency-us = <750>; 232 min-residency-us = <4090>; 233 local-timer-stop; 234 }; 235 236 BIG_CPU_SLEEP_0: cpu-sleep-1-0 { 237 compatible = "arm,idle-state"; 238 arm,psci-suspend-param = <0x40000004>; 239 entry-latency-us = <600>; 240 exit-latency-us = <1550>; 241 min-residency-us = <4791>; 242 local-timer-stop; 243 }; 244 }; 245 246 domain-idle-states { 247 CLUSTER_SLEEP_0: cluster-sleep-0 { 248 compatible = "domain-idle-state"; 249 arm,psci-suspend-param = <0x41000044>; 250 entry-latency-us = <1050>; 251 exit-latency-us = <2500>; 252 min-residency-us = <5309>; 253 }; 254 255 CLUSTER_SLEEP_1: cluster-sleep-1 { 256 compatible = "domain-idle-state"; 257 arm,psci-suspend-param = <0x41003344>; 258 entry-latency-us = <1561>; 259 exit-latency-us = <2801>; 260 min-residency-us = <8550>; 261 }; 262 }; 263 }; 264 265 memory@a0000000 { 266 device_type = "memory"; 267 /* We expect the bootloader to fill in the size */ 268 reg = <0x0 0xa0000000 0x0 0x0>; 269 }; 270 271 pmu { 272 compatible = "arm,armv8-pmuv3"; 273 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 274 }; 275 276 psci { 277 compatible = "arm,psci-1.0"; 278 method = "smc"; 279 280 CPU_PD0: power-domain-cpu0 { 281 #power-domain-cells = <0>; 282 power-domains = <&CLUSTER_PD>; 283 domain-idle-states = <&LITTLE_CPU_SLEEP_0>; 284 }; 285 286 CPU_PD1: power-domain-cpu1 { 287 #power-domain-cells = <0>; 288 power-domains = <&CLUSTER_PD>; 289 domain-idle-states = <&LITTLE_CPU_SLEEP_0>; 290 }; 291 292 CPU_PD2: power-domain-cpu2 { 293 #power-domain-cells = <0>; 294 power-domains = <&CLUSTER_PD>; 295 domain-idle-states = <&LITTLE_CPU_SLEEP_0>; 296 }; 297 298 CPU_PD3: power-domain-cpu3 { 299 #power-domain-cells = <0>; 300 power-domains = <&CLUSTER_PD>; 301 domain-idle-states = <&LITTLE_CPU_SLEEP_0>; 302 }; 303 304 CPU_PD4: power-domain-cpu4 { 305 #power-domain-cells = <0>; 306 power-domains = <&CLUSTER_PD>; 307 domain-idle-states = <&BIG_CPU_SLEEP_0>; 308 }; 309 310 CPU_PD5: power-domain-cpu5 { 311 #power-domain-cells = <0>; 312 power-domains = <&CLUSTER_PD>; 313 domain-idle-states = <&BIG_CPU_SLEEP_0>; 314 }; 315 316 CPU_PD6: power-domain-cpu6 { 317 #power-domain-cells = <0>; 318 power-domains = <&CLUSTER_PD>; 319 domain-idle-states = <&BIG_CPU_SLEEP_0>; 320 }; 321 322 CPU_PD7: power-domain-cpu7 { 323 #power-domain-cells = <0>; 324 power-domains = <&CLUSTER_PD>; 325 domain-idle-states = <&BIG_CPU_SLEEP_0>; 326 }; 327 328 CLUSTER_PD: power-domain-cpu-cluster0 { 329 #power-domain-cells = <0>; 330 domain-idle-states = <&CLUSTER_SLEEP_0>, <&CLUSTER_SLEEP_1>; 331 }; 332 }; 333 334 reserved_memory: reserved-memory { 335 #address-cells = <2>; 336 #size-cells = <2>; 337 ranges; 338 339 aop_cmd_db_mem: cmd-db@80860000 { 340 compatible = "qcom,cmd-db"; 341 reg = <0x0 0x80860000 0x0 0x20000>; 342 no-map; 343 }; 344 }; 345 346 soc: soc@0 { 347 #address-cells = <2>; 348 #size-cells = <2>; 349 ranges = <0 0 0 0 0x10 0>; 350 dma-ranges = <0 0 0 0 0x10 0>; 351 compatible = "simple-bus"; 352 353 gcc: clock-controller@100000 { 354 compatible = "qcom,sm4450-gcc"; 355 reg = <0x0 0x00100000 0x0 0x1f4200>; 356 #clock-cells = <1>; 357 #reset-cells = <1>; 358 #power-domain-cells = <1>; 359 clocks = <&rpmhcc RPMH_CXO_CLK>, 360 <&sleep_clk>, 361 <0>, 362 <0>, 363 <0>, 364 <0>; 365 }; 366 367 qupv3_id_0: geniqup@ac0000 { 368 compatible = "qcom,geni-se-qup"; 369 reg = <0x0 0x00ac0000 0x0 0x2000>; 370 ranges; 371 clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>, 372 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>; 373 clock-names = "m-ahb", "s-ahb"; 374 #address-cells = <2>; 375 #size-cells = <2>; 376 status = "disabled"; 377 378 uart7: serial@a88000 { 379 compatible = "qcom,geni-debug-uart"; 380 reg = <0x0 0x00a88000 0x0 0x4000>; 381 clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>; 382 clock-names = "se"; 383 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; 384 pinctrl-0 = <&qup_uart7_tx>, <&qup_uart7_rx>; 385 pinctrl-names = "default"; 386 status = "disabled"; 387 }; 388 }; 389 390 tcsr_mutex: hwlock@1f40000 { 391 compatible = "qcom,tcsr-mutex"; 392 reg = <0x0 0x01f40000 0x0 0x40000>; 393 #hwlock-cells = <1>; 394 }; 395 396 pdc: interrupt-controller@b220000 { 397 compatible = "qcom,sm4450-pdc", "qcom,pdc"; 398 reg = <0 0x0b220000 0 0x30000>, <0 0x174000f0 0 0x64>; 399 qcom,pdc-ranges = <0 480 94>, <94 494 31>, 400 <125 63 1>; 401 #interrupt-cells = <2>; 402 interrupt-parent = <&intc>; 403 interrupt-controller; 404 }; 405 406 tlmm: pinctrl@f100000 { 407 compatible = "qcom,sm4450-tlmm"; 408 reg = <0x0 0x0f100000 0x0 0x300000>; 409 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 410 gpio-controller; 411 #gpio-cells = <2>; 412 interrupt-controller; 413 #interrupt-cells = <2>; 414 gpio-ranges = <&tlmm 0 0 137>; 415 wakeup-parent = <&pdc>; 416 417 qup_uart7_rx: qup-uart7-rx-state { 418 pins = "gpio23"; 419 function = "qup1_se2_l2"; 420 drive-strength = <2>; 421 bias-disable; 422 }; 423 424 qup_uart7_tx: qup-uart7-tx-state { 425 pins = "gpio22"; 426 function = "qup1_se2_l2"; 427 drive-strength = <2>; 428 bias-disable; 429 }; 430 }; 431 432 intc: interrupt-controller@17200000 { 433 compatible = "arm,gic-v3"; 434 reg = <0x0 0x17200000 0x0 0x10000>, /* GICD */ 435 <0x0 0x17260000 0x0 0x100000>; /* GICR * 8 */ 436 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>; 437 #interrupt-cells = <3>; 438 interrupt-controller; 439 #redistributor-regions = <1>; 440 redistributor-stride = <0x0 0x20000>; 441 }; 442 443 timer@17420000 { 444 compatible = "arm,armv7-timer-mem"; 445 reg = <0x0 0x17420000 0x0 0x1000>; 446 ranges = <0 0 0 0x20000000>; 447 #address-cells = <1>; 448 #size-cells = <1>; 449 450 frame@17421000 { 451 reg = <0x17421000 0x1000>, 452 <0x17422000 0x1000>; 453 frame-number = <0>; 454 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 455 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 456 }; 457 458 frame@17423000 { 459 reg = <0x17423000 0x1000>; 460 frame-number = <1>; 461 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 462 status = "disabled"; 463 }; 464 465 frame@17425000 { 466 reg = <0x17425000 0x1000>; 467 frame-number = <2>; 468 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 469 status = "disabled"; 470 }; 471 472 frame@17427000 { 473 reg = <0x17427000 0x1000>; 474 frame-number = <3>; 475 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 476 status = "disabled"; 477 }; 478 479 frame@17429000 { 480 reg = <0x17429000 0x1000>; 481 frame-number = <4>; 482 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 483 status = "disabled"; 484 }; 485 486 frame@1742b000 { 487 reg = <0x1742b000 0x1000>; 488 frame-number = <5>; 489 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 490 status = "disabled"; 491 }; 492 493 frame@1742d000 { 494 reg = <0x1742d000 0x1000>; 495 frame-number = <6>; 496 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 497 status = "disabled"; 498 }; 499 }; 500 501 apps_rsc: rsc@17a00000 { 502 compatible = "qcom,rpmh-rsc"; 503 reg = <0x0 0x17a00000 0x0 0x10000>, 504 <0x0 0x17a10000 0x0 0x10000>, 505 <0x0 0x17a20000 0x0 0x10000>; 506 reg-names = "drv-0", "drv-1", "drv-2"; 507 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 508 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 509 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 510 label = "apps_rsc"; 511 qcom,tcs-offset = <0xd00>; 512 qcom,drv-id = <2>; 513 qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>, 514 <WAKE_TCS 3>, <CONTROL_TCS 0>; 515 power-domains = <&CLUSTER_PD>; 516 517 apps_bcm_voter: bcm-voter { 518 compatible = "qcom,bcm-voter"; 519 }; 520 521 rpmhcc: clock-controller { 522 compatible = "qcom,sm4450-rpmh-clk"; 523 #clock-cells = <1>; 524 clocks = <&xo_board>; 525 clock-names = "xo"; 526 }; 527 }; 528 529 }; 530 531 timer { 532 compatible = "arm,armv8-timer"; 533 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 534 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 535 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 536 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 537 }; 538}; 539