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