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 82846c905SEmmanuel 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 cpus { 295f62a964SEmmanuel Vadot #address-cells = <1>; 305f62a964SEmmanuel Vadot #size-cells = <0>; 315f62a964SEmmanuel Vadot 325f62a964SEmmanuel Vadot cpu-map { 335f62a964SEmmanuel Vadot cluster0 { 345f62a964SEmmanuel Vadot core0 { 355f62a964SEmmanuel Vadot cpu = <&cpu0>; 365f62a964SEmmanuel Vadot }; 375f62a964SEmmanuel Vadot 385f62a964SEmmanuel Vadot core1 { 395f62a964SEmmanuel Vadot cpu = <&cpu1>; 405f62a964SEmmanuel Vadot }; 415f62a964SEmmanuel Vadot 425f62a964SEmmanuel Vadot core2 { 435f62a964SEmmanuel Vadot cpu = <&cpu2>; 445f62a964SEmmanuel Vadot }; 455f62a964SEmmanuel Vadot 465f62a964SEmmanuel Vadot core3 { 475f62a964SEmmanuel Vadot cpu = <&cpu3>; 485f62a964SEmmanuel Vadot }; 495f62a964SEmmanuel Vadot }; 505f62a964SEmmanuel Vadot 515f62a964SEmmanuel Vadot cluster1 { 525f62a964SEmmanuel Vadot core0 { 535f62a964SEmmanuel Vadot cpu = <&cpu4>; 545f62a964SEmmanuel Vadot }; 555f62a964SEmmanuel Vadot 565f62a964SEmmanuel Vadot core1 { 575f62a964SEmmanuel Vadot cpu = <&cpu5>; 585f62a964SEmmanuel Vadot }; 595f62a964SEmmanuel Vadot }; 605f62a964SEmmanuel Vadot 615f62a964SEmmanuel Vadot cluster2 { 625f62a964SEmmanuel Vadot core0 { 635f62a964SEmmanuel Vadot cpu = <&cpu6>; 645f62a964SEmmanuel Vadot }; 655f62a964SEmmanuel Vadot 665f62a964SEmmanuel Vadot core1 { 675f62a964SEmmanuel Vadot cpu = <&cpu7>; 685f62a964SEmmanuel Vadot }; 695f62a964SEmmanuel Vadot }; 705f62a964SEmmanuel Vadot }; 715f62a964SEmmanuel Vadot 725f62a964SEmmanuel Vadot cpu0: cpu@0 { 735f62a964SEmmanuel Vadot device_type = "cpu"; 745f62a964SEmmanuel Vadot compatible = "arm,cortex-a55"; 755f62a964SEmmanuel Vadot reg = <0x0>; 765f62a964SEmmanuel Vadot enable-method = "psci"; 775f62a964SEmmanuel Vadot }; 785f62a964SEmmanuel Vadot 795f62a964SEmmanuel Vadot cpu1: cpu@1 { 805f62a964SEmmanuel Vadot device_type = "cpu"; 815f62a964SEmmanuel Vadot compatible = "arm,cortex-a55"; 825f62a964SEmmanuel Vadot reg = <0x1>; 835f62a964SEmmanuel Vadot enable-method = "psci"; 845f62a964SEmmanuel Vadot }; 855f62a964SEmmanuel Vadot 865f62a964SEmmanuel Vadot cpu2: cpu@2 { 875f62a964SEmmanuel Vadot device_type = "cpu"; 885f62a964SEmmanuel Vadot compatible = "arm,cortex-a55"; 895f62a964SEmmanuel Vadot reg = <0x2>; 905f62a964SEmmanuel Vadot enable-method = "psci"; 915f62a964SEmmanuel Vadot }; 925f62a964SEmmanuel Vadot 935f62a964SEmmanuel Vadot cpu3: cpu@3 { 945f62a964SEmmanuel Vadot device_type = "cpu"; 955f62a964SEmmanuel Vadot compatible = "arm,cortex-a55"; 965f62a964SEmmanuel Vadot reg = <0x3>; 975f62a964SEmmanuel Vadot enable-method = "psci"; 985f62a964SEmmanuel Vadot }; 995f62a964SEmmanuel Vadot 1005f62a964SEmmanuel Vadot cpu4: cpu@100 { 1015f62a964SEmmanuel Vadot device_type = "cpu"; 1025f62a964SEmmanuel Vadot compatible = "arm,cortex-a76"; 1035f62a964SEmmanuel Vadot reg = <0x4>; 1045f62a964SEmmanuel Vadot enable-method = "psci"; 1055f62a964SEmmanuel Vadot }; 1065f62a964SEmmanuel Vadot 1075f62a964SEmmanuel Vadot cpu5: cpu@101 { 1085f62a964SEmmanuel Vadot device_type = "cpu"; 1095f62a964SEmmanuel Vadot compatible = "arm,cortex-a76"; 1105f62a964SEmmanuel Vadot reg = <0x5>; 1115f62a964SEmmanuel Vadot enable-method = "psci"; 1125f62a964SEmmanuel Vadot }; 1135f62a964SEmmanuel Vadot 1145f62a964SEmmanuel Vadot cpu6: cpu@200 { 1155f62a964SEmmanuel Vadot device_type = "cpu"; 1165f62a964SEmmanuel Vadot compatible = "samsung,mongoose-m5"; 1175f62a964SEmmanuel Vadot reg = <0x6>; 1185f62a964SEmmanuel Vadot enable-method = "psci"; 1195f62a964SEmmanuel Vadot }; 1205f62a964SEmmanuel Vadot 1215f62a964SEmmanuel Vadot cpu7: cpu@201 { 1225f62a964SEmmanuel Vadot device_type = "cpu"; 1235f62a964SEmmanuel Vadot compatible = "samsung,mongoose-m5"; 1245f62a964SEmmanuel Vadot reg = <0x7>; 1255f62a964SEmmanuel Vadot enable-method = "psci"; 1265f62a964SEmmanuel Vadot }; 1275f62a964SEmmanuel Vadot }; 1285f62a964SEmmanuel Vadot 1295f62a964SEmmanuel Vadot oscclk: clock-osc { 1305f62a964SEmmanuel Vadot compatible = "fixed-clock"; 1315f62a964SEmmanuel Vadot #clock-cells = <0>; 1325f62a964SEmmanuel Vadot clock-output-names = "oscclk"; 1335f62a964SEmmanuel Vadot }; 1345f62a964SEmmanuel Vadot 135*8ccc0d23SEmmanuel Vadot pmu-a55 { 136*8ccc0d23SEmmanuel Vadot compatible = "arm,cortex-a55-pmu"; 137*8ccc0d23SEmmanuel Vadot interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 138*8ccc0d23SEmmanuel Vadot <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 139*8ccc0d23SEmmanuel Vadot <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 140*8ccc0d23SEmmanuel Vadot <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 141*8ccc0d23SEmmanuel Vadot 142*8ccc0d23SEmmanuel Vadot interrupt-affinity = <&cpu0>, 143*8ccc0d23SEmmanuel Vadot <&cpu1>, 144*8ccc0d23SEmmanuel Vadot <&cpu2>, 145*8ccc0d23SEmmanuel Vadot <&cpu3>; 146*8ccc0d23SEmmanuel Vadot }; 147*8ccc0d23SEmmanuel Vadot 148*8ccc0d23SEmmanuel Vadot pmu-a76 { 149*8ccc0d23SEmmanuel Vadot compatible = "arm,cortex-a76-pmu"; 150*8ccc0d23SEmmanuel Vadot interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 151*8ccc0d23SEmmanuel Vadot <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 152*8ccc0d23SEmmanuel Vadot 153*8ccc0d23SEmmanuel Vadot interrupt-affinity = <&cpu4>, 154*8ccc0d23SEmmanuel Vadot <&cpu5>; 155*8ccc0d23SEmmanuel Vadot }; 156*8ccc0d23SEmmanuel Vadot 157*8ccc0d23SEmmanuel Vadot pmu-mongoose-m5 { 158*8ccc0d23SEmmanuel Vadot compatible = "samsung,mongoose-pmu"; 159*8ccc0d23SEmmanuel Vadot interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>, 160*8ccc0d23SEmmanuel Vadot <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>; 161*8ccc0d23SEmmanuel Vadot 162*8ccc0d23SEmmanuel Vadot interrupt-affinity = <&cpu6>, 163*8ccc0d23SEmmanuel Vadot <&cpu7>; 164*8ccc0d23SEmmanuel Vadot }; 165*8ccc0d23SEmmanuel 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 184*8ccc0d23SEmmanuel Vadot cmu_peris: clock-controller@10020000 { 185*8ccc0d23SEmmanuel Vadot compatible = "samsung,exynos990-cmu-peris"; 186*8ccc0d23SEmmanuel Vadot reg = <0x10020000 0x8000>; 187*8ccc0d23SEmmanuel Vadot #clock-cells = <1>; 188*8ccc0d23SEmmanuel Vadot 189*8ccc0d23SEmmanuel Vadot clocks = <&oscclk>, 190*8ccc0d23SEmmanuel Vadot <&cmu_top CLK_DOUT_CMU_PERIS_BUS>; 191*8ccc0d23SEmmanuel Vadot clock-names = "oscclk", "bus"; 192*8ccc0d23SEmmanuel Vadot }; 193*8ccc0d23SEmmanuel Vadot 194*8ccc0d23SEmmanuel Vadot timer@10040000 { 195*8ccc0d23SEmmanuel Vadot compatible = "samsung,exynos990-mct", 196*8ccc0d23SEmmanuel Vadot "samsung,exynos4210-mct"; 197*8ccc0d23SEmmanuel Vadot reg = <0x10040000 0x800>; 198*8ccc0d23SEmmanuel Vadot clocks = <&oscclk>, <&cmu_peris CLK_GOUT_PERIS_MCT_PCLK>; 199*8ccc0d23SEmmanuel Vadot clock-names = "fin_pll", "mct"; 200*8ccc0d23SEmmanuel Vadot interrupts = <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>, 201*8ccc0d23SEmmanuel Vadot <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>, 202*8ccc0d23SEmmanuel Vadot <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>, 203*8ccc0d23SEmmanuel Vadot <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>, 204*8ccc0d23SEmmanuel Vadot <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>, 205*8ccc0d23SEmmanuel Vadot <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH>, 206*8ccc0d23SEmmanuel Vadot <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>, 207*8ccc0d23SEmmanuel Vadot <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>, 208*8ccc0d23SEmmanuel Vadot <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>, 209*8ccc0d23SEmmanuel Vadot <GIC_SPI 475 IRQ_TYPE_LEVEL_HIGH>, 210*8ccc0d23SEmmanuel Vadot <GIC_SPI 476 IRQ_TYPE_LEVEL_HIGH>, 211*8ccc0d23SEmmanuel Vadot <GIC_SPI 477 IRQ_TYPE_LEVEL_HIGH>; 212*8ccc0d23SEmmanuel Vadot }; 213*8ccc0d23SEmmanuel Vadot 2145f62a964SEmmanuel Vadot gic: interrupt-controller@10101000 { 2155f62a964SEmmanuel Vadot compatible = "arm,gic-400"; 2165f62a964SEmmanuel Vadot reg = <0x10101000 0x1000>, 2175f62a964SEmmanuel Vadot <0x10102000 0x1000>, 2185f62a964SEmmanuel Vadot <0x10104000 0x2000>, 2195f62a964SEmmanuel Vadot <0x10106000 0x2000>; 2205f62a964SEmmanuel Vadot #interrupt-cells = <3>; 2215f62a964SEmmanuel Vadot interrupt-controller; 2225f62a964SEmmanuel Vadot interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | 2235f62a964SEmmanuel Vadot IRQ_TYPE_LEVEL_HIGH)>; 2245f62a964SEmmanuel Vadot #address-cells = <0>; 2255f62a964SEmmanuel Vadot #size-cells = <1>; 2265f62a964SEmmanuel Vadot }; 2275f62a964SEmmanuel Vadot 2285f62a964SEmmanuel Vadot pinctrl_peric0: pinctrl@10430000 { 2295f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2305f62a964SEmmanuel Vadot reg = <0x10430000 0x1000>; 2315f62a964SEmmanuel Vadot interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>; 2325f62a964SEmmanuel Vadot }; 2335f62a964SEmmanuel Vadot 2345f62a964SEmmanuel Vadot pinctrl_peric1: pinctrl@10730000 { 2355f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2365f62a964SEmmanuel Vadot reg = <0x10730000 0x1000>; 2375f62a964SEmmanuel Vadot interrupts = <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>; 2385f62a964SEmmanuel Vadot }; 2395f62a964SEmmanuel Vadot 2402846c905SEmmanuel Vadot cmu_hsi0: clock-controller@10a00000 { 2412846c905SEmmanuel Vadot compatible = "samsung,exynos990-cmu-hsi0"; 2422846c905SEmmanuel Vadot reg = <0x10a00000 0x8000>; 2432846c905SEmmanuel Vadot #clock-cells = <1>; 2442846c905SEmmanuel Vadot 2452846c905SEmmanuel Vadot clocks = <&oscclk>, 2462846c905SEmmanuel Vadot <&cmu_top CLK_DOUT_CMU_HSI0_BUS>, 2472846c905SEmmanuel Vadot <&cmu_top CLK_DOUT_CMU_HSI0_USB31DRD>, 2482846c905SEmmanuel Vadot <&cmu_top CLK_DOUT_CMU_HSI0_USBDP_DEBUG>, 2492846c905SEmmanuel Vadot <&cmu_top CLK_DOUT_CMU_HSI0_DPGTC>; 2502846c905SEmmanuel Vadot clock-names = "oscclk", 2512846c905SEmmanuel Vadot "bus", 2522846c905SEmmanuel Vadot "usb31drd", 2532846c905SEmmanuel Vadot "usbdp_debug", 2542846c905SEmmanuel Vadot "dpgtc"; 2552846c905SEmmanuel Vadot }; 2562846c905SEmmanuel Vadot 2575f62a964SEmmanuel Vadot pinctrl_hsi1: pinctrl@13040000 { 2585f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2595f62a964SEmmanuel Vadot reg = <0x13040000 0x1000>; 2605f62a964SEmmanuel Vadot interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>; 2615f62a964SEmmanuel Vadot }; 2625f62a964SEmmanuel Vadot 2635f62a964SEmmanuel Vadot pinctrl_hsi2: pinctrl@13c30000 { 2645f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2655f62a964SEmmanuel Vadot reg = <0x13c30000 0x1000>; 2665f62a964SEmmanuel Vadot interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>; 2675f62a964SEmmanuel Vadot }; 2685f62a964SEmmanuel Vadot 2695f62a964SEmmanuel Vadot pinctrl_vts: pinctrl@15580000 { 2705f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2715f62a964SEmmanuel Vadot reg = <0x15580000 0x1000>; 2725f62a964SEmmanuel Vadot }; 2735f62a964SEmmanuel Vadot 2745f62a964SEmmanuel Vadot pinctrl_alive: pinctrl@15850000 { 2755f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 2765f62a964SEmmanuel Vadot reg = <0x15850000 0x1000>; 2775f62a964SEmmanuel Vadot 2785f62a964SEmmanuel Vadot wakeup-interrupt-controller { 2795f62a964SEmmanuel Vadot compatible = "samsung,exynos990-wakeup-eint", 2805f62a964SEmmanuel Vadot "samsung,exynos850-wakeup-eint", 2815f62a964SEmmanuel Vadot "samsung,exynos7-wakeup-eint"; 2825f62a964SEmmanuel Vadot }; 2835f62a964SEmmanuel Vadot }; 2845f62a964SEmmanuel Vadot 2852846c905SEmmanuel Vadot pmu_system_controller: system-controller@15860000 { 2862846c905SEmmanuel Vadot compatible = "samsung,exynos990-pmu", 2872846c905SEmmanuel Vadot "samsung,exynos7-pmu", "syscon"; 2882846c905SEmmanuel Vadot reg = <0x15860000 0x10000>; 2892846c905SEmmanuel Vadot 2902846c905SEmmanuel Vadot reboot: syscon-reboot { 2912846c905SEmmanuel Vadot compatible = "syscon-reboot"; 2922846c905SEmmanuel Vadot regmap = <&pmu_system_controller>; 2932846c905SEmmanuel Vadot offset = <0x3a00>; /* SWRESET */ 2942846c905SEmmanuel Vadot mask = <0x2>; /* SWRESET_TRIGGER */ 2952846c905SEmmanuel Vadot value = <0x2>; 2962846c905SEmmanuel Vadot }; 2972846c905SEmmanuel Vadot }; 2982846c905SEmmanuel Vadot 2995f62a964SEmmanuel Vadot pinctrl_cmgp: pinctrl@15c30000 { 3005f62a964SEmmanuel Vadot compatible = "samsung,exynos990-pinctrl"; 3015f62a964SEmmanuel Vadot reg = <0x15c30000 0x1000>; 3025f62a964SEmmanuel Vadot }; 3032846c905SEmmanuel Vadot 3042846c905SEmmanuel Vadot cmu_top: clock-controller@1a330000 { 3052846c905SEmmanuel Vadot compatible = "samsung,exynos990-cmu-top"; 3062846c905SEmmanuel Vadot reg = <0x1a330000 0x8000>; 3072846c905SEmmanuel Vadot #clock-cells = <1>; 3082846c905SEmmanuel Vadot 3092846c905SEmmanuel Vadot clocks = <&oscclk>; 3102846c905SEmmanuel Vadot clock-names = "oscclk"; 3112846c905SEmmanuel Vadot }; 3125f62a964SEmmanuel Vadot }; 3135f62a964SEmmanuel Vadot 3145f62a964SEmmanuel Vadot timer { 3155f62a964SEmmanuel Vadot compatible = "arm,armv8-timer"; 3165f62a964SEmmanuel Vadot interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 3175f62a964SEmmanuel Vadot <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 3185f62a964SEmmanuel Vadot <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 3195f62a964SEmmanuel Vadot <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 3205f62a964SEmmanuel Vadot 3215f62a964SEmmanuel Vadot /* 3225f62a964SEmmanuel Vadot * Non-updatable, broken stock Samsung bootloader does not 3235f62a964SEmmanuel Vadot * configure CNTFRQ_EL0 3245f62a964SEmmanuel Vadot */ 3255f62a964SEmmanuel Vadot clock-frequency = <26000000>; 3265f62a964SEmmanuel Vadot }; 3275f62a964SEmmanuel Vadot}; 3285f62a964SEmmanuel Vadot 3295f62a964SEmmanuel Vadot#include "exynos990-pinctrl.dtsi" 330