1 // SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
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>
13 interrupt-parent = <&intc>;
22 compatible = "fixed-clock";
23 clock-frequency = <76800000>;
27 sleep_clk: sleep-clk {
28 compatible = "fixed-clock";
29 clock-frequency = <32000>;
40 compatible = "arm,cortex-a55";
42 enable-method = "psci";
43 next-level-cache = <&L2_0>;
44 power-domains = <&CPU_PD0>;
45 power-domain-names = "psci";
52 next-level-cache = <&L3_0>;
64 compatible = "arm,cortex-a55";
66 enable-method = "psci";
67 next-level-cache = <&L2_100>;
68 power-domains = <&CPU_PD0>;
69 power-domain-names = "psci";
76 next-level-cache = <&L3_0>;
82 compatible = "arm,cortex-a55";
84 enable-method = "psci";
85 next-level-cache = <&L2_200>;
86 power-domains = <&CPU_PD0>;
87 power-domain-names = "psci";
94 next-level-cache = <&L3_0>;
100 compatible = "arm,cortex-a55";
102 enable-method = "psci";
103 next-level-cache = <&L2_300>;
104 power-domains = <&CPU_PD0>;
105 power-domain-names = "psci";
106 #cooling-cells = <2>;
109 compatible = "cache";
112 next-level-cache = <&L3_0>;
118 compatible = "arm,cortex-a55";
120 enable-method = "psci";
121 next-level-cache = <&L2_400>;
122 power-domains = <&CPU_PD0>;
123 power-domain-names = "psci";
124 #cooling-cells = <2>;
127 compatible = "cache";
130 next-level-cache = <&L3_0>;
136 compatible = "arm,cortex-a55";
138 enable-method = "psci";
139 next-level-cache = <&L2_500>;
140 power-domains = <&CPU_PD0>;
141 power-domain-names = "psci";
142 #cooling-cells = <2>;
145 compatible = "cache";
148 next-level-cache = <&L3_0>;
154 compatible = "arm,cortex-a78";
156 enable-method = "psci";
157 next-level-cache = <&L2_600>;
158 power-domains = <&CPU_PD0>;
159 power-domain-names = "psci";
160 #cooling-cells = <2>;
163 compatible = "cache";
166 next-level-cache = <&L3_0>;
172 compatible = "arm,cortex-a78";
174 enable-method = "psci";
175 next-level-cache = <&L2_700>;
176 power-domains = <&CPU_PD0>;
177 power-domain-names = "psci";
178 #cooling-cells = <2>;
181 compatible = "cache";
184 next-level-cache = <&L3_0>;
225 entry-method = "psci";
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>;
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>;
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>;
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>;
266 device_type = "memory";
267 /* We expect the bootloader to fill in the size */
268 reg = <0x0 0xa0000000 0x0 0x0>;
272 compatible = "arm,armv8-pmuv3";
273 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
277 compatible = "arm,psci-1.0";
280 CPU_PD0: power-domain-cpu0 {
281 #power-domain-cells = <0>;
282 power-domains = <&CLUSTER_PD>;
283 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
286 CPU_PD1: power-domain-cpu1 {
287 #power-domain-cells = <0>;
288 power-domains = <&CLUSTER_PD>;
289 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
292 CPU_PD2: power-domain-cpu2 {
293 #power-domain-cells = <0>;
294 power-domains = <&CLUSTER_PD>;
295 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
298 CPU_PD3: power-domain-cpu3 {
299 #power-domain-cells = <0>;
300 power-domains = <&CLUSTER_PD>;
301 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
304 CPU_PD4: power-domain-cpu4 {
305 #power-domain-cells = <0>;
306 power-domains = <&CLUSTER_PD>;
307 domain-idle-states = <&BIG_CPU_SLEEP_0>;
310 CPU_PD5: power-domain-cpu5 {
311 #power-domain-cells = <0>;
312 power-domains = <&CLUSTER_PD>;
313 domain-idle-states = <&BIG_CPU_SLEEP_0>;
316 CPU_PD6: power-domain-cpu6 {
317 #power-domain-cells = <0>;
318 power-domains = <&CLUSTER_PD>;
319 domain-idle-states = <&BIG_CPU_SLEEP_0>;
322 CPU_PD7: power-domain-cpu7 {
323 #power-domain-cells = <0>;
324 power-domains = <&CLUSTER_PD>;
325 domain-idle-states = <&BIG_CPU_SLEEP_0>;
328 CLUSTER_PD: power-domain-cpu-cluster0 {
329 #power-domain-cells = <0>;
330 domain-idle-states = <&CLUSTER_SLEEP_0>, <&CLUSTER_SLEEP_1>;
334 reserved_memory: reserved-memory {
335 #address-cells = <2>;
339 aop_cmd_db_mem: cmd-db@80860000 {
340 compatible = "qcom,cmd-db";
341 reg = <0x0 0x80860000 0x0 0x20000>;
347 #address-cells = <2>;
349 ranges = <0 0 0 0 0x10 0>;
350 dma-ranges = <0 0 0 0 0x10 0>;
351 compatible = "simple-bus";
353 gcc: clock-controller@100000 {
354 compatible = "qcom,sm4450-gcc";
355 reg = <0x0 0x00100000 0x0 0x1f4200>;
358 #power-domain-cells = <1>;
359 clocks = <&rpmhcc RPMH_CXO_CLK>,
367 qupv3_id_0: geniqup@ac0000 {
368 compatible = "qcom,geni-se-qup";
369 reg = <0x0 0x00ac0000 0x0 0x2000>;
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>;
378 uart7: serial@a88000 {
379 compatible = "qcom,geni-debug-uart";
380 reg = <0x0 0x00a88000 0x0 0x4000>;
381 clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
383 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
384 pinctrl-0 = <&qup_uart7_tx>, <&qup_uart7_rx>;
385 pinctrl-names = "default";
390 tcsr_mutex: hwlock@1f40000 {
391 compatible = "qcom,tcsr-mutex";
392 reg = <0x0 0x01f40000 0x0 0x40000>;
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>,
401 #interrupt-cells = <2>;
402 interrupt-parent = <&intc>;
403 interrupt-controller;
406 tlmm: pinctrl@f100000 {
407 compatible = "qcom,sm4450-tlmm";
408 reg = <0x0 0x0f100000 0x0 0x300000>;
409 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
412 interrupt-controller;
413 #interrupt-cells = <2>;
414 gpio-ranges = <&tlmm 0 0 137>;
415 wakeup-parent = <&pdc>;
417 qup_uart7_rx: qup-uart7-rx-state {
419 function = "qup1_se2_l2";
420 drive-strength = <2>;
424 qup_uart7_tx: qup-uart7-tx-state {
426 function = "qup1_se2_l2";
427 drive-strength = <2>;
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>;
444 compatible = "arm,armv7-timer-mem";
445 reg = <0x0 0x17420000 0x0 0x1000>;
446 ranges = <0 0 0 0x20000000>;
447 #address-cells = <1>;
451 reg = <0x17421000 0x1000>,
454 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
455 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
459 reg = <0x17423000 0x1000>;
461 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
466 reg = <0x17425000 0x1000>;
468 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
473 reg = <0x17427000 0x1000>;
475 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
480 reg = <0x17429000 0x1000>;
482 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
487 reg = <0x1742b000 0x1000>;
489 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
494 reg = <0x1742d000 0x1000>;
496 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
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>;
511 qcom,tcs-offset = <0xd00>;
513 qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>,
514 <WAKE_TCS 3>, <CONTROL_TCS 0>;
515 power-domains = <&CLUSTER_PD>;
517 apps_bcm_voter: bcm-voter {
518 compatible = "qcom,bcm-voter";
521 rpmhcc: clock-controller {
522 compatible = "qcom,sm4450-rpmh-clk";
524 clocks = <&xo_board>;
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)>;