15f62a964SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 25f62a964SEmmanuel Vadot/* 35f62a964SEmmanuel Vadot * Samsung Exynos 990 SoC device tree source 45f62a964SEmmanuel Vadot * 55f62a964SEmmanuel Vadot * Copyright (c) 2024, Igor Belwon <igor.belwon@mentallysanemainliners.org> 65f62a964SEmmanuel Vadot */ 75f62a964SEmmanuel Vadot 8*2846c905SEmmanuel Vadot#include <dt-bindings/clock/samsung,exynos990.h> 95f62a964SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 105f62a964SEmmanuel Vadot 115f62a964SEmmanuel Vadot/ { 125f62a964SEmmanuel Vadot compatible = "samsung,exynos990"; 135f62a964SEmmanuel Vadot #address-cells = <2>; 145f62a964SEmmanuel Vadot #size-cells = <1>; 155f62a964SEmmanuel Vadot 165f62a964SEmmanuel Vadot interrupt-parent = <&gic>; 175f62a964SEmmanuel Vadot 185f62a964SEmmanuel Vadot aliases { 195f62a964SEmmanuel Vadot pinctrl0 = &pinctrl_alive; 205f62a964SEmmanuel Vadot pinctrl1 = &pinctrl_cmgp; 215f62a964SEmmanuel Vadot pinctrl2 = &pinctrl_hsi1; 225f62a964SEmmanuel Vadot pinctrl3 = &pinctrl_hsi2; 235f62a964SEmmanuel Vadot pinctrl4 = &pinctrl_peric0; 245f62a964SEmmanuel Vadot pinctrl5 = &pinctrl_peric1; 255f62a964SEmmanuel Vadot pinctrl6 = &pinctrl_vts; 265f62a964SEmmanuel Vadot }; 275f62a964SEmmanuel Vadot 285f62a964SEmmanuel Vadot arm-a55-pmu { 295f62a964SEmmanuel Vadot compatible = "arm,cortex-a55-pmu"; 305f62a964SEmmanuel Vadot interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 315f62a964SEmmanuel Vadot <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 325f62a964SEmmanuel Vadot <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 335f62a964SEmmanuel Vadot <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 345f62a964SEmmanuel Vadot 355f62a964SEmmanuel Vadot interrupt-affinity = <&cpu0>, 365f62a964SEmmanuel Vadot <&cpu1>, 375f62a964SEmmanuel Vadot <&cpu2>, 385f62a964SEmmanuel Vadot <&cpu3>; 395f62a964SEmmanuel Vadot }; 405f62a964SEmmanuel Vadot 415f62a964SEmmanuel Vadot arm-a76-pmu { 425f62a964SEmmanuel Vadot compatible = "arm,cortex-a76-pmu"; 435f62a964SEmmanuel Vadot interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 445f62a964SEmmanuel Vadot <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 455f62a964SEmmanuel Vadot 465f62a964SEmmanuel Vadot interrupt-affinity = <&cpu4>, 475f62a964SEmmanuel Vadot <&cpu5>; 485f62a964SEmmanuel Vadot }; 495f62a964SEmmanuel Vadot 50*2846c905SEmmanuel Vadot mongoose-m5-pmu { 51*2846c905SEmmanuel Vadot compatible = "samsung,mongoose-pmu"; 52*2846c905SEmmanuel Vadot interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>, 53*2846c905SEmmanuel Vadot <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>; 54*2846c905SEmmanuel Vadot 55*2846c905SEmmanuel Vadot interrupt-affinity = <&cpu6>, 56*2846c905SEmmanuel Vadot <&cpu7>; 57*2846c905SEmmanuel Vadot }; 585f62a964SEmmanuel Vadot 595f62a964SEmmanuel Vadot cpus { 605f62a964SEmmanuel Vadot #address-cells = <1>; 615f62a964SEmmanuel Vadot #size-cells = <0>; 625f62a964SEmmanuel Vadot 635f62a964SEmmanuel Vadot cpu-map { 645f62a964SEmmanuel Vadot cluster0 { 655f62a964SEmmanuel Vadot core0 { 665f62a964SEmmanuel Vadot cpu = <&cpu0>; 675f62a964SEmmanuel Vadot }; 685f62a964SEmmanuel Vadot 695f62a964SEmmanuel Vadot core1 { 705f62a964SEmmanuel Vadot cpu = <&cpu1>; 715f62a964SEmmanuel Vadot }; 725f62a964SEmmanuel Vadot 735f62a964SEmmanuel Vadot core2 { 745f62a964SEmmanuel Vadot cpu = <&cpu2>; 755f62a964SEmmanuel Vadot }; 765f62a964SEmmanuel Vadot 775f62a964SEmmanuel Vadot core3 { 785f62a964SEmmanuel Vadot cpu = <&cpu3>; 795f62a964SEmmanuel Vadot }; 805f62a964SEmmanuel Vadot }; 815f62a964SEmmanuel Vadot 825f62a964SEmmanuel Vadot cluster1 { 835f62a964SEmmanuel Vadot core0 { 845f62a964SEmmanuel Vadot cpu = <&cpu4>; 855f62a964SEmmanuel Vadot }; 865f62a964SEmmanuel Vadot 875f62a964SEmmanuel Vadot core1 { 885f62a964SEmmanuel Vadot cpu = <&cpu5>; 895f62a964SEmmanuel Vadot }; 905f62a964SEmmanuel Vadot }; 915f62a964SEmmanuel Vadot 925f62a964SEmmanuel Vadot cluster2 { 935f62a964SEmmanuel Vadot core0 { 945f62a964SEmmanuel Vadot cpu = <&cpu6>; 955f62a964SEmmanuel Vadot }; 965f62a964SEmmanuel Vadot 975f62a964SEmmanuel Vadot core1 { 985f62a964SEmmanuel Vadot cpu = <&cpu7>; 995f62a964SEmmanuel Vadot }; 1005f62a964SEmmanuel Vadot }; 1015f62a964SEmmanuel Vadot }; 1025f62a964SEmmanuel Vadot 1035f62a964SEmmanuel Vadot cpu0: cpu@0 { 1045f62a964SEmmanuel Vadot device_type = "cpu"; 1055f62a964SEmmanuel Vadot compatible = "arm,cortex-a55"; 1065f62a964SEmmanuel Vadot reg = <0x0>; 1075f62a964SEmmanuel Vadot enable-method = "psci"; 1085f62a964SEmmanuel Vadot }; 1095f62a964SEmmanuel Vadot 1105f62a964SEmmanuel Vadot cpu1: cpu@1 { 1115f62a964SEmmanuel Vadot device_type = "cpu"; 1125f62a964SEmmanuel Vadot compatible = "arm,cortex-a55"; 1135f62a964SEmmanuel Vadot reg = <0x1>; 1145f62a964SEmmanuel Vadot enable-method = "psci"; 1155f62a964SEmmanuel Vadot }; 1165f62a964SEmmanuel Vadot 1175f62a964SEmmanuel Vadot cpu2: cpu@2 { 1185f62a964SEmmanuel Vadot device_type = "cpu"; 1195f62a964SEmmanuel Vadot compatible = "arm,cortex-a55"; 1205f62a964SEmmanuel Vadot reg = <0x2>; 1215f62a964SEmmanuel Vadot enable-method = "psci"; 1225f62a964SEmmanuel Vadot }; 1235f62a964SEmmanuel Vadot 1245f62a964SEmmanuel Vadot cpu3: cpu@3 { 1255f62a964SEmmanuel Vadot device_type = "cpu"; 1265f62a964SEmmanuel Vadot compatible = "arm,cortex-a55"; 1275f62a964SEmmanuel Vadot reg = <0x3>; 1285f62a964SEmmanuel Vadot enable-method = "psci"; 1295f62a964SEmmanuel Vadot }; 1305f62a964SEmmanuel Vadot 1315f62a964SEmmanuel Vadot cpu4: cpu@100 { 1325f62a964SEmmanuel Vadot device_type = "cpu"; 1335f62a964SEmmanuel Vadot compatible = "arm,cortex-a76"; 1345f62a964SEmmanuel Vadot reg = <0x4>; 1355f62a964SEmmanuel Vadot enable-method = "psci"; 1365f62a964SEmmanuel Vadot }; 1375f62a964SEmmanuel Vadot 1385f62a964SEmmanuel Vadot cpu5: cpu@101 { 1395f62a964SEmmanuel Vadot device_type = "cpu"; 1405f62a964SEmmanuel Vadot compatible = "arm,cortex-a76"; 1415f62a964SEmmanuel Vadot reg = <0x5>; 1425f62a964SEmmanuel Vadot enable-method = "psci"; 1435f62a964SEmmanuel Vadot }; 1445f62a964SEmmanuel Vadot 1455f62a964SEmmanuel Vadot cpu6: cpu@200 { 1465f62a964SEmmanuel Vadot device_type = "cpu"; 1475f62a964SEmmanuel Vadot compatible = "samsung,mongoose-m5"; 1485f62a964SEmmanuel Vadot reg = <0x6>; 1495f62a964SEmmanuel Vadot enable-method = "psci"; 1505f62a964SEmmanuel Vadot }; 1515f62a964SEmmanuel Vadot 1525f62a964SEmmanuel Vadot cpu7: cpu@201 { 1535f62a964SEmmanuel Vadot device_type = "cpu"; 1545f62a964SEmmanuel Vadot compatible = "samsung,mongoose-m5"; 1555f62a964SEmmanuel Vadot reg = <0x7>; 1565f62a964SEmmanuel Vadot enable-method = "psci"; 1575f62a964SEmmanuel Vadot }; 1585f62a964SEmmanuel Vadot }; 1595f62a964SEmmanuel Vadot 1605f62a964SEmmanuel Vadot oscclk: clock-osc { 1615f62a964SEmmanuel Vadot compatible = "fixed-clock"; 1625f62a964SEmmanuel Vadot #clock-cells = <0>; 1635f62a964SEmmanuel Vadot clock-output-names = "oscclk"; 1645f62a964SEmmanuel Vadot }; 1655f62a964SEmmanuel Vadot 1665f62a964SEmmanuel Vadot psci { 1675f62a964SEmmanuel Vadot compatible = "arm,psci-0.2"; 1685f62a964SEmmanuel Vadot method = "hvc"; 1695f62a964SEmmanuel Vadot }; 1705f62a964SEmmanuel Vadot 1715f62a964SEmmanuel Vadot soc: soc@0 { 1725f62a964SEmmanuel Vadot compatible = "simple-bus"; 1735f62a964SEmmanuel Vadot ranges = <0x0 0x0 0x0 0x20000000>; 1745f62a964SEmmanuel Vadot 1755f62a964SEmmanuel Vadot #address-cells = <1>; 1765f62a964SEmmanuel Vadot #size-cells = <1>; 1775f62a964SEmmanuel Vadot 1785f62a964SEmmanuel Vadot chipid@10000000 { 1795f62a964SEmmanuel Vadot compatible = "samsung,exynos990-chipid", 1805f62a964SEmmanuel Vadot "samsung,exynos850-chipid"; 1815f62a964SEmmanuel Vadot reg = <0x10000000 0x100>; 1825f62a964SEmmanuel Vadot }; 1835f62a964SEmmanuel Vadot 1845f62a964SEmmanuel Vadot gic: interrupt-controller@10101000 { 1855f62a964SEmmanuel Vadot compatible = "arm,gic-400"; 1865f62a964SEmmanuel Vadot reg = <0x10101000 0x1000>, 1875f62a964SEmmanuel Vadot <0x10102000 0x1000>, 1885f62a964SEmmanuel Vadot <0x10104000 0x2000>, 1895f62a964SEmmanuel Vadot <0x10106000 0x2000>; 1905f62a964SEmmanuel Vadot #interrupt-cells = <3>; 1915f62a964SEmmanuel Vadot interrupt-controller; 1925f62a964SEmmanuel Vadot interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | 1935f62a964SEmmanuel Vadot IRQ_TYPE_LEVEL_HIGH)>; 1945f62a964SEmmanuel Vadot #address-cells = <0>; 1955f62a964SEmmanuel Vadot #size-cells = <1>; 1965f62a964SEmmanuel Vadot }; 1975f62a964SEmmanuel Vadot 1985f62a964SEmmanuel Vadot pinctrl_peric0: pinctrl@10430000 { 1995f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2005f62a964SEmmanuel Vadot reg = <0x10430000 0x1000>; 2015f62a964SEmmanuel Vadot interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>; 2025f62a964SEmmanuel Vadot }; 2035f62a964SEmmanuel Vadot 2045f62a964SEmmanuel Vadot pinctrl_peric1: pinctrl@10730000 { 2055f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2065f62a964SEmmanuel Vadot reg = <0x10730000 0x1000>; 2075f62a964SEmmanuel Vadot interrupts = <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>; 2085f62a964SEmmanuel Vadot }; 2095f62a964SEmmanuel Vadot 210*2846c905SEmmanuel Vadot cmu_hsi0: clock-controller@10a00000 { 211*2846c905SEmmanuel Vadot compatible = "samsung,exynos990-cmu-hsi0"; 212*2846c905SEmmanuel Vadot reg = <0x10a00000 0x8000>; 213*2846c905SEmmanuel Vadot #clock-cells = <1>; 214*2846c905SEmmanuel Vadot 215*2846c905SEmmanuel Vadot clocks = <&oscclk>, 216*2846c905SEmmanuel Vadot <&cmu_top CLK_DOUT_CMU_HSI0_BUS>, 217*2846c905SEmmanuel Vadot <&cmu_top CLK_DOUT_CMU_HSI0_USB31DRD>, 218*2846c905SEmmanuel Vadot <&cmu_top CLK_DOUT_CMU_HSI0_USBDP_DEBUG>, 219*2846c905SEmmanuel Vadot <&cmu_top CLK_DOUT_CMU_HSI0_DPGTC>; 220*2846c905SEmmanuel Vadot clock-names = "oscclk", 221*2846c905SEmmanuel Vadot "bus", 222*2846c905SEmmanuel Vadot "usb31drd", 223*2846c905SEmmanuel Vadot "usbdp_debug", 224*2846c905SEmmanuel Vadot "dpgtc"; 225*2846c905SEmmanuel Vadot }; 226*2846c905SEmmanuel Vadot 2275f62a964SEmmanuel Vadot pinctrl_hsi1: pinctrl@13040000 { 2285f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2295f62a964SEmmanuel Vadot reg = <0x13040000 0x1000>; 2305f62a964SEmmanuel Vadot interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>; 2315f62a964SEmmanuel Vadot }; 2325f62a964SEmmanuel Vadot 2335f62a964SEmmanuel Vadot pinctrl_hsi2: pinctrl@13c30000 { 2345f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2355f62a964SEmmanuel Vadot reg = <0x13c30000 0x1000>; 2365f62a964SEmmanuel Vadot interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>; 2375f62a964SEmmanuel Vadot }; 2385f62a964SEmmanuel Vadot 2395f62a964SEmmanuel Vadot pinctrl_vts: pinctrl@15580000 { 2405f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2415f62a964SEmmanuel Vadot reg = <0x15580000 0x1000>; 2425f62a964SEmmanuel Vadot }; 2435f62a964SEmmanuel Vadot 2445f62a964SEmmanuel Vadot pinctrl_alive: pinctrl@15850000 { 2455f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2465f62a964SEmmanuel Vadot reg = <0x15850000 0x1000>; 2475f62a964SEmmanuel Vadot 2485f62a964SEmmanuel Vadot wakeup-interrupt-controller { 2495f62a964SEmmanuel Vadot compatible = "samsung,exynos990-wakeup-eint", 2505f62a964SEmmanuel Vadot "samsung,exynos850-wakeup-eint", 2515f62a964SEmmanuel Vadot "samsung,exynos7-wakeup-eint"; 2525f62a964SEmmanuel Vadot }; 2535f62a964SEmmanuel Vadot }; 2545f62a964SEmmanuel Vadot 255*2846c905SEmmanuel Vadot pmu_system_controller: system-controller@15860000 { 256*2846c905SEmmanuel Vadot compatible = "samsung,exynos990-pmu", 257*2846c905SEmmanuel Vadot "samsung,exynos7-pmu", "syscon"; 258*2846c905SEmmanuel Vadot reg = <0x15860000 0x10000>; 259*2846c905SEmmanuel Vadot 260*2846c905SEmmanuel Vadot reboot: syscon-reboot { 261*2846c905SEmmanuel Vadot compatible = "syscon-reboot"; 262*2846c905SEmmanuel Vadot regmap = <&pmu_system_controller>; 263*2846c905SEmmanuel Vadot offset = <0x3a00>; /* SWRESET */ 264*2846c905SEmmanuel Vadot mask = <0x2>; /* SWRESET_TRIGGER */ 265*2846c905SEmmanuel Vadot value = <0x2>; 266*2846c905SEmmanuel Vadot }; 267*2846c905SEmmanuel Vadot }; 268*2846c905SEmmanuel Vadot 2695f62a964SEmmanuel Vadot pinctrl_cmgp: pinctrl@15c30000 { 2705f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2715f62a964SEmmanuel Vadot reg = <0x15c30000 0x1000>; 2725f62a964SEmmanuel Vadot }; 273*2846c905SEmmanuel Vadot 274*2846c905SEmmanuel Vadot cmu_top: clock-controller@1a330000 { 275*2846c905SEmmanuel Vadot compatible = "samsung,exynos990-cmu-top"; 276*2846c905SEmmanuel Vadot reg = <0x1a330000 0x8000>; 277*2846c905SEmmanuel Vadot #clock-cells = <1>; 278*2846c905SEmmanuel Vadot 279*2846c905SEmmanuel Vadot clocks = <&oscclk>; 280*2846c905SEmmanuel Vadot clock-names = "oscclk"; 281*2846c905SEmmanuel Vadot }; 2825f62a964SEmmanuel Vadot }; 2835f62a964SEmmanuel Vadot 2845f62a964SEmmanuel Vadot timer { 2855f62a964SEmmanuel Vadot compatible = "arm,armv8-timer"; 2865f62a964SEmmanuel Vadot interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 2875f62a964SEmmanuel Vadot <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 2885f62a964SEmmanuel Vadot <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 2895f62a964SEmmanuel Vadot <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 2905f62a964SEmmanuel Vadot 2915f62a964SEmmanuel Vadot /* 2925f62a964SEmmanuel Vadot * Non-updatable, broken stock Samsung bootloader does not 2935f62a964SEmmanuel Vadot * configure CNTFRQ_EL0 2945f62a964SEmmanuel Vadot */ 2955f62a964SEmmanuel Vadot clock-frequency = <26000000>; 2965f62a964SEmmanuel Vadot }; 2975f62a964SEmmanuel Vadot}; 2985f62a964SEmmanuel Vadot 2995f62a964SEmmanuel Vadot#include "exynos990-pinctrl.dtsi" 300