1aa1a8ff2SEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause 2aa1a8ff2SEmmanuel Vadot/* 3aa1a8ff2SEmmanuel Vadot * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved. 4aa1a8ff2SEmmanuel Vadot */ 5aa1a8ff2SEmmanuel Vadot 68d13bc63SEmmanuel Vadot#include <dt-bindings/clock/qcom,rpmh.h> 7*b2d2a78aSEmmanuel Vadot#include <dt-bindings/clock/qcom,sm4450-camcc.h> 8*b2d2a78aSEmmanuel Vadot#include <dt-bindings/clock/qcom,sm4450-dispcc.h> 98d13bc63SEmmanuel Vadot#include <dt-bindings/clock/qcom,sm4450-gcc.h> 10*b2d2a78aSEmmanuel Vadot#include <dt-bindings/clock/qcom,sm4450-gpucc.h> 11aa1a8ff2SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 12aa1a8ff2SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 138d13bc63SEmmanuel Vadot#include <dt-bindings/soc/qcom,rpmh-rsc.h> 14aa1a8ff2SEmmanuel Vadot 15aa1a8ff2SEmmanuel Vadot/ { 16aa1a8ff2SEmmanuel Vadot interrupt-parent = <&intc>; 17aa1a8ff2SEmmanuel Vadot 18aa1a8ff2SEmmanuel Vadot #address-cells = <2>; 19aa1a8ff2SEmmanuel Vadot #size-cells = <2>; 20aa1a8ff2SEmmanuel Vadot 21aa1a8ff2SEmmanuel Vadot chosen { }; 22aa1a8ff2SEmmanuel Vadot 23aa1a8ff2SEmmanuel Vadot clocks { 24aa1a8ff2SEmmanuel Vadot xo_board: xo-board { 25aa1a8ff2SEmmanuel Vadot compatible = "fixed-clock"; 26aa1a8ff2SEmmanuel Vadot clock-frequency = <76800000>; 27aa1a8ff2SEmmanuel Vadot #clock-cells = <0>; 28aa1a8ff2SEmmanuel Vadot }; 29aa1a8ff2SEmmanuel Vadot 30aa1a8ff2SEmmanuel Vadot sleep_clk: sleep-clk { 31aa1a8ff2SEmmanuel Vadot compatible = "fixed-clock"; 32aa1a8ff2SEmmanuel Vadot clock-frequency = <32000>; 33aa1a8ff2SEmmanuel Vadot #clock-cells = <0>; 34aa1a8ff2SEmmanuel Vadot }; 350e8011faSEmmanuel Vadot 360e8011faSEmmanuel Vadot bi_tcxo_div2: bi-tcxo-div2-clk { 370e8011faSEmmanuel Vadot #clock-cells = <0>; 380e8011faSEmmanuel Vadot compatible = "fixed-factor-clock"; 390e8011faSEmmanuel Vadot clocks = <&rpmhcc RPMH_CXO_CLK>; 400e8011faSEmmanuel Vadot clock-mult = <1>; 410e8011faSEmmanuel Vadot clock-div = <2>; 420e8011faSEmmanuel Vadot }; 43aa1a8ff2SEmmanuel Vadot }; 44aa1a8ff2SEmmanuel Vadot 45aa1a8ff2SEmmanuel Vadot cpus { 46aa1a8ff2SEmmanuel Vadot #address-cells = <2>; 47aa1a8ff2SEmmanuel Vadot #size-cells = <0>; 48aa1a8ff2SEmmanuel Vadot 49aa1a8ff2SEmmanuel Vadot CPU0: cpu@0 { 50aa1a8ff2SEmmanuel Vadot device_type = "cpu"; 51aa1a8ff2SEmmanuel Vadot compatible = "arm,cortex-a55"; 52aa1a8ff2SEmmanuel Vadot reg = <0x0 0x0>; 530e8011faSEmmanuel Vadot clocks = <&cpufreq_hw 0>; 54aa1a8ff2SEmmanuel Vadot enable-method = "psci"; 55aa1a8ff2SEmmanuel Vadot next-level-cache = <&L2_0>; 56aa1a8ff2SEmmanuel Vadot power-domains = <&CPU_PD0>; 57aa1a8ff2SEmmanuel Vadot power-domain-names = "psci"; 580e8011faSEmmanuel Vadot qcom,freq-domain = <&cpufreq_hw 0>; 59aa1a8ff2SEmmanuel Vadot #cooling-cells = <2>; 60aa1a8ff2SEmmanuel Vadot 61aa1a8ff2SEmmanuel Vadot L2_0: l2-cache { 62aa1a8ff2SEmmanuel Vadot compatible = "cache"; 63aa1a8ff2SEmmanuel Vadot cache-level = <2>; 64aa1a8ff2SEmmanuel Vadot cache-unified; 65aa1a8ff2SEmmanuel Vadot next-level-cache = <&L3_0>; 66aa1a8ff2SEmmanuel Vadot 67aa1a8ff2SEmmanuel Vadot L3_0: l3-cache { 68aa1a8ff2SEmmanuel Vadot compatible = "cache"; 69aa1a8ff2SEmmanuel Vadot cache-level = <3>; 70aa1a8ff2SEmmanuel Vadot cache-unified; 71aa1a8ff2SEmmanuel Vadot }; 72aa1a8ff2SEmmanuel Vadot }; 73aa1a8ff2SEmmanuel Vadot }; 74aa1a8ff2SEmmanuel Vadot 75aa1a8ff2SEmmanuel Vadot CPU1: cpu@100 { 76aa1a8ff2SEmmanuel Vadot device_type = "cpu"; 77aa1a8ff2SEmmanuel Vadot compatible = "arm,cortex-a55"; 78aa1a8ff2SEmmanuel Vadot reg = <0x0 0x100>; 790e8011faSEmmanuel Vadot clocks = <&cpufreq_hw 0>; 80aa1a8ff2SEmmanuel Vadot enable-method = "psci"; 81aa1a8ff2SEmmanuel Vadot next-level-cache = <&L2_100>; 82aa1a8ff2SEmmanuel Vadot power-domains = <&CPU_PD0>; 83aa1a8ff2SEmmanuel Vadot power-domain-names = "psci"; 840e8011faSEmmanuel Vadot qcom,freq-domain = <&cpufreq_hw 0>; 85aa1a8ff2SEmmanuel Vadot #cooling-cells = <2>; 86aa1a8ff2SEmmanuel Vadot 87aa1a8ff2SEmmanuel Vadot L2_100: l2-cache { 88aa1a8ff2SEmmanuel Vadot compatible = "cache"; 89aa1a8ff2SEmmanuel Vadot cache-level = <2>; 90aa1a8ff2SEmmanuel Vadot cache-unified; 91aa1a8ff2SEmmanuel Vadot next-level-cache = <&L3_0>; 92aa1a8ff2SEmmanuel Vadot }; 93aa1a8ff2SEmmanuel Vadot }; 94aa1a8ff2SEmmanuel Vadot 95aa1a8ff2SEmmanuel Vadot CPU2: cpu@200 { 96aa1a8ff2SEmmanuel Vadot device_type = "cpu"; 97aa1a8ff2SEmmanuel Vadot compatible = "arm,cortex-a55"; 98aa1a8ff2SEmmanuel Vadot reg = <0x0 0x200>; 990e8011faSEmmanuel Vadot clocks = <&cpufreq_hw 0>; 100aa1a8ff2SEmmanuel Vadot enable-method = "psci"; 101aa1a8ff2SEmmanuel Vadot next-level-cache = <&L2_200>; 102aa1a8ff2SEmmanuel Vadot power-domains = <&CPU_PD0>; 103aa1a8ff2SEmmanuel Vadot power-domain-names = "psci"; 1040e8011faSEmmanuel Vadot qcom,freq-domain = <&cpufreq_hw 0>; 105aa1a8ff2SEmmanuel Vadot #cooling-cells = <2>; 106aa1a8ff2SEmmanuel Vadot 107aa1a8ff2SEmmanuel Vadot L2_200: l2-cache { 108aa1a8ff2SEmmanuel Vadot compatible = "cache"; 109aa1a8ff2SEmmanuel Vadot cache-level = <2>; 110aa1a8ff2SEmmanuel Vadot cache-unified; 111aa1a8ff2SEmmanuel Vadot next-level-cache = <&L3_0>; 112aa1a8ff2SEmmanuel Vadot }; 113aa1a8ff2SEmmanuel Vadot }; 114aa1a8ff2SEmmanuel Vadot 115aa1a8ff2SEmmanuel Vadot CPU3: cpu@300 { 116aa1a8ff2SEmmanuel Vadot device_type = "cpu"; 117aa1a8ff2SEmmanuel Vadot compatible = "arm,cortex-a55"; 118aa1a8ff2SEmmanuel Vadot reg = <0x0 0x300>; 1190e8011faSEmmanuel Vadot clocks = <&cpufreq_hw 0>; 120aa1a8ff2SEmmanuel Vadot enable-method = "psci"; 121aa1a8ff2SEmmanuel Vadot next-level-cache = <&L2_300>; 122aa1a8ff2SEmmanuel Vadot power-domains = <&CPU_PD0>; 123aa1a8ff2SEmmanuel Vadot power-domain-names = "psci"; 1240e8011faSEmmanuel Vadot qcom,freq-domain = <&cpufreq_hw 0>; 125aa1a8ff2SEmmanuel Vadot #cooling-cells = <2>; 126aa1a8ff2SEmmanuel Vadot 127aa1a8ff2SEmmanuel Vadot L2_300: l2-cache { 128aa1a8ff2SEmmanuel Vadot compatible = "cache"; 129aa1a8ff2SEmmanuel Vadot cache-level = <2>; 130aa1a8ff2SEmmanuel Vadot cache-unified; 131aa1a8ff2SEmmanuel Vadot next-level-cache = <&L3_0>; 132aa1a8ff2SEmmanuel Vadot }; 133aa1a8ff2SEmmanuel Vadot }; 134aa1a8ff2SEmmanuel Vadot 135aa1a8ff2SEmmanuel Vadot CPU4: cpu@400 { 136aa1a8ff2SEmmanuel Vadot device_type = "cpu"; 137aa1a8ff2SEmmanuel Vadot compatible = "arm,cortex-a55"; 138aa1a8ff2SEmmanuel Vadot reg = <0x0 0x400>; 1390e8011faSEmmanuel Vadot clocks = <&cpufreq_hw 0>; 140aa1a8ff2SEmmanuel Vadot enable-method = "psci"; 141aa1a8ff2SEmmanuel Vadot next-level-cache = <&L2_400>; 142aa1a8ff2SEmmanuel Vadot power-domains = <&CPU_PD0>; 143aa1a8ff2SEmmanuel Vadot power-domain-names = "psci"; 1440e8011faSEmmanuel Vadot qcom,freq-domain = <&cpufreq_hw 0>; 145aa1a8ff2SEmmanuel Vadot #cooling-cells = <2>; 146aa1a8ff2SEmmanuel Vadot 147aa1a8ff2SEmmanuel Vadot L2_400: l2-cache { 148aa1a8ff2SEmmanuel Vadot compatible = "cache"; 149aa1a8ff2SEmmanuel Vadot cache-level = <2>; 150aa1a8ff2SEmmanuel Vadot cache-unified; 151aa1a8ff2SEmmanuel Vadot next-level-cache = <&L3_0>; 152aa1a8ff2SEmmanuel Vadot }; 153aa1a8ff2SEmmanuel Vadot }; 154aa1a8ff2SEmmanuel Vadot 155aa1a8ff2SEmmanuel Vadot CPU5: cpu@500 { 156aa1a8ff2SEmmanuel Vadot device_type = "cpu"; 157aa1a8ff2SEmmanuel Vadot compatible = "arm,cortex-a55"; 158aa1a8ff2SEmmanuel Vadot reg = <0x0 0x500>; 1590e8011faSEmmanuel Vadot clocks = <&cpufreq_hw 0>; 160aa1a8ff2SEmmanuel Vadot enable-method = "psci"; 161aa1a8ff2SEmmanuel Vadot next-level-cache = <&L2_500>; 162aa1a8ff2SEmmanuel Vadot power-domains = <&CPU_PD0>; 163aa1a8ff2SEmmanuel Vadot power-domain-names = "psci"; 1640e8011faSEmmanuel Vadot qcom,freq-domain = <&cpufreq_hw 0>; 165aa1a8ff2SEmmanuel Vadot #cooling-cells = <2>; 166aa1a8ff2SEmmanuel Vadot 167aa1a8ff2SEmmanuel Vadot L2_500: l2-cache { 168aa1a8ff2SEmmanuel Vadot compatible = "cache"; 169aa1a8ff2SEmmanuel Vadot cache-level = <2>; 170aa1a8ff2SEmmanuel Vadot cache-unified; 171aa1a8ff2SEmmanuel Vadot next-level-cache = <&L3_0>; 172aa1a8ff2SEmmanuel Vadot }; 173aa1a8ff2SEmmanuel Vadot }; 174aa1a8ff2SEmmanuel Vadot 175aa1a8ff2SEmmanuel Vadot CPU6: cpu@600 { 176aa1a8ff2SEmmanuel Vadot device_type = "cpu"; 177aa1a8ff2SEmmanuel Vadot compatible = "arm,cortex-a78"; 178aa1a8ff2SEmmanuel Vadot reg = <0x0 0x600>; 1790e8011faSEmmanuel Vadot clocks = <&cpufreq_hw 1>; 180aa1a8ff2SEmmanuel Vadot enable-method = "psci"; 181aa1a8ff2SEmmanuel Vadot next-level-cache = <&L2_600>; 182aa1a8ff2SEmmanuel Vadot power-domains = <&CPU_PD0>; 183aa1a8ff2SEmmanuel Vadot power-domain-names = "psci"; 1840e8011faSEmmanuel Vadot qcom,freq-domain = <&cpufreq_hw 1>; 185aa1a8ff2SEmmanuel Vadot #cooling-cells = <2>; 186aa1a8ff2SEmmanuel Vadot 187aa1a8ff2SEmmanuel Vadot L2_600: l2-cache { 188aa1a8ff2SEmmanuel Vadot compatible = "cache"; 189aa1a8ff2SEmmanuel Vadot cache-level = <2>; 190aa1a8ff2SEmmanuel Vadot cache-unified; 191aa1a8ff2SEmmanuel Vadot next-level-cache = <&L3_0>; 192aa1a8ff2SEmmanuel Vadot }; 193aa1a8ff2SEmmanuel Vadot }; 194aa1a8ff2SEmmanuel Vadot 195aa1a8ff2SEmmanuel Vadot CPU7: cpu@700 { 196aa1a8ff2SEmmanuel Vadot device_type = "cpu"; 197aa1a8ff2SEmmanuel Vadot compatible = "arm,cortex-a78"; 198aa1a8ff2SEmmanuel Vadot reg = <0x0 0x700>; 1990e8011faSEmmanuel Vadot clocks = <&cpufreq_hw 1>; 200aa1a8ff2SEmmanuel Vadot enable-method = "psci"; 201aa1a8ff2SEmmanuel Vadot next-level-cache = <&L2_700>; 202aa1a8ff2SEmmanuel Vadot power-domains = <&CPU_PD0>; 203aa1a8ff2SEmmanuel Vadot power-domain-names = "psci"; 2040e8011faSEmmanuel Vadot qcom,freq-domain = <&cpufreq_hw 1>; 205aa1a8ff2SEmmanuel Vadot #cooling-cells = <2>; 206aa1a8ff2SEmmanuel Vadot 207aa1a8ff2SEmmanuel Vadot L2_700: l2-cache { 208aa1a8ff2SEmmanuel Vadot compatible = "cache"; 209aa1a8ff2SEmmanuel Vadot cache-level = <2>; 210aa1a8ff2SEmmanuel Vadot cache-unified; 211aa1a8ff2SEmmanuel Vadot next-level-cache = <&L3_0>; 212aa1a8ff2SEmmanuel Vadot }; 213aa1a8ff2SEmmanuel Vadot }; 214aa1a8ff2SEmmanuel Vadot 215aa1a8ff2SEmmanuel Vadot cpu-map { 216aa1a8ff2SEmmanuel Vadot cluster0 { 217aa1a8ff2SEmmanuel Vadot core0 { 218aa1a8ff2SEmmanuel Vadot cpu = <&CPU0>; 219aa1a8ff2SEmmanuel Vadot }; 220aa1a8ff2SEmmanuel Vadot 221aa1a8ff2SEmmanuel Vadot core1 { 222aa1a8ff2SEmmanuel Vadot cpu = <&CPU1>; 223aa1a8ff2SEmmanuel Vadot }; 224aa1a8ff2SEmmanuel Vadot 225aa1a8ff2SEmmanuel Vadot core2 { 226aa1a8ff2SEmmanuel Vadot cpu = <&CPU2>; 227aa1a8ff2SEmmanuel Vadot }; 228aa1a8ff2SEmmanuel Vadot 229aa1a8ff2SEmmanuel Vadot core3 { 230aa1a8ff2SEmmanuel Vadot cpu = <&CPU3>; 231aa1a8ff2SEmmanuel Vadot }; 232aa1a8ff2SEmmanuel Vadot 233aa1a8ff2SEmmanuel Vadot core4 { 234aa1a8ff2SEmmanuel Vadot cpu = <&CPU4>; 235aa1a8ff2SEmmanuel Vadot }; 236aa1a8ff2SEmmanuel Vadot 237aa1a8ff2SEmmanuel Vadot core5 { 238aa1a8ff2SEmmanuel Vadot cpu = <&CPU5>; 239aa1a8ff2SEmmanuel Vadot }; 240aa1a8ff2SEmmanuel Vadot 241aa1a8ff2SEmmanuel Vadot core6 { 242aa1a8ff2SEmmanuel Vadot cpu = <&CPU6>; 243aa1a8ff2SEmmanuel Vadot }; 244aa1a8ff2SEmmanuel Vadot 245aa1a8ff2SEmmanuel Vadot core7 { 246aa1a8ff2SEmmanuel Vadot cpu = <&CPU7>; 247aa1a8ff2SEmmanuel Vadot }; 248aa1a8ff2SEmmanuel Vadot }; 249aa1a8ff2SEmmanuel Vadot }; 250aa1a8ff2SEmmanuel Vadot 251aa1a8ff2SEmmanuel Vadot idle-states { 252aa1a8ff2SEmmanuel Vadot entry-method = "psci"; 253aa1a8ff2SEmmanuel Vadot 254aa1a8ff2SEmmanuel Vadot LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 { 255aa1a8ff2SEmmanuel Vadot compatible = "arm,idle-state"; 256aa1a8ff2SEmmanuel Vadot arm,psci-suspend-param = <0x40000004>; 257aa1a8ff2SEmmanuel Vadot entry-latency-us = <800>; 258aa1a8ff2SEmmanuel Vadot exit-latency-us = <750>; 259aa1a8ff2SEmmanuel Vadot min-residency-us = <4090>; 260aa1a8ff2SEmmanuel Vadot local-timer-stop; 261aa1a8ff2SEmmanuel Vadot }; 262aa1a8ff2SEmmanuel Vadot 263aa1a8ff2SEmmanuel Vadot BIG_CPU_SLEEP_0: cpu-sleep-1-0 { 264aa1a8ff2SEmmanuel Vadot compatible = "arm,idle-state"; 265aa1a8ff2SEmmanuel Vadot arm,psci-suspend-param = <0x40000004>; 266aa1a8ff2SEmmanuel Vadot entry-latency-us = <600>; 267aa1a8ff2SEmmanuel Vadot exit-latency-us = <1550>; 268aa1a8ff2SEmmanuel Vadot min-residency-us = <4791>; 269aa1a8ff2SEmmanuel Vadot local-timer-stop; 270aa1a8ff2SEmmanuel Vadot }; 271aa1a8ff2SEmmanuel Vadot }; 272aa1a8ff2SEmmanuel Vadot 273aa1a8ff2SEmmanuel Vadot domain-idle-states { 274aa1a8ff2SEmmanuel Vadot CLUSTER_SLEEP_0: cluster-sleep-0 { 275aa1a8ff2SEmmanuel Vadot compatible = "domain-idle-state"; 276aa1a8ff2SEmmanuel Vadot arm,psci-suspend-param = <0x41000044>; 277aa1a8ff2SEmmanuel Vadot entry-latency-us = <1050>; 278aa1a8ff2SEmmanuel Vadot exit-latency-us = <2500>; 279aa1a8ff2SEmmanuel Vadot min-residency-us = <5309>; 280aa1a8ff2SEmmanuel Vadot }; 281aa1a8ff2SEmmanuel Vadot 282aa1a8ff2SEmmanuel Vadot CLUSTER_SLEEP_1: cluster-sleep-1 { 283aa1a8ff2SEmmanuel Vadot compatible = "domain-idle-state"; 284aa1a8ff2SEmmanuel Vadot arm,psci-suspend-param = <0x41003344>; 285aa1a8ff2SEmmanuel Vadot entry-latency-us = <1561>; 286aa1a8ff2SEmmanuel Vadot exit-latency-us = <2801>; 287aa1a8ff2SEmmanuel Vadot min-residency-us = <8550>; 288aa1a8ff2SEmmanuel Vadot }; 289aa1a8ff2SEmmanuel Vadot }; 290aa1a8ff2SEmmanuel Vadot }; 291aa1a8ff2SEmmanuel Vadot 292aa1a8ff2SEmmanuel Vadot memory@a0000000 { 293aa1a8ff2SEmmanuel Vadot device_type = "memory"; 294aa1a8ff2SEmmanuel Vadot /* We expect the bootloader to fill in the size */ 295aa1a8ff2SEmmanuel Vadot reg = <0x0 0xa0000000 0x0 0x0>; 296aa1a8ff2SEmmanuel Vadot }; 297aa1a8ff2SEmmanuel Vadot 2980e8011faSEmmanuel Vadot pmu-a55 { 2990e8011faSEmmanuel Vadot compatible = "arm,cortex-a55-pmu"; 3000e8011faSEmmanuel Vadot interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>; 3010e8011faSEmmanuel Vadot }; 3020e8011faSEmmanuel Vadot 3030e8011faSEmmanuel Vadot pmu-a78 { 3040e8011faSEmmanuel Vadot compatible = "arm,cortex-a78-pmu"; 3050e8011faSEmmanuel Vadot interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>; 306aa1a8ff2SEmmanuel Vadot }; 307aa1a8ff2SEmmanuel Vadot 308aa1a8ff2SEmmanuel Vadot psci { 309aa1a8ff2SEmmanuel Vadot compatible = "arm,psci-1.0"; 310aa1a8ff2SEmmanuel Vadot method = "smc"; 311aa1a8ff2SEmmanuel Vadot 312aa1a8ff2SEmmanuel Vadot CPU_PD0: power-domain-cpu0 { 313aa1a8ff2SEmmanuel Vadot #power-domain-cells = <0>; 314aa1a8ff2SEmmanuel Vadot power-domains = <&CLUSTER_PD>; 315aa1a8ff2SEmmanuel Vadot domain-idle-states = <&LITTLE_CPU_SLEEP_0>; 316aa1a8ff2SEmmanuel Vadot }; 317aa1a8ff2SEmmanuel Vadot 318aa1a8ff2SEmmanuel Vadot CPU_PD1: power-domain-cpu1 { 319aa1a8ff2SEmmanuel Vadot #power-domain-cells = <0>; 320aa1a8ff2SEmmanuel Vadot power-domains = <&CLUSTER_PD>; 321aa1a8ff2SEmmanuel Vadot domain-idle-states = <&LITTLE_CPU_SLEEP_0>; 322aa1a8ff2SEmmanuel Vadot }; 323aa1a8ff2SEmmanuel Vadot 324aa1a8ff2SEmmanuel Vadot CPU_PD2: power-domain-cpu2 { 325aa1a8ff2SEmmanuel Vadot #power-domain-cells = <0>; 326aa1a8ff2SEmmanuel Vadot power-domains = <&CLUSTER_PD>; 327aa1a8ff2SEmmanuel Vadot domain-idle-states = <&LITTLE_CPU_SLEEP_0>; 328aa1a8ff2SEmmanuel Vadot }; 329aa1a8ff2SEmmanuel Vadot 330aa1a8ff2SEmmanuel Vadot CPU_PD3: power-domain-cpu3 { 331aa1a8ff2SEmmanuel Vadot #power-domain-cells = <0>; 332aa1a8ff2SEmmanuel Vadot power-domains = <&CLUSTER_PD>; 333aa1a8ff2SEmmanuel Vadot domain-idle-states = <&LITTLE_CPU_SLEEP_0>; 334aa1a8ff2SEmmanuel Vadot }; 335aa1a8ff2SEmmanuel Vadot 336aa1a8ff2SEmmanuel Vadot CPU_PD4: power-domain-cpu4 { 337aa1a8ff2SEmmanuel Vadot #power-domain-cells = <0>; 338aa1a8ff2SEmmanuel Vadot power-domains = <&CLUSTER_PD>; 339aa1a8ff2SEmmanuel Vadot domain-idle-states = <&BIG_CPU_SLEEP_0>; 340aa1a8ff2SEmmanuel Vadot }; 341aa1a8ff2SEmmanuel Vadot 342aa1a8ff2SEmmanuel Vadot CPU_PD5: power-domain-cpu5 { 343aa1a8ff2SEmmanuel Vadot #power-domain-cells = <0>; 344aa1a8ff2SEmmanuel Vadot power-domains = <&CLUSTER_PD>; 345aa1a8ff2SEmmanuel Vadot domain-idle-states = <&BIG_CPU_SLEEP_0>; 346aa1a8ff2SEmmanuel Vadot }; 347aa1a8ff2SEmmanuel Vadot 348aa1a8ff2SEmmanuel Vadot CPU_PD6: power-domain-cpu6 { 349aa1a8ff2SEmmanuel Vadot #power-domain-cells = <0>; 350aa1a8ff2SEmmanuel Vadot power-domains = <&CLUSTER_PD>; 351aa1a8ff2SEmmanuel Vadot domain-idle-states = <&BIG_CPU_SLEEP_0>; 352aa1a8ff2SEmmanuel Vadot }; 353aa1a8ff2SEmmanuel Vadot 354aa1a8ff2SEmmanuel Vadot CPU_PD7: power-domain-cpu7 { 355aa1a8ff2SEmmanuel Vadot #power-domain-cells = <0>; 356aa1a8ff2SEmmanuel Vadot power-domains = <&CLUSTER_PD>; 357aa1a8ff2SEmmanuel Vadot domain-idle-states = <&BIG_CPU_SLEEP_0>; 358aa1a8ff2SEmmanuel Vadot }; 359aa1a8ff2SEmmanuel Vadot 360aa1a8ff2SEmmanuel Vadot CLUSTER_PD: power-domain-cpu-cluster0 { 361aa1a8ff2SEmmanuel Vadot #power-domain-cells = <0>; 362aa1a8ff2SEmmanuel Vadot domain-idle-states = <&CLUSTER_SLEEP_0>, <&CLUSTER_SLEEP_1>; 363aa1a8ff2SEmmanuel Vadot }; 364aa1a8ff2SEmmanuel Vadot }; 365aa1a8ff2SEmmanuel Vadot 3668d13bc63SEmmanuel Vadot reserved_memory: reserved-memory { 3678d13bc63SEmmanuel Vadot #address-cells = <2>; 3688d13bc63SEmmanuel Vadot #size-cells = <2>; 3698d13bc63SEmmanuel Vadot ranges; 3708d13bc63SEmmanuel Vadot 3718d13bc63SEmmanuel Vadot aop_cmd_db_mem: cmd-db@80860000 { 3728d13bc63SEmmanuel Vadot compatible = "qcom,cmd-db"; 3738d13bc63SEmmanuel Vadot reg = <0x0 0x80860000 0x0 0x20000>; 3748d13bc63SEmmanuel Vadot no-map; 3758d13bc63SEmmanuel Vadot }; 3768d13bc63SEmmanuel Vadot }; 3778d13bc63SEmmanuel Vadot 378aa1a8ff2SEmmanuel Vadot soc: soc@0 { 379aa1a8ff2SEmmanuel Vadot #address-cells = <2>; 380aa1a8ff2SEmmanuel Vadot #size-cells = <2>; 381aa1a8ff2SEmmanuel Vadot ranges = <0 0 0 0 0x10 0>; 382aa1a8ff2SEmmanuel Vadot dma-ranges = <0 0 0 0 0x10 0>; 383aa1a8ff2SEmmanuel Vadot compatible = "simple-bus"; 384aa1a8ff2SEmmanuel Vadot 3858d13bc63SEmmanuel Vadot gcc: clock-controller@100000 { 3868d13bc63SEmmanuel Vadot compatible = "qcom,sm4450-gcc"; 3878d13bc63SEmmanuel Vadot reg = <0x0 0x00100000 0x0 0x1f4200>; 3888d13bc63SEmmanuel Vadot #clock-cells = <1>; 3898d13bc63SEmmanuel Vadot #reset-cells = <1>; 3908d13bc63SEmmanuel Vadot #power-domain-cells = <1>; 3918d13bc63SEmmanuel Vadot clocks = <&rpmhcc RPMH_CXO_CLK>, 3928d13bc63SEmmanuel Vadot <&sleep_clk>, 3938d13bc63SEmmanuel Vadot <0>, 3948d13bc63SEmmanuel Vadot <0>, 3958d13bc63SEmmanuel Vadot <0>, 3968d13bc63SEmmanuel Vadot <0>; 3978d13bc63SEmmanuel Vadot }; 3988d13bc63SEmmanuel Vadot 3998d13bc63SEmmanuel Vadot qupv3_id_0: geniqup@ac0000 { 4008d13bc63SEmmanuel Vadot compatible = "qcom,geni-se-qup"; 4018d13bc63SEmmanuel Vadot reg = <0x0 0x00ac0000 0x0 0x2000>; 4028d13bc63SEmmanuel Vadot ranges; 4038d13bc63SEmmanuel Vadot clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>, 4048d13bc63SEmmanuel Vadot <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>; 4058d13bc63SEmmanuel Vadot clock-names = "m-ahb", "s-ahb"; 4068d13bc63SEmmanuel Vadot #address-cells = <2>; 4078d13bc63SEmmanuel Vadot #size-cells = <2>; 4088d13bc63SEmmanuel Vadot status = "disabled"; 4098d13bc63SEmmanuel Vadot 4108d13bc63SEmmanuel Vadot uart7: serial@a88000 { 4118d13bc63SEmmanuel Vadot compatible = "qcom,geni-debug-uart"; 4128d13bc63SEmmanuel Vadot reg = <0x0 0x00a88000 0x0 0x4000>; 4138d13bc63SEmmanuel Vadot clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>; 4148d13bc63SEmmanuel Vadot clock-names = "se"; 4158d13bc63SEmmanuel Vadot interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; 4168d13bc63SEmmanuel Vadot pinctrl-0 = <&qup_uart7_tx>, <&qup_uart7_rx>; 4178d13bc63SEmmanuel Vadot pinctrl-names = "default"; 4188d13bc63SEmmanuel Vadot status = "disabled"; 4198d13bc63SEmmanuel Vadot }; 4208d13bc63SEmmanuel Vadot }; 4218d13bc63SEmmanuel Vadot 422aa1a8ff2SEmmanuel Vadot tcsr_mutex: hwlock@1f40000 { 423aa1a8ff2SEmmanuel Vadot compatible = "qcom,tcsr-mutex"; 424aa1a8ff2SEmmanuel Vadot reg = <0x0 0x01f40000 0x0 0x40000>; 425aa1a8ff2SEmmanuel Vadot #hwlock-cells = <1>; 426aa1a8ff2SEmmanuel Vadot }; 427aa1a8ff2SEmmanuel Vadot 428*b2d2a78aSEmmanuel Vadot gpucc: clock-controller@3d90000 { 429*b2d2a78aSEmmanuel Vadot compatible = "qcom,sm4450-gpucc"; 430*b2d2a78aSEmmanuel Vadot reg = <0x0 0x03d90000 0x0 0xa000>; 431*b2d2a78aSEmmanuel Vadot clocks = <&rpmhcc RPMH_CXO_CLK>, 432*b2d2a78aSEmmanuel Vadot <&gcc GCC_GPU_GPLL0_CLK_SRC>, 433*b2d2a78aSEmmanuel Vadot <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>; 434*b2d2a78aSEmmanuel Vadot #clock-cells = <1>; 435*b2d2a78aSEmmanuel Vadot #reset-cells = <1>; 436*b2d2a78aSEmmanuel Vadot #power-domain-cells = <1>; 437*b2d2a78aSEmmanuel Vadot }; 438*b2d2a78aSEmmanuel Vadot 439*b2d2a78aSEmmanuel Vadot camcc: clock-controller@ade0000 { 440*b2d2a78aSEmmanuel Vadot compatible = "qcom,sm4450-camcc"; 441*b2d2a78aSEmmanuel Vadot reg = <0x0 0x0ade0000 0x0 0x20000>; 442*b2d2a78aSEmmanuel Vadot clocks = <&rpmhcc RPMH_CXO_CLK>, 443*b2d2a78aSEmmanuel Vadot <&gcc GCC_CAMERA_AHB_CLK>; 444*b2d2a78aSEmmanuel Vadot #clock-cells = <1>; 445*b2d2a78aSEmmanuel Vadot #reset-cells = <1>; 446*b2d2a78aSEmmanuel Vadot #power-domain-cells = <1>; 447*b2d2a78aSEmmanuel Vadot }; 448*b2d2a78aSEmmanuel Vadot 449*b2d2a78aSEmmanuel Vadot dispcc: clock-controller@af00000 { 450*b2d2a78aSEmmanuel Vadot compatible = "qcom,sm4450-dispcc"; 451*b2d2a78aSEmmanuel Vadot reg = <0x0 0x0af00000 0x0 0x20000>; 452*b2d2a78aSEmmanuel Vadot clocks = <&rpmhcc RPMH_CXO_CLK>, 453*b2d2a78aSEmmanuel Vadot <&rpmhcc RPMH_CXO_CLK_A>, 454*b2d2a78aSEmmanuel Vadot <&gcc GCC_DISP_AHB_CLK>, 455*b2d2a78aSEmmanuel Vadot <&sleep_clk>, 456*b2d2a78aSEmmanuel Vadot <0>, 457*b2d2a78aSEmmanuel Vadot <0>; 458*b2d2a78aSEmmanuel Vadot #clock-cells = <1>; 459*b2d2a78aSEmmanuel Vadot #reset-cells = <1>; 460*b2d2a78aSEmmanuel Vadot #power-domain-cells = <1>; 461*b2d2a78aSEmmanuel Vadot }; 462*b2d2a78aSEmmanuel Vadot 463aa1a8ff2SEmmanuel Vadot pdc: interrupt-controller@b220000 { 464aa1a8ff2SEmmanuel Vadot compatible = "qcom,sm4450-pdc", "qcom,pdc"; 465aa1a8ff2SEmmanuel Vadot reg = <0 0x0b220000 0 0x30000>, <0 0x174000f0 0 0x64>; 466aa1a8ff2SEmmanuel Vadot qcom,pdc-ranges = <0 480 94>, <94 494 31>, 467aa1a8ff2SEmmanuel Vadot <125 63 1>; 468aa1a8ff2SEmmanuel Vadot #interrupt-cells = <2>; 469aa1a8ff2SEmmanuel Vadot interrupt-parent = <&intc>; 470aa1a8ff2SEmmanuel Vadot interrupt-controller; 471aa1a8ff2SEmmanuel Vadot }; 472aa1a8ff2SEmmanuel Vadot 4738d13bc63SEmmanuel Vadot tlmm: pinctrl@f100000 { 4748d13bc63SEmmanuel Vadot compatible = "qcom,sm4450-tlmm"; 4758d13bc63SEmmanuel Vadot reg = <0x0 0x0f100000 0x0 0x300000>; 4768d13bc63SEmmanuel Vadot interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 4778d13bc63SEmmanuel Vadot gpio-controller; 4788d13bc63SEmmanuel Vadot #gpio-cells = <2>; 4798d13bc63SEmmanuel Vadot interrupt-controller; 4808d13bc63SEmmanuel Vadot #interrupt-cells = <2>; 4818d13bc63SEmmanuel Vadot gpio-ranges = <&tlmm 0 0 137>; 4828d13bc63SEmmanuel Vadot wakeup-parent = <&pdc>; 4838d13bc63SEmmanuel Vadot 4848d13bc63SEmmanuel Vadot qup_uart7_rx: qup-uart7-rx-state { 4858d13bc63SEmmanuel Vadot pins = "gpio23"; 4868d13bc63SEmmanuel Vadot function = "qup1_se2_l2"; 4878d13bc63SEmmanuel Vadot drive-strength = <2>; 4888d13bc63SEmmanuel Vadot bias-disable; 4898d13bc63SEmmanuel Vadot }; 4908d13bc63SEmmanuel Vadot 4918d13bc63SEmmanuel Vadot qup_uart7_tx: qup-uart7-tx-state { 4928d13bc63SEmmanuel Vadot pins = "gpio22"; 4938d13bc63SEmmanuel Vadot function = "qup1_se2_l2"; 4948d13bc63SEmmanuel Vadot drive-strength = <2>; 4958d13bc63SEmmanuel Vadot bias-disable; 4968d13bc63SEmmanuel Vadot }; 4978d13bc63SEmmanuel Vadot }; 4988d13bc63SEmmanuel Vadot 499aa1a8ff2SEmmanuel Vadot intc: interrupt-controller@17200000 { 500aa1a8ff2SEmmanuel Vadot compatible = "arm,gic-v3"; 501aa1a8ff2SEmmanuel Vadot reg = <0x0 0x17200000 0x0 0x10000>, /* GICD */ 502aa1a8ff2SEmmanuel Vadot <0x0 0x17260000 0x0 0x100000>; /* GICR * 8 */ 503aa1a8ff2SEmmanuel Vadot interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>; 504aa1a8ff2SEmmanuel Vadot #interrupt-cells = <3>; 505aa1a8ff2SEmmanuel Vadot interrupt-controller; 506aa1a8ff2SEmmanuel Vadot #redistributor-regions = <1>; 507aa1a8ff2SEmmanuel Vadot redistributor-stride = <0x0 0x20000>; 508aa1a8ff2SEmmanuel Vadot }; 509aa1a8ff2SEmmanuel Vadot 510aa1a8ff2SEmmanuel Vadot timer@17420000 { 511aa1a8ff2SEmmanuel Vadot compatible = "arm,armv7-timer-mem"; 512aa1a8ff2SEmmanuel Vadot reg = <0x0 0x17420000 0x0 0x1000>; 513aa1a8ff2SEmmanuel Vadot ranges = <0 0 0 0x20000000>; 514aa1a8ff2SEmmanuel Vadot #address-cells = <1>; 515aa1a8ff2SEmmanuel Vadot #size-cells = <1>; 516aa1a8ff2SEmmanuel Vadot 517aa1a8ff2SEmmanuel Vadot frame@17421000 { 518aa1a8ff2SEmmanuel Vadot reg = <0x17421000 0x1000>, 519aa1a8ff2SEmmanuel Vadot <0x17422000 0x1000>; 520aa1a8ff2SEmmanuel Vadot frame-number = <0>; 521aa1a8ff2SEmmanuel Vadot interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 522aa1a8ff2SEmmanuel Vadot <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 523aa1a8ff2SEmmanuel Vadot }; 524aa1a8ff2SEmmanuel Vadot 525aa1a8ff2SEmmanuel Vadot frame@17423000 { 526aa1a8ff2SEmmanuel Vadot reg = <0x17423000 0x1000>; 527aa1a8ff2SEmmanuel Vadot frame-number = <1>; 528aa1a8ff2SEmmanuel Vadot interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 529aa1a8ff2SEmmanuel Vadot status = "disabled"; 530aa1a8ff2SEmmanuel Vadot }; 531aa1a8ff2SEmmanuel Vadot 532aa1a8ff2SEmmanuel Vadot frame@17425000 { 533aa1a8ff2SEmmanuel Vadot reg = <0x17425000 0x1000>; 534aa1a8ff2SEmmanuel Vadot frame-number = <2>; 535aa1a8ff2SEmmanuel Vadot interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 536aa1a8ff2SEmmanuel Vadot status = "disabled"; 537aa1a8ff2SEmmanuel Vadot }; 538aa1a8ff2SEmmanuel Vadot 539aa1a8ff2SEmmanuel Vadot frame@17427000 { 540aa1a8ff2SEmmanuel Vadot reg = <0x17427000 0x1000>; 541aa1a8ff2SEmmanuel Vadot frame-number = <3>; 542aa1a8ff2SEmmanuel Vadot interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 543aa1a8ff2SEmmanuel Vadot status = "disabled"; 544aa1a8ff2SEmmanuel Vadot }; 545aa1a8ff2SEmmanuel Vadot 546aa1a8ff2SEmmanuel Vadot frame@17429000 { 547aa1a8ff2SEmmanuel Vadot reg = <0x17429000 0x1000>; 548aa1a8ff2SEmmanuel Vadot frame-number = <4>; 549aa1a8ff2SEmmanuel Vadot interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 550aa1a8ff2SEmmanuel Vadot status = "disabled"; 551aa1a8ff2SEmmanuel Vadot }; 552aa1a8ff2SEmmanuel Vadot 553aa1a8ff2SEmmanuel Vadot frame@1742b000 { 554aa1a8ff2SEmmanuel Vadot reg = <0x1742b000 0x1000>; 555aa1a8ff2SEmmanuel Vadot frame-number = <5>; 556aa1a8ff2SEmmanuel Vadot interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 557aa1a8ff2SEmmanuel Vadot status = "disabled"; 558aa1a8ff2SEmmanuel Vadot }; 559aa1a8ff2SEmmanuel Vadot 560aa1a8ff2SEmmanuel Vadot frame@1742d000 { 561aa1a8ff2SEmmanuel Vadot reg = <0x1742d000 0x1000>; 562aa1a8ff2SEmmanuel Vadot frame-number = <6>; 563aa1a8ff2SEmmanuel Vadot interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 564aa1a8ff2SEmmanuel Vadot status = "disabled"; 565aa1a8ff2SEmmanuel Vadot }; 566aa1a8ff2SEmmanuel Vadot }; 5678d13bc63SEmmanuel Vadot 5688d13bc63SEmmanuel Vadot apps_rsc: rsc@17a00000 { 5698d13bc63SEmmanuel Vadot compatible = "qcom,rpmh-rsc"; 5708d13bc63SEmmanuel Vadot reg = <0x0 0x17a00000 0x0 0x10000>, 5718d13bc63SEmmanuel Vadot <0x0 0x17a10000 0x0 0x10000>, 5728d13bc63SEmmanuel Vadot <0x0 0x17a20000 0x0 0x10000>; 5738d13bc63SEmmanuel Vadot reg-names = "drv-0", "drv-1", "drv-2"; 5748d13bc63SEmmanuel Vadot interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, 5758d13bc63SEmmanuel Vadot <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 5768d13bc63SEmmanuel Vadot <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 5778d13bc63SEmmanuel Vadot label = "apps_rsc"; 5788d13bc63SEmmanuel Vadot qcom,tcs-offset = <0xd00>; 5798d13bc63SEmmanuel Vadot qcom,drv-id = <2>; 5808d13bc63SEmmanuel Vadot qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>, 5818d13bc63SEmmanuel Vadot <WAKE_TCS 3>, <CONTROL_TCS 0>; 5828d13bc63SEmmanuel Vadot power-domains = <&CLUSTER_PD>; 5838d13bc63SEmmanuel Vadot 5848d13bc63SEmmanuel Vadot apps_bcm_voter: bcm-voter { 5858d13bc63SEmmanuel Vadot compatible = "qcom,bcm-voter"; 5868d13bc63SEmmanuel Vadot }; 5878d13bc63SEmmanuel Vadot 5888d13bc63SEmmanuel Vadot rpmhcc: clock-controller { 5898d13bc63SEmmanuel Vadot compatible = "qcom,sm4450-rpmh-clk"; 5908d13bc63SEmmanuel Vadot #clock-cells = <1>; 5918d13bc63SEmmanuel Vadot clocks = <&xo_board>; 5928d13bc63SEmmanuel Vadot clock-names = "xo"; 5938d13bc63SEmmanuel Vadot }; 5948d13bc63SEmmanuel Vadot }; 5958d13bc63SEmmanuel Vadot 5960e8011faSEmmanuel Vadot cpufreq_hw: cpufreq@17d91000 { 5970e8011faSEmmanuel Vadot compatible = "qcom,sm4450-cpufreq-epss", "qcom,cpufreq-epss"; 5980e8011faSEmmanuel Vadot reg = <0 0x17d91000 0 0x1000>, 5990e8011faSEmmanuel Vadot <0 0x17d92000 0 0x1000>; 6000e8011faSEmmanuel Vadot reg-names = "freq-domain0", "freq-domain1"; 6010e8011faSEmmanuel Vadot clocks = <&bi_tcxo_div2>, <&gcc GCC_GPLL0>; 6020e8011faSEmmanuel Vadot clock-names = "xo", "alternate"; 6030e8011faSEmmanuel Vadot interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, 6040e8011faSEmmanuel Vadot <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 6050e8011faSEmmanuel Vadot interrupt-names = "dcvsh-irq-0", "dcvsh-irq-1"; 6060e8011faSEmmanuel Vadot #freq-domain-cells = <1>; 6070e8011faSEmmanuel Vadot #clock-cells = <1>; 6080e8011faSEmmanuel Vadot }; 609aa1a8ff2SEmmanuel Vadot }; 610aa1a8ff2SEmmanuel Vadot 611aa1a8ff2SEmmanuel Vadot timer { 612aa1a8ff2SEmmanuel Vadot compatible = "arm,armv8-timer"; 613aa1a8ff2SEmmanuel Vadot interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 614aa1a8ff2SEmmanuel Vadot <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 615aa1a8ff2SEmmanuel Vadot <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 616aa1a8ff2SEmmanuel Vadot <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 617aa1a8ff2SEmmanuel Vadot }; 618aa1a8ff2SEmmanuel Vadot}; 619