11e5f14efSIgor Belwon// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 21e5f14efSIgor Belwon/* 31e5f14efSIgor Belwon * Samsung Exynos 990 SoC device tree source 41e5f14efSIgor Belwon * 51e5f14efSIgor Belwon * Copyright (c) 2024, Igor Belwon <igor.belwon@mentallysanemainliners.org> 61e5f14efSIgor Belwon */ 71e5f14efSIgor Belwon 872f6ec2bSIgor Belwon#include <dt-bindings/clock/samsung,exynos990.h> 91e5f14efSIgor Belwon#include <dt-bindings/interrupt-controller/arm-gic.h> 101e5f14efSIgor Belwon 111e5f14efSIgor Belwon/ { 121e5f14efSIgor Belwon compatible = "samsung,exynos990"; 131e5f14efSIgor Belwon #address-cells = <2>; 141e5f14efSIgor Belwon #size-cells = <1>; 151e5f14efSIgor Belwon 161e5f14efSIgor Belwon interrupt-parent = <&gic>; 171e5f14efSIgor Belwon 181e5f14efSIgor Belwon aliases { 191e5f14efSIgor Belwon pinctrl0 = &pinctrl_alive; 201e5f14efSIgor Belwon pinctrl1 = &pinctrl_cmgp; 211e5f14efSIgor Belwon pinctrl2 = &pinctrl_hsi1; 221e5f14efSIgor Belwon pinctrl3 = &pinctrl_hsi2; 231e5f14efSIgor Belwon pinctrl4 = &pinctrl_peric0; 241e5f14efSIgor Belwon pinctrl5 = &pinctrl_peric1; 251e5f14efSIgor Belwon pinctrl6 = &pinctrl_vts; 261e5f14efSIgor Belwon }; 271e5f14efSIgor Belwon 281e5f14efSIgor Belwon cpus { 291e5f14efSIgor Belwon #address-cells = <1>; 301e5f14efSIgor Belwon #size-cells = <0>; 311e5f14efSIgor Belwon 321e5f14efSIgor Belwon cpu-map { 331e5f14efSIgor Belwon cluster0 { 341e5f14efSIgor Belwon core0 { 351e5f14efSIgor Belwon cpu = <&cpu0>; 361e5f14efSIgor Belwon }; 371e5f14efSIgor Belwon 381e5f14efSIgor Belwon core1 { 391e5f14efSIgor Belwon cpu = <&cpu1>; 401e5f14efSIgor Belwon }; 411e5f14efSIgor Belwon 421e5f14efSIgor Belwon core2 { 431e5f14efSIgor Belwon cpu = <&cpu2>; 441e5f14efSIgor Belwon }; 451e5f14efSIgor Belwon 461e5f14efSIgor Belwon core3 { 471e5f14efSIgor Belwon cpu = <&cpu3>; 481e5f14efSIgor Belwon }; 491e5f14efSIgor Belwon }; 501e5f14efSIgor Belwon 511e5f14efSIgor Belwon cluster1 { 521e5f14efSIgor Belwon core0 { 531e5f14efSIgor Belwon cpu = <&cpu4>; 541e5f14efSIgor Belwon }; 551e5f14efSIgor Belwon 561e5f14efSIgor Belwon core1 { 571e5f14efSIgor Belwon cpu = <&cpu5>; 581e5f14efSIgor Belwon }; 591e5f14efSIgor Belwon }; 601e5f14efSIgor Belwon 611e5f14efSIgor Belwon cluster2 { 621e5f14efSIgor Belwon core0 { 631e5f14efSIgor Belwon cpu = <&cpu6>; 641e5f14efSIgor Belwon }; 651e5f14efSIgor Belwon 661e5f14efSIgor Belwon core1 { 671e5f14efSIgor Belwon cpu = <&cpu7>; 681e5f14efSIgor Belwon }; 691e5f14efSIgor Belwon }; 701e5f14efSIgor Belwon }; 711e5f14efSIgor Belwon 721e5f14efSIgor Belwon cpu0: cpu@0 { 731e5f14efSIgor Belwon device_type = "cpu"; 741e5f14efSIgor Belwon compatible = "arm,cortex-a55"; 751e5f14efSIgor Belwon reg = <0x0>; 761e5f14efSIgor Belwon enable-method = "psci"; 771e5f14efSIgor Belwon }; 781e5f14efSIgor Belwon 791e5f14efSIgor Belwon cpu1: cpu@1 { 801e5f14efSIgor Belwon device_type = "cpu"; 811e5f14efSIgor Belwon compatible = "arm,cortex-a55"; 821e5f14efSIgor Belwon reg = <0x1>; 831e5f14efSIgor Belwon enable-method = "psci"; 841e5f14efSIgor Belwon }; 851e5f14efSIgor Belwon 861e5f14efSIgor Belwon cpu2: cpu@2 { 871e5f14efSIgor Belwon device_type = "cpu"; 881e5f14efSIgor Belwon compatible = "arm,cortex-a55"; 891e5f14efSIgor Belwon reg = <0x2>; 901e5f14efSIgor Belwon enable-method = "psci"; 911e5f14efSIgor Belwon }; 921e5f14efSIgor Belwon 931e5f14efSIgor Belwon cpu3: cpu@3 { 941e5f14efSIgor Belwon device_type = "cpu"; 951e5f14efSIgor Belwon compatible = "arm,cortex-a55"; 961e5f14efSIgor Belwon reg = <0x3>; 971e5f14efSIgor Belwon enable-method = "psci"; 981e5f14efSIgor Belwon }; 991e5f14efSIgor Belwon 1001e5f14efSIgor Belwon cpu4: cpu@100 { 1011e5f14efSIgor Belwon device_type = "cpu"; 1021e5f14efSIgor Belwon compatible = "arm,cortex-a76"; 1031e5f14efSIgor Belwon reg = <0x4>; 1041e5f14efSIgor Belwon enable-method = "psci"; 1051e5f14efSIgor Belwon }; 1061e5f14efSIgor Belwon 1071e5f14efSIgor Belwon cpu5: cpu@101 { 1081e5f14efSIgor Belwon device_type = "cpu"; 1091e5f14efSIgor Belwon compatible = "arm,cortex-a76"; 1101e5f14efSIgor Belwon reg = <0x5>; 1111e5f14efSIgor Belwon enable-method = "psci"; 1121e5f14efSIgor Belwon }; 1131e5f14efSIgor Belwon 1141e5f14efSIgor Belwon cpu6: cpu@200 { 1151e5f14efSIgor Belwon device_type = "cpu"; 1161e5f14efSIgor Belwon compatible = "samsung,mongoose-m5"; 1171e5f14efSIgor Belwon reg = <0x6>; 1181e5f14efSIgor Belwon enable-method = "psci"; 1191e5f14efSIgor Belwon }; 1201e5f14efSIgor Belwon 1211e5f14efSIgor Belwon cpu7: cpu@201 { 1221e5f14efSIgor Belwon device_type = "cpu"; 1231e5f14efSIgor Belwon compatible = "samsung,mongoose-m5"; 1241e5f14efSIgor Belwon reg = <0x7>; 1251e5f14efSIgor Belwon enable-method = "psci"; 1261e5f14efSIgor Belwon }; 1271e5f14efSIgor Belwon }; 1281e5f14efSIgor Belwon 1291e5f14efSIgor Belwon oscclk: clock-osc { 1301e5f14efSIgor Belwon compatible = "fixed-clock"; 1311e5f14efSIgor Belwon #clock-cells = <0>; 1321e5f14efSIgor Belwon clock-output-names = "oscclk"; 1331e5f14efSIgor Belwon }; 1341e5f14efSIgor Belwon 135*282cbd43SIgor Belwon pmu-a55 { 136*282cbd43SIgor Belwon compatible = "arm,cortex-a55-pmu"; 137*282cbd43SIgor Belwon interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 138*282cbd43SIgor Belwon <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 139*282cbd43SIgor Belwon <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 140*282cbd43SIgor Belwon <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 141*282cbd43SIgor Belwon 142*282cbd43SIgor Belwon interrupt-affinity = <&cpu0>, 143*282cbd43SIgor Belwon <&cpu1>, 144*282cbd43SIgor Belwon <&cpu2>, 145*282cbd43SIgor Belwon <&cpu3>; 146*282cbd43SIgor Belwon }; 147*282cbd43SIgor Belwon 148*282cbd43SIgor Belwon pmu-a76 { 149*282cbd43SIgor Belwon compatible = "arm,cortex-a76-pmu"; 150*282cbd43SIgor Belwon interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 151*282cbd43SIgor Belwon <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 152*282cbd43SIgor Belwon 153*282cbd43SIgor Belwon interrupt-affinity = <&cpu4>, 154*282cbd43SIgor Belwon <&cpu5>; 155*282cbd43SIgor Belwon }; 156*282cbd43SIgor Belwon 157*282cbd43SIgor Belwon pmu-mongoose-m5 { 158*282cbd43SIgor Belwon compatible = "samsung,mongoose-pmu"; 159*282cbd43SIgor Belwon interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>, 160*282cbd43SIgor Belwon <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>; 161*282cbd43SIgor Belwon 162*282cbd43SIgor Belwon interrupt-affinity = <&cpu6>, 163*282cbd43SIgor Belwon <&cpu7>; 164*282cbd43SIgor Belwon }; 165*282cbd43SIgor Belwon 1661e5f14efSIgor Belwon psci { 1671e5f14efSIgor Belwon compatible = "arm,psci-0.2"; 1681e5f14efSIgor Belwon method = "hvc"; 1691e5f14efSIgor Belwon }; 1701e5f14efSIgor Belwon 1711e5f14efSIgor Belwon soc: soc@0 { 1721e5f14efSIgor Belwon compatible = "simple-bus"; 1731e5f14efSIgor Belwon ranges = <0x0 0x0 0x0 0x20000000>; 1741e5f14efSIgor Belwon 1751e5f14efSIgor Belwon #address-cells = <1>; 1761e5f14efSIgor Belwon #size-cells = <1>; 1771e5f14efSIgor Belwon 1781e5f14efSIgor Belwon chipid@10000000 { 1791e5f14efSIgor Belwon compatible = "samsung,exynos990-chipid", 1801e5f14efSIgor Belwon "samsung,exynos850-chipid"; 1811e5f14efSIgor Belwon reg = <0x10000000 0x100>; 1821e5f14efSIgor Belwon }; 1831e5f14efSIgor Belwon 184c2281478SIgor Belwon cmu_peris: clock-controller@10020000 { 185c2281478SIgor Belwon compatible = "samsung,exynos990-cmu-peris"; 186c2281478SIgor Belwon reg = <0x10020000 0x8000>; 187c2281478SIgor Belwon #clock-cells = <1>; 188c2281478SIgor Belwon 189c2281478SIgor Belwon clocks = <&oscclk>, 190c2281478SIgor Belwon <&cmu_top CLK_DOUT_CMU_PERIS_BUS>; 191c2281478SIgor Belwon clock-names = "oscclk", "bus"; 192c2281478SIgor Belwon }; 193c2281478SIgor Belwon 194c2281478SIgor Belwon timer@10040000 { 195c2281478SIgor Belwon compatible = "samsung,exynos990-mct", 196c2281478SIgor Belwon "samsung,exynos4210-mct"; 197c2281478SIgor Belwon reg = <0x10040000 0x800>; 198c2281478SIgor Belwon clocks = <&oscclk>, <&cmu_peris CLK_GOUT_PERIS_MCT_PCLK>; 199c2281478SIgor Belwon clock-names = "fin_pll", "mct"; 200c2281478SIgor Belwon interrupts = <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>, 201c2281478SIgor Belwon <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>, 202c2281478SIgor Belwon <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>, 203c2281478SIgor Belwon <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>, 204c2281478SIgor Belwon <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>, 205c2281478SIgor Belwon <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH>, 206c2281478SIgor Belwon <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>, 207c2281478SIgor Belwon <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>, 208c2281478SIgor Belwon <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>, 209c2281478SIgor Belwon <GIC_SPI 475 IRQ_TYPE_LEVEL_HIGH>, 210c2281478SIgor Belwon <GIC_SPI 476 IRQ_TYPE_LEVEL_HIGH>, 211c2281478SIgor Belwon <GIC_SPI 477 IRQ_TYPE_LEVEL_HIGH>; 212c2281478SIgor Belwon }; 213c2281478SIgor Belwon 2141e5f14efSIgor Belwon gic: interrupt-controller@10101000 { 2151e5f14efSIgor Belwon compatible = "arm,gic-400"; 2161e5f14efSIgor Belwon reg = <0x10101000 0x1000>, 2171e5f14efSIgor Belwon <0x10102000 0x1000>, 2181e5f14efSIgor Belwon <0x10104000 0x2000>, 2191e5f14efSIgor Belwon <0x10106000 0x2000>; 2201e5f14efSIgor Belwon #interrupt-cells = <3>; 2211e5f14efSIgor Belwon interrupt-controller; 2221e5f14efSIgor Belwon interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | 2231e5f14efSIgor Belwon IRQ_TYPE_LEVEL_HIGH)>; 2241e5f14efSIgor Belwon #address-cells = <0>; 2251e5f14efSIgor Belwon #size-cells = <1>; 2261e5f14efSIgor Belwon }; 2271e5f14efSIgor Belwon 2281e5f14efSIgor Belwon pinctrl_peric0: pinctrl@10430000 { 2291e5f14efSIgor Belwon compatible = "samsung,exynos990-pinctrl"; 2301e5f14efSIgor Belwon reg = <0x10430000 0x1000>; 2311e5f14efSIgor Belwon interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>; 2321e5f14efSIgor Belwon }; 2331e5f14efSIgor Belwon 2341e5f14efSIgor Belwon pinctrl_peric1: pinctrl@10730000 { 2351e5f14efSIgor Belwon compatible = "samsung,exynos990-pinctrl"; 2361e5f14efSIgor Belwon reg = <0x10730000 0x1000>; 2371e5f14efSIgor Belwon interrupts = <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>; 2381e5f14efSIgor Belwon }; 2391e5f14efSIgor Belwon 24072f6ec2bSIgor Belwon cmu_hsi0: clock-controller@10a00000 { 24172f6ec2bSIgor Belwon compatible = "samsung,exynos990-cmu-hsi0"; 24272f6ec2bSIgor Belwon reg = <0x10a00000 0x8000>; 24372f6ec2bSIgor Belwon #clock-cells = <1>; 24472f6ec2bSIgor Belwon 24572f6ec2bSIgor Belwon clocks = <&oscclk>, 24672f6ec2bSIgor Belwon <&cmu_top CLK_DOUT_CMU_HSI0_BUS>, 24772f6ec2bSIgor Belwon <&cmu_top CLK_DOUT_CMU_HSI0_USB31DRD>, 24872f6ec2bSIgor Belwon <&cmu_top CLK_DOUT_CMU_HSI0_USBDP_DEBUG>, 24972f6ec2bSIgor Belwon <&cmu_top CLK_DOUT_CMU_HSI0_DPGTC>; 25072f6ec2bSIgor Belwon clock-names = "oscclk", 25172f6ec2bSIgor Belwon "bus", 25272f6ec2bSIgor Belwon "usb31drd", 25372f6ec2bSIgor Belwon "usbdp_debug", 25472f6ec2bSIgor Belwon "dpgtc"; 25572f6ec2bSIgor Belwon }; 25672f6ec2bSIgor Belwon 2571e5f14efSIgor Belwon pinctrl_hsi1: pinctrl@13040000 { 2581e5f14efSIgor Belwon compatible = "samsung,exynos990-pinctrl"; 2591e5f14efSIgor Belwon reg = <0x13040000 0x1000>; 2601e5f14efSIgor Belwon interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>; 2611e5f14efSIgor Belwon }; 2621e5f14efSIgor Belwon 2631e5f14efSIgor Belwon pinctrl_hsi2: pinctrl@13c30000 { 2641e5f14efSIgor Belwon compatible = "samsung,exynos990-pinctrl"; 2651e5f14efSIgor Belwon reg = <0x13c30000 0x1000>; 2661e5f14efSIgor Belwon interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>; 2671e5f14efSIgor Belwon }; 2681e5f14efSIgor Belwon 2691e5f14efSIgor Belwon pinctrl_vts: pinctrl@15580000 { 2701e5f14efSIgor Belwon compatible = "samsung,exynos990-pinctrl"; 2711e5f14efSIgor Belwon reg = <0x15580000 0x1000>; 2721e5f14efSIgor Belwon }; 2731e5f14efSIgor Belwon 2741e5f14efSIgor Belwon pinctrl_alive: pinctrl@15850000 { 2751e5f14efSIgor Belwon compatible = "samsung,exynos990-pinctrl"; 2761e5f14efSIgor Belwon reg = <0x15850000 0x1000>; 2771e5f14efSIgor Belwon 2781e5f14efSIgor Belwon wakeup-interrupt-controller { 2791e5f14efSIgor Belwon compatible = "samsung,exynos990-wakeup-eint", 2801e5f14efSIgor Belwon "samsung,exynos850-wakeup-eint", 2811e5f14efSIgor Belwon "samsung,exynos7-wakeup-eint"; 2821e5f14efSIgor Belwon }; 2831e5f14efSIgor Belwon }; 2841e5f14efSIgor Belwon 285d5b3944bSIgor Belwon pmu_system_controller: system-controller@15860000 { 286d5b3944bSIgor Belwon compatible = "samsung,exynos990-pmu", 287d5b3944bSIgor Belwon "samsung,exynos7-pmu", "syscon"; 288d5b3944bSIgor Belwon reg = <0x15860000 0x10000>; 289d5b3944bSIgor Belwon 290d5b3944bSIgor Belwon reboot: syscon-reboot { 291d5b3944bSIgor Belwon compatible = "syscon-reboot"; 292d5b3944bSIgor Belwon regmap = <&pmu_system_controller>; 293d5b3944bSIgor Belwon offset = <0x3a00>; /* SWRESET */ 294d5b3944bSIgor Belwon mask = <0x2>; /* SWRESET_TRIGGER */ 295d5b3944bSIgor Belwon value = <0x2>; 296d5b3944bSIgor Belwon }; 297d5b3944bSIgor Belwon }; 298d5b3944bSIgor Belwon 2991e5f14efSIgor Belwon pinctrl_cmgp: pinctrl@15c30000 { 3001e5f14efSIgor Belwon compatible = "samsung,exynos990-pinctrl"; 3011e5f14efSIgor Belwon reg = <0x15c30000 0x1000>; 3021e5f14efSIgor Belwon }; 30372f6ec2bSIgor Belwon 30472f6ec2bSIgor Belwon cmu_top: clock-controller@1a330000 { 30572f6ec2bSIgor Belwon compatible = "samsung,exynos990-cmu-top"; 30672f6ec2bSIgor Belwon reg = <0x1a330000 0x8000>; 30772f6ec2bSIgor Belwon #clock-cells = <1>; 30872f6ec2bSIgor Belwon 30972f6ec2bSIgor Belwon clocks = <&oscclk>; 31072f6ec2bSIgor Belwon clock-names = "oscclk"; 31172f6ec2bSIgor Belwon }; 3121e5f14efSIgor Belwon }; 3131e5f14efSIgor Belwon 3141e5f14efSIgor Belwon timer { 3151e5f14efSIgor Belwon compatible = "arm,armv8-timer"; 3161e5f14efSIgor Belwon interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 3171e5f14efSIgor Belwon <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 3181e5f14efSIgor Belwon <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 3191e5f14efSIgor Belwon <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 3201e5f14efSIgor Belwon 3211e5f14efSIgor Belwon /* 3221e5f14efSIgor Belwon * Non-updatable, broken stock Samsung bootloader does not 3231e5f14efSIgor Belwon * configure CNTFRQ_EL0 3241e5f14efSIgor Belwon */ 3251e5f14efSIgor Belwon clock-frequency = <26000000>; 3261e5f14efSIgor Belwon }; 3271e5f14efSIgor Belwon}; 3281e5f14efSIgor Belwon 3291e5f14efSIgor Belwon#include "exynos990-pinctrl.dtsi" 330