18d13bc63SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT) 28d13bc63SEmmanuel Vadot/* 38d13bc63SEmmanuel Vadot * Unisoc UMS9620 DTS file 48d13bc63SEmmanuel Vadot * 58d13bc63SEmmanuel Vadot * Copyright (C) 2023, Unisoc Inc. 68d13bc63SEmmanuel Vadot */ 78d13bc63SEmmanuel Vadot 88d13bc63SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 98d13bc63SEmmanuel Vadot 108d13bc63SEmmanuel Vadot/ { 118d13bc63SEmmanuel Vadot interrupt-parent = <&gic>; 128d13bc63SEmmanuel Vadot #address-cells = <2>; 138d13bc63SEmmanuel Vadot #size-cells = <2>; 148d13bc63SEmmanuel Vadot 158d13bc63SEmmanuel Vadot cpus { 168d13bc63SEmmanuel Vadot #address-cells = <2>; 178d13bc63SEmmanuel Vadot #size-cells = <0>; 188d13bc63SEmmanuel Vadot 198d13bc63SEmmanuel Vadot cpu-map { 208d13bc63SEmmanuel Vadot cluster0 { 218d13bc63SEmmanuel Vadot core0 { 228d13bc63SEmmanuel Vadot cpu = <&CPU0>; 238d13bc63SEmmanuel Vadot }; 248d13bc63SEmmanuel Vadot core1 { 258d13bc63SEmmanuel Vadot cpu = <&CPU1>; 268d13bc63SEmmanuel Vadot }; 278d13bc63SEmmanuel Vadot core2 { 288d13bc63SEmmanuel Vadot cpu = <&CPU2>; 298d13bc63SEmmanuel Vadot }; 308d13bc63SEmmanuel Vadot core3 { 318d13bc63SEmmanuel Vadot cpu = <&CPU3>; 328d13bc63SEmmanuel Vadot }; 338d13bc63SEmmanuel Vadot core4 { 348d13bc63SEmmanuel Vadot cpu = <&CPU4>; 358d13bc63SEmmanuel Vadot }; 368d13bc63SEmmanuel Vadot core5 { 378d13bc63SEmmanuel Vadot cpu = <&CPU5>; 388d13bc63SEmmanuel Vadot }; 398d13bc63SEmmanuel Vadot core6 { 408d13bc63SEmmanuel Vadot cpu = <&CPU6>; 418d13bc63SEmmanuel Vadot }; 428d13bc63SEmmanuel Vadot core7 { 438d13bc63SEmmanuel Vadot cpu = <&CPU7>; 448d13bc63SEmmanuel Vadot }; 458d13bc63SEmmanuel Vadot }; 468d13bc63SEmmanuel Vadot }; 478d13bc63SEmmanuel Vadot 488d13bc63SEmmanuel Vadot CPU0: cpu@0 { 498d13bc63SEmmanuel Vadot device_type = "cpu"; 508d13bc63SEmmanuel Vadot compatible = "arm,cortex-a55"; 518d13bc63SEmmanuel Vadot reg = <0x0 0x0>; 528d13bc63SEmmanuel Vadot enable-method = "psci"; 538d13bc63SEmmanuel Vadot cpu-idle-states = <&LIT_CORE_PD>; 548d13bc63SEmmanuel Vadot }; 558d13bc63SEmmanuel Vadot 568d13bc63SEmmanuel Vadot CPU1: cpu@100 { 578d13bc63SEmmanuel Vadot device_type = "cpu"; 588d13bc63SEmmanuel Vadot compatible = "arm,cortex-a55"; 598d13bc63SEmmanuel Vadot reg = <0x0 0x100>; 608d13bc63SEmmanuel Vadot enable-method = "psci"; 618d13bc63SEmmanuel Vadot cpu-idle-states = <&LIT_CORE_PD>; 628d13bc63SEmmanuel Vadot }; 638d13bc63SEmmanuel Vadot 648d13bc63SEmmanuel Vadot CPU2: cpu@200 { 658d13bc63SEmmanuel Vadot device_type = "cpu"; 668d13bc63SEmmanuel Vadot compatible = "arm,cortex-a55"; 678d13bc63SEmmanuel Vadot reg = <0x0 0x200>; 688d13bc63SEmmanuel Vadot enable-method = "psci"; 698d13bc63SEmmanuel Vadot cpu-idle-states = <&LIT_CORE_PD>; 708d13bc63SEmmanuel Vadot }; 718d13bc63SEmmanuel Vadot 728d13bc63SEmmanuel Vadot CPU3: cpu@300 { 738d13bc63SEmmanuel Vadot device_type = "cpu"; 748d13bc63SEmmanuel Vadot compatible = "arm,cortex-a55"; 758d13bc63SEmmanuel Vadot reg = <0x0 0x300>; 768d13bc63SEmmanuel Vadot enable-method = "psci"; 778d13bc63SEmmanuel Vadot cpu-idle-states = <&LIT_CORE_PD>; 788d13bc63SEmmanuel Vadot }; 798d13bc63SEmmanuel Vadot 808d13bc63SEmmanuel Vadot CPU4: cpu@400 { 818d13bc63SEmmanuel Vadot device_type = "cpu"; 828d13bc63SEmmanuel Vadot compatible = "arm,cortex-a76"; 838d13bc63SEmmanuel Vadot reg = <0x0 0x400>; 848d13bc63SEmmanuel Vadot enable-method = "psci"; 858d13bc63SEmmanuel Vadot cpu-idle-states = <&BIG_CORE_PD>; 868d13bc63SEmmanuel Vadot }; 878d13bc63SEmmanuel Vadot 888d13bc63SEmmanuel Vadot CPU5: cpu@500 { 898d13bc63SEmmanuel Vadot device_type = "cpu"; 908d13bc63SEmmanuel Vadot compatible = "arm,cortex-a76"; 918d13bc63SEmmanuel Vadot reg = <0x0 0x500>; 928d13bc63SEmmanuel Vadot enable-method = "psci"; 938d13bc63SEmmanuel Vadot cpu-idle-states = <&BIG_CORE_PD>; 948d13bc63SEmmanuel Vadot }; 958d13bc63SEmmanuel Vadot 968d13bc63SEmmanuel Vadot CPU6: cpu@600 { 978d13bc63SEmmanuel Vadot device_type = "cpu"; 988d13bc63SEmmanuel Vadot compatible = "arm,cortex-a76"; 998d13bc63SEmmanuel Vadot reg = <0x0 0x600>; 1008d13bc63SEmmanuel Vadot enable-method = "psci"; 1018d13bc63SEmmanuel Vadot cpu-idle-states = <&BIG_CORE_PD>; 1028d13bc63SEmmanuel Vadot }; 1038d13bc63SEmmanuel Vadot 1048d13bc63SEmmanuel Vadot CPU7: cpu@700 { 1058d13bc63SEmmanuel Vadot device_type = "cpu"; 1068d13bc63SEmmanuel Vadot compatible = "arm,cortex-a76"; 1078d13bc63SEmmanuel Vadot reg = <0x0 0x700>; 1088d13bc63SEmmanuel Vadot enable-method = "psci"; 1098d13bc63SEmmanuel Vadot cpu-idle-states = <&BIG_CORE_PD>; 1108d13bc63SEmmanuel Vadot }; 1118d13bc63SEmmanuel Vadot }; 1128d13bc63SEmmanuel Vadot 1138d13bc63SEmmanuel Vadot idle-states { 1148d13bc63SEmmanuel Vadot entry-method = "psci"; 1158d13bc63SEmmanuel Vadot LIT_CORE_PD: cpu-pd-lit { 1168d13bc63SEmmanuel Vadot compatible = "arm,idle-state"; 1178d13bc63SEmmanuel Vadot entry-latency-us = <1000>; 1188d13bc63SEmmanuel Vadot exit-latency-us = <500>; 1198d13bc63SEmmanuel Vadot min-residency-us = <2500>; 1208d13bc63SEmmanuel Vadot local-timer-stop; 1218d13bc63SEmmanuel Vadot arm,psci-suspend-param = <0x00010000>; 1228d13bc63SEmmanuel Vadot }; 1238d13bc63SEmmanuel Vadot 1248d13bc63SEmmanuel Vadot BIG_CORE_PD: cpu-pd-big { 1258d13bc63SEmmanuel Vadot compatible = "arm,idle-state"; 1268d13bc63SEmmanuel Vadot entry-latency-us = <4000>; 1278d13bc63SEmmanuel Vadot exit-latency-us = <4000>; 1288d13bc63SEmmanuel Vadot min-residency-us = <10000>; 1298d13bc63SEmmanuel Vadot local-timer-stop; 1308d13bc63SEmmanuel Vadot arm,psci-suspend-param = <0x00010000>; 1318d13bc63SEmmanuel Vadot }; 1328d13bc63SEmmanuel Vadot }; 1338d13bc63SEmmanuel Vadot 1348d13bc63SEmmanuel Vadot psci { 1358d13bc63SEmmanuel Vadot compatible = "arm,psci-0.2"; 1368d13bc63SEmmanuel Vadot method = "smc"; 1378d13bc63SEmmanuel Vadot }; 1388d13bc63SEmmanuel Vadot 1398d13bc63SEmmanuel Vadot timer { 1408d13bc63SEmmanuel Vadot compatible = "arm,armv8-timer"; 1418d13bc63SEmmanuel Vadot interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, /* Physical Secure PPI */ 1428d13bc63SEmmanuel Vadot <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, /* Physical Non-Secure PPI */ 1438d13bc63SEmmanuel Vadot <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, /* Virtual PPI */ 1448d13bc63SEmmanuel Vadot <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; /* Hipervisor PPI */ 1458d13bc63SEmmanuel Vadot }; 1468d13bc63SEmmanuel Vadot 147*0e8011faSEmmanuel Vadot pmu-a55 { 148*0e8011faSEmmanuel Vadot compatible = "arm,cortex-a55-pmu"; 1498d13bc63SEmmanuel Vadot interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>, 1508d13bc63SEmmanuel Vadot <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>, 1518d13bc63SEmmanuel Vadot <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>, 152*0e8011faSEmmanuel Vadot <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; 153*0e8011faSEmmanuel Vadot interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>; 154*0e8011faSEmmanuel Vadot }; 155*0e8011faSEmmanuel Vadot 156*0e8011faSEmmanuel Vadot pmu-a76 { 157*0e8011faSEmmanuel Vadot compatible = "arm,cortex-a76-pmu"; 158*0e8011faSEmmanuel Vadot interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>, 1598d13bc63SEmmanuel Vadot <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>, 1608d13bc63SEmmanuel Vadot <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>, 1618d13bc63SEmmanuel Vadot <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 162*0e8011faSEmmanuel Vadot interrupt-affinity = <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>; 1638d13bc63SEmmanuel Vadot }; 1648d13bc63SEmmanuel Vadot 1658d13bc63SEmmanuel Vadot soc: soc { 1668d13bc63SEmmanuel Vadot compatible = "simple-bus"; 1678d13bc63SEmmanuel Vadot ranges; 1688d13bc63SEmmanuel Vadot #address-cells = <2>; 1698d13bc63SEmmanuel Vadot #size-cells = <2>; 1708d13bc63SEmmanuel Vadot 1718d13bc63SEmmanuel Vadot gic: interrupt-controller@12000000 { 1728d13bc63SEmmanuel Vadot compatible = "arm,gic-v3"; 1738d13bc63SEmmanuel Vadot reg = <0x0 0x12000000 0 0x20000>, /* GICD */ 1748d13bc63SEmmanuel Vadot <0x0 0x12040000 0 0x100000>; /* GICR */ 1758d13bc63SEmmanuel Vadot #interrupt-cells = <3>; 1768d13bc63SEmmanuel Vadot #address-cells = <2>; 1778d13bc63SEmmanuel Vadot #size-cells = <2>; 1788d13bc63SEmmanuel Vadot redistributor-stride = <0x0 0x20000>; /* 128KB stride */ 1798d13bc63SEmmanuel Vadot #redistributor-regions = <1>; 1808d13bc63SEmmanuel Vadot interrupt-controller; 1818d13bc63SEmmanuel Vadot interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 1828d13bc63SEmmanuel Vadot }; 1838d13bc63SEmmanuel Vadot 1848d13bc63SEmmanuel Vadot apb@20200000 { 1858d13bc63SEmmanuel Vadot compatible = "simple-bus"; 1868d13bc63SEmmanuel Vadot ranges = <0 0 0x20200000 0x100000>; 1878d13bc63SEmmanuel Vadot #address-cells = <1>; 1888d13bc63SEmmanuel Vadot #size-cells = <1>; 1898d13bc63SEmmanuel Vadot 1908d13bc63SEmmanuel Vadot uart0: serial@0 { 1918d13bc63SEmmanuel Vadot compatible = "sprd,ums9620-uart", 1928d13bc63SEmmanuel Vadot "sprd,sc9836-uart"; 1938d13bc63SEmmanuel Vadot reg = <0 0x100>; 1948d13bc63SEmmanuel Vadot interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>; 1958d13bc63SEmmanuel Vadot clocks = <&ext_26m>; 1968d13bc63SEmmanuel Vadot status = "disabled"; 1978d13bc63SEmmanuel Vadot }; 1988d13bc63SEmmanuel Vadot 1998d13bc63SEmmanuel Vadot uart1: serial@10000 { 2008d13bc63SEmmanuel Vadot compatible = "sprd,ums9620-uart", 2018d13bc63SEmmanuel Vadot "sprd,sc9836-uart"; 2028d13bc63SEmmanuel Vadot reg = <0x10000 0x100>; 2038d13bc63SEmmanuel Vadot interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>; 2048d13bc63SEmmanuel Vadot clocks = <&ext_26m>; 2058d13bc63SEmmanuel Vadot status = "disabled"; 2068d13bc63SEmmanuel Vadot }; 2078d13bc63SEmmanuel Vadot }; 2088d13bc63SEmmanuel Vadot }; 2098d13bc63SEmmanuel Vadot 2108d13bc63SEmmanuel Vadot ext_26m: clk-26m { 2118d13bc63SEmmanuel Vadot compatible = "fixed-clock"; 2128d13bc63SEmmanuel Vadot #clock-cells = <0>; 2138d13bc63SEmmanuel Vadot clock-frequency = <26000000>; 2148d13bc63SEmmanuel Vadot clock-output-names = "ext-26m"; 2158d13bc63SEmmanuel Vadot }; 2168d13bc63SEmmanuel Vadot 2178d13bc63SEmmanuel Vadot ext_4m: clk-4m { 2188d13bc63SEmmanuel Vadot compatible = "fixed-clock"; 2198d13bc63SEmmanuel Vadot #clock-cells = <0>; 2208d13bc63SEmmanuel Vadot clock-frequency = <4000000>; 2218d13bc63SEmmanuel Vadot clock-output-names = "ext-4m"; 2228d13bc63SEmmanuel Vadot }; 2238d13bc63SEmmanuel Vadot 2248d13bc63SEmmanuel Vadot ext_32k: clk-32k { 2258d13bc63SEmmanuel Vadot compatible = "fixed-clock"; 2268d13bc63SEmmanuel Vadot #clock-cells = <0>; 2278d13bc63SEmmanuel Vadot clock-frequency = <32768>; 2288d13bc63SEmmanuel Vadot clock-output-names = "ext-32k"; 2298d13bc63SEmmanuel Vadot }; 2308d13bc63SEmmanuel Vadot 2318d13bc63SEmmanuel Vadot rco_100m: clk-100m { 2328d13bc63SEmmanuel Vadot compatible = "fixed-clock"; 2338d13bc63SEmmanuel Vadot #clock-cells = <0>; 2348d13bc63SEmmanuel Vadot clock-frequency = <100000000>; 2358d13bc63SEmmanuel Vadot clock-output-names = "rco-100m"; 2368d13bc63SEmmanuel Vadot }; 2378d13bc63SEmmanuel Vadot 2388d13bc63SEmmanuel Vadot dphy_312m5: dphy-312m5 { 2398d13bc63SEmmanuel Vadot compatible = "fixed-clock"; 2408d13bc63SEmmanuel Vadot #clock-cells = <0>; 2418d13bc63SEmmanuel Vadot clock-frequency = <312500000>; 2428d13bc63SEmmanuel Vadot clock-output-names = "dphy-312m5"; 2438d13bc63SEmmanuel Vadot }; 2448d13bc63SEmmanuel Vadot 2458d13bc63SEmmanuel Vadot dphy_416m7: dphy-416m7 { 2468d13bc63SEmmanuel Vadot compatible = "fixed-clock"; 2478d13bc63SEmmanuel Vadot #clock-cells = <0>; 2488d13bc63SEmmanuel Vadot clock-frequency = <416700000>; 2498d13bc63SEmmanuel Vadot clock-output-names = "dphy-416m7"; 2508d13bc63SEmmanuel Vadot }; 2518d13bc63SEmmanuel Vadot}; 252