1*698be6feSMarkuss Broks// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 2*698be6feSMarkuss Broks/* 3*698be6feSMarkuss Broks * Samsung Exynos 9810 SoC device tree source 4*698be6feSMarkuss Broks * 5*698be6feSMarkuss Broks * Copyright (c) 2024 Markuss Broks <markuss.broks@gmail.com> 6*698be6feSMarkuss Broks * Copyright (c) 2024 Maksym Holovach <nergzd@nergzd723.xyz> 7*698be6feSMarkuss Broks */ 8*698be6feSMarkuss Broks 9*698be6feSMarkuss Broks#include <dt-bindings/interrupt-controller/arm-gic.h> 10*698be6feSMarkuss Broks 11*698be6feSMarkuss Broks/ { 12*698be6feSMarkuss Broks compatible = "samsung,exynos9810"; 13*698be6feSMarkuss Broks #address-cells = <2>; 14*698be6feSMarkuss Broks #size-cells = <1>; 15*698be6feSMarkuss Broks 16*698be6feSMarkuss Broks interrupt-parent = <&gic>; 17*698be6feSMarkuss Broks 18*698be6feSMarkuss Broks aliases { 19*698be6feSMarkuss Broks pinctrl0 = &pinctrl_alive; 20*698be6feSMarkuss Broks pinctrl1 = &pinctrl_aud; 21*698be6feSMarkuss Broks pinctrl2 = &pinctrl_chub; 22*698be6feSMarkuss Broks pinctrl3 = &pinctrl_cmgp; 23*698be6feSMarkuss Broks pinctrl4 = &pinctrl_fsys0; 24*698be6feSMarkuss Broks pinctrl5 = &pinctrl_fsys1; 25*698be6feSMarkuss Broks pinctrl6 = &pinctrl_peric0; 26*698be6feSMarkuss Broks pinctrl7 = &pinctrl_peric1; 27*698be6feSMarkuss Broks pinctrl8 = &pinctrl_vts; 28*698be6feSMarkuss Broks }; 29*698be6feSMarkuss Broks 30*698be6feSMarkuss Broks cpus { 31*698be6feSMarkuss Broks #address-cells = <1>; 32*698be6feSMarkuss Broks #size-cells = <0>; 33*698be6feSMarkuss Broks 34*698be6feSMarkuss Broks cpu-map { 35*698be6feSMarkuss Broks cluster0 { 36*698be6feSMarkuss Broks core0 { 37*698be6feSMarkuss Broks cpu = <&cpu0>; 38*698be6feSMarkuss Broks }; 39*698be6feSMarkuss Broks core1 { 40*698be6feSMarkuss Broks cpu = <&cpu1>; 41*698be6feSMarkuss Broks }; 42*698be6feSMarkuss Broks core2 { 43*698be6feSMarkuss Broks cpu = <&cpu2>; 44*698be6feSMarkuss Broks }; 45*698be6feSMarkuss Broks core3 { 46*698be6feSMarkuss Broks cpu = <&cpu3>; 47*698be6feSMarkuss Broks }; 48*698be6feSMarkuss Broks }; 49*698be6feSMarkuss Broks 50*698be6feSMarkuss Broks cluster1 { 51*698be6feSMarkuss Broks core0 { 52*698be6feSMarkuss Broks cpu = <&cpu4>; 53*698be6feSMarkuss Broks }; 54*698be6feSMarkuss Broks core1 { 55*698be6feSMarkuss Broks cpu = <&cpu5>; 56*698be6feSMarkuss Broks }; 57*698be6feSMarkuss Broks core2 { 58*698be6feSMarkuss Broks cpu = <&cpu6>; 59*698be6feSMarkuss Broks }; 60*698be6feSMarkuss Broks core3 { 61*698be6feSMarkuss Broks cpu = <&cpu7>; 62*698be6feSMarkuss Broks }; 63*698be6feSMarkuss Broks }; 64*698be6feSMarkuss Broks }; 65*698be6feSMarkuss Broks 66*698be6feSMarkuss Broks cpu0: cpu@0 { 67*698be6feSMarkuss Broks device_type = "cpu"; 68*698be6feSMarkuss Broks compatible = "arm,cortex-a55"; 69*698be6feSMarkuss Broks reg = <0x0>; 70*698be6feSMarkuss Broks enable-method = "psci"; 71*698be6feSMarkuss Broks }; 72*698be6feSMarkuss Broks 73*698be6feSMarkuss Broks cpu1: cpu@1 { 74*698be6feSMarkuss Broks device_type = "cpu"; 75*698be6feSMarkuss Broks compatible = "arm,cortex-a55"; 76*698be6feSMarkuss Broks reg = <0x1>; 77*698be6feSMarkuss Broks enable-method = "psci"; 78*698be6feSMarkuss Broks }; 79*698be6feSMarkuss Broks 80*698be6feSMarkuss Broks cpu2: cpu@2 { 81*698be6feSMarkuss Broks device_type = "cpu"; 82*698be6feSMarkuss Broks compatible = "arm,cortex-a55"; 83*698be6feSMarkuss Broks reg = <0x2>; 84*698be6feSMarkuss Broks enable-method = "psci"; 85*698be6feSMarkuss Broks }; 86*698be6feSMarkuss Broks 87*698be6feSMarkuss Broks cpu3: cpu@3 { 88*698be6feSMarkuss Broks device_type = "cpu"; 89*698be6feSMarkuss Broks compatible = "arm,cortex-a55"; 90*698be6feSMarkuss Broks reg = <0x3>; 91*698be6feSMarkuss Broks enable-method = "psci"; 92*698be6feSMarkuss Broks }; 93*698be6feSMarkuss Broks 94*698be6feSMarkuss Broks cpu4: cpu@100 { 95*698be6feSMarkuss Broks device_type = "cpu"; 96*698be6feSMarkuss Broks compatible = "samsung,mongoose-m3"; 97*698be6feSMarkuss Broks reg = <0x100>; 98*698be6feSMarkuss Broks enable-method = "psci"; 99*698be6feSMarkuss Broks }; 100*698be6feSMarkuss Broks 101*698be6feSMarkuss Broks cpu5: cpu@101 { 102*698be6feSMarkuss Broks device_type = "cpu"; 103*698be6feSMarkuss Broks compatible = "samsung,mongoose-m3"; 104*698be6feSMarkuss Broks reg = <0x101>; 105*698be6feSMarkuss Broks enable-method = "psci"; 106*698be6feSMarkuss Broks }; 107*698be6feSMarkuss Broks 108*698be6feSMarkuss Broks cpu6: cpu@102 { 109*698be6feSMarkuss Broks device_type = "cpu"; 110*698be6feSMarkuss Broks compatible = "samsung,mongoose-m3"; 111*698be6feSMarkuss Broks reg = <0x102>; 112*698be6feSMarkuss Broks enable-method = "psci"; 113*698be6feSMarkuss Broks }; 114*698be6feSMarkuss Broks 115*698be6feSMarkuss Broks cpu7: cpu@103 { 116*698be6feSMarkuss Broks device_type = "cpu"; 117*698be6feSMarkuss Broks compatible = "samsung,mongoose-m3"; 118*698be6feSMarkuss Broks reg = <0x103>; 119*698be6feSMarkuss Broks enable-method = "psci"; 120*698be6feSMarkuss Broks }; 121*698be6feSMarkuss Broks }; 122*698be6feSMarkuss Broks 123*698be6feSMarkuss Broks oscclk: osc-clock { 124*698be6feSMarkuss Broks compatible = "fixed-clock"; 125*698be6feSMarkuss Broks #clock-cells = <0>; 126*698be6feSMarkuss Broks clock-output-names = "oscclk"; 127*698be6feSMarkuss Broks }; 128*698be6feSMarkuss Broks 129*698be6feSMarkuss Broks pmu-a55 { 130*698be6feSMarkuss Broks compatible = "arm,cortex-a55-pmu"; 131*698be6feSMarkuss Broks interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, 132*698be6feSMarkuss Broks <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 133*698be6feSMarkuss Broks <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 134*698be6feSMarkuss Broks <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 135*698be6feSMarkuss Broks interrupt-affinity = <&cpu0>, 136*698be6feSMarkuss Broks <&cpu1>, 137*698be6feSMarkuss Broks <&cpu2>, 138*698be6feSMarkuss Broks <&cpu3>; 139*698be6feSMarkuss Broks }; 140*698be6feSMarkuss Broks 141*698be6feSMarkuss Broks pmu-mongoose-m3 { 142*698be6feSMarkuss Broks compatible = "samsung,mongoose-pmu"; 143*698be6feSMarkuss Broks interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 144*698be6feSMarkuss Broks <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 145*698be6feSMarkuss Broks <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, 146*698be6feSMarkuss Broks <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>; 147*698be6feSMarkuss Broks interrupt-affinity = <&cpu4>, 148*698be6feSMarkuss Broks <&cpu5>, 149*698be6feSMarkuss Broks <&cpu6>, 150*698be6feSMarkuss Broks <&cpu7>; 151*698be6feSMarkuss Broks }; 152*698be6feSMarkuss Broks 153*698be6feSMarkuss Broks psci { 154*698be6feSMarkuss Broks compatible = "arm,psci"; 155*698be6feSMarkuss Broks method = "smc"; 156*698be6feSMarkuss Broks cpu_off = <0x84000002>; 157*698be6feSMarkuss Broks cpu_on = <0xc4000003>; 158*698be6feSMarkuss Broks cpu_suspend = <0xc4000001>; 159*698be6feSMarkuss Broks }; 160*698be6feSMarkuss Broks 161*698be6feSMarkuss Broks soc: soc@0 { 162*698be6feSMarkuss Broks compatible = "simple-bus"; 163*698be6feSMarkuss Broks ranges = <0x0 0x0 0x0 0x20000000>; 164*698be6feSMarkuss Broks 165*698be6feSMarkuss Broks #address-cells = <1>; 166*698be6feSMarkuss Broks #size-cells = <1>; 167*698be6feSMarkuss Broks 168*698be6feSMarkuss Broks chipid@10000000 { 169*698be6feSMarkuss Broks compatible = "samsung,exynos9810-chipid", 170*698be6feSMarkuss Broks "samsung,exynos850-chipid"; 171*698be6feSMarkuss Broks reg = <0x10000000 0x100>; 172*698be6feSMarkuss Broks }; 173*698be6feSMarkuss Broks 174*698be6feSMarkuss Broks gic: interrupt-controller@10101000 { 175*698be6feSMarkuss Broks compatible = "arm,gic-400"; 176*698be6feSMarkuss Broks reg = <0x10101000 0x1000>, 177*698be6feSMarkuss Broks <0x10102000 0x1000>, 178*698be6feSMarkuss Broks <0x10104000 0x2000>, 179*698be6feSMarkuss Broks <0x10106000 0x2000>; 180*698be6feSMarkuss Broks #interrupt-cells = <3>; 181*698be6feSMarkuss Broks interrupt-controller; 182*698be6feSMarkuss Broks interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | 183*698be6feSMarkuss Broks IRQ_TYPE_LEVEL_HIGH)>; 184*698be6feSMarkuss Broks #address-cells = <0>; 185*698be6feSMarkuss Broks #size-cells = <1>; 186*698be6feSMarkuss Broks }; 187*698be6feSMarkuss Broks 188*698be6feSMarkuss Broks pinctrl_peric0: pinctrl@10430000 { 189*698be6feSMarkuss Broks compatible = "samsung,exynos9810-pinctrl"; 190*698be6feSMarkuss Broks reg = <0x10430000 0x1000>; 191*698be6feSMarkuss Broks interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>; 192*698be6feSMarkuss Broks }; 193*698be6feSMarkuss Broks 194*698be6feSMarkuss Broks pinctrl_peric1: pinctrl@10830000 { 195*698be6feSMarkuss Broks compatible = "samsung,exynos9810-pinctrl"; 196*698be6feSMarkuss Broks reg = <0x10830000 0x1000>; 197*698be6feSMarkuss Broks interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>; 198*698be6feSMarkuss Broks }; 199*698be6feSMarkuss Broks 200*698be6feSMarkuss Broks pinctrl_fsys0: pinctrl@11050000 { 201*698be6feSMarkuss Broks compatible = "samsung,exynos9810-pinctrl"; 202*698be6feSMarkuss Broks reg = <0x11050000 0x1000>; 203*698be6feSMarkuss Broks interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>; 204*698be6feSMarkuss Broks }; 205*698be6feSMarkuss Broks 206*698be6feSMarkuss Broks pinctrl_fsys1: pinctrl@11430000 { 207*698be6feSMarkuss Broks compatible = "samsung,exynos9810-pinctrl"; 208*698be6feSMarkuss Broks reg = <0x11430000 0x1000>; 209*698be6feSMarkuss Broks interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>; 210*698be6feSMarkuss Broks }; 211*698be6feSMarkuss Broks 212*698be6feSMarkuss Broks pinctrl_vts: pinctrl@13880000 { 213*698be6feSMarkuss Broks compatible = "samsung,exynos9810-pinctrl"; 214*698be6feSMarkuss Broks reg = <0x13880000 0x1000>; 215*698be6feSMarkuss Broks }; 216*698be6feSMarkuss Broks 217*698be6feSMarkuss Broks pinctrl_chub: pinctrl@13a80000 { 218*698be6feSMarkuss Broks compatible = "samsung,exynos9810-pinctrl"; 219*698be6feSMarkuss Broks reg = <0x13a80000 0x1000>; 220*698be6feSMarkuss Broks interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 221*698be6feSMarkuss Broks }; 222*698be6feSMarkuss Broks 223*698be6feSMarkuss Broks pinctrl_alive: pinctrl@14050000 { 224*698be6feSMarkuss Broks compatible = "samsung,exynos9810-pinctrl"; 225*698be6feSMarkuss Broks reg = <0x14050000 0x1000>; 226*698be6feSMarkuss Broks 227*698be6feSMarkuss Broks wakeup-interrupt-controller { 228*698be6feSMarkuss Broks compatible = "samsung,exynos9810-wakeup-eint", 229*698be6feSMarkuss Broks "samsung,exynos850-wakeup-eint", 230*698be6feSMarkuss Broks "samsung,exynos7-wakeup-eint"; 231*698be6feSMarkuss Broks }; 232*698be6feSMarkuss Broks }; 233*698be6feSMarkuss Broks 234*698be6feSMarkuss Broks pmu_system_controller: system-controller@14060000 { 235*698be6feSMarkuss Broks compatible = "samsung,exynos9810-pmu", 236*698be6feSMarkuss Broks "samsung,exynos7-pmu", "syscon"; 237*698be6feSMarkuss Broks reg = <0x14060000 0x10000>; 238*698be6feSMarkuss Broks }; 239*698be6feSMarkuss Broks 240*698be6feSMarkuss Broks pinctrl_cmgp: pinctrl@14220000 { 241*698be6feSMarkuss Broks compatible = "samsung,exynos9810-pinctrl"; 242*698be6feSMarkuss Broks reg = <0x14220000 0x1000>; 243*698be6feSMarkuss Broks 244*698be6feSMarkuss Broks wakeup-interrupt-controller { 245*698be6feSMarkuss Broks compatible = "samsung,exynos9810-wakeup-eint", 246*698be6feSMarkuss Broks "samsung,exynos850-wakeup-eint", 247*698be6feSMarkuss Broks "samsung,exynos7-wakeup-eint"; 248*698be6feSMarkuss Broks }; 249*698be6feSMarkuss Broks }; 250*698be6feSMarkuss Broks 251*698be6feSMarkuss Broks pinctrl_aud: pinctrl@17c60000 { 252*698be6feSMarkuss Broks compatible = "samsung,exynos9810-pinctrl"; 253*698be6feSMarkuss Broks reg = <0x17c60000 0x1000>; 254*698be6feSMarkuss Broks }; 255*698be6feSMarkuss Broks }; 256*698be6feSMarkuss Broks 257*698be6feSMarkuss Broks timer { 258*698be6feSMarkuss Broks compatible = "arm,armv8-timer"; 259*698be6feSMarkuss Broks /* Hypervisor Virtual Timer interrupt is not wired to GIC */ 260*698be6feSMarkuss Broks interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 261*698be6feSMarkuss Broks <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 262*698be6feSMarkuss Broks <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 263*698be6feSMarkuss Broks <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 264*698be6feSMarkuss Broks /* 265*698be6feSMarkuss Broks * Non-updatable, broken stock Samsung bootloader does not 266*698be6feSMarkuss Broks * configure CNTFRQ_EL0 267*698be6feSMarkuss Broks */ 268*698be6feSMarkuss Broks clock-frequency = <26000000>; 269*698be6feSMarkuss Broks }; 270*698be6feSMarkuss Broks}; 271*698be6feSMarkuss Broks 272*698be6feSMarkuss Broks#include "exynos9810-pinctrl.dtsi" 273*698be6feSMarkuss Broks#include "arm/samsung/exynos-syscon-restart.dtsi" 274