From nobody Tue Nov 26 00:48:23 2024 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 66056205E17; Wed, 23 Oct 2024 22:37:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729723053; cv=none; b=WAw/BtwRQSLdEIral7UvxbihBHsibE8vnifmztGFagL+qkhnmwRU2PncE/a2kM1DJ15rm+EIhmZ2RwJ4dd2KCNa9lBhQSIutifgHozkorYyQlzVrVKfn5/cOAMD2PhHprzSJYkNH0sXuWmspKyi6EkLfI3OxjKJnOc+U+9iILfc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729723053; c=relaxed/simple; bh=DPQAdMpvhO16lf8cOxmVyWDMW4huIk5F+FeYrjtAGWc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CXu0bk1ZOBEdu4i0qs5zMK4z7n1hehk8p5CWlrukoJsXHLC3N3lXtml0ISv0VSebcSm+tqA7JFIZj2NVTzemHQ/9sitpZH5T22MkRIzUaI7ZAoTqIh5zfRH2VmRUpWi2WriNoCsgaN/JhdWlvEj40MaAPTxseiMk/U5RInmxIuM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=U2KckNNM; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="U2KckNNM" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-a99ea294480so14593466b.2; Wed, 23 Oct 2024 15:37:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729723049; x=1730327849; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=T9chmuT/vKLKQdVfIL+EQ8SZ7ebuPtCv574MaCNhlcg=; b=U2KckNNMT4zj34WQJU0hPSgPOl6QFVJ6gsPobqA/sn51hEJFuZSpUkp0ZHavWWYBY7 nNle321vlhujWUrQ1XbExd76Wy9V1QNU1jcesPbcDaYYcvWEAK14xOiUucfOdJj7wSFa 5gm1wryuaMFuk+voFU2aURlgrYdB62jKQqMJaLDXMnaE7ObwEtIzIVFBog1x3e9HgGBW v8aqrCPFFT6aKMkdoiUUDIctGFVR5Vdgnvqy3OjzlFhtAydTFErdx5nBj88sQFJqU6iC WzrgWrVlD/DNONXrqRvdCBx+syZTp8vLNJ2XuXMGbm6NK7TI2he4S0ouJbrbqbhURey9 lVCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729723049; x=1730327849; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=T9chmuT/vKLKQdVfIL+EQ8SZ7ebuPtCv574MaCNhlcg=; b=dkr9a0tcBbLiscVxCfAdOgch2HzKce/eCazMjRpWDtKcI1oylQivonMIWokkLuaXq4 c/u4FwodySvWp2aXuKaA5GjbHVAYe9kUu5zptkHOYsw28WVd0fmMYnXB37klPF9nJftG 62U+0NOn6y6g5CQjjXIrqthQzyYrv/Getv+aSB3J3WQxFw933bSdH/+RU3iJh4ZFGPdu mJUUv7WnfI7C26YOgwQoQy5Z0dMRiuztMJcfmP2uz9D8xWIGbV/eotYR+IDn8hqT+cBi 5VHjib/ni5tcGTkabJfVfSEI8MFQFj/7kpG0lYIrFRtslC61SHW4B3qhBw2/F4qorEeZ FtaQ== X-Forwarded-Encrypted: i=1; AJvYcCV1/1SkOvHEh8sFMcW4D1NQuRaWvXty+rhYG+eLPTpgSZXHsABM/KXkYmH4Rslv3shTZqpM9f+1WM0KyKpo@vger.kernel.org, AJvYcCW+ba6wJ4N2qsdX2bT8NlMmoIa+0LllX+UUk4HftGQmDR9D88KkdK9/5efTL2raZe3OQbplVHAF54Zg@vger.kernel.org, AJvYcCWONXxpYTBSImeFgP/4VuKUklNiJT93tbGRPBf+0Qq3G1Axp8Q8Ax+SNhsQ4kGcEo1XbTfSXXeWMHaAHvLBe92tbHs=@vger.kernel.org X-Gm-Message-State: AOJu0YyRwVYH2gBwEtWziHRl7Bwr1wJK9hfW0Yv3jIGHtwtFD8tn0aJp zLzo2TjNSnD3mUah/Sx8PuYQtXNfqJ5ABsyeAnL+FemtC+GE13Pe X-Google-Smtp-Source: AGHT+IGl8ptG0uCUSA78la4JHwnH4oexwQBBw1YPefr1OV3s3eTTLU6SjIPZv5Od3pd7upxz4rkAbQ== X-Received: by 2002:a05:6402:1956:b0:5c8:8290:47bf with SMTP id 4fb4d7f45d1cf-5cb8b1ea74amr4424820a12.21.1729723048510; Wed, 23 Oct 2024 15:37:28 -0700 (PDT) Received: from [192.168.122.1] (93-190-140-122.hosted-by-worldstream.net. [93.190.140.122]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5cb6696b4easm4907816a12.12.2024.10.23.15.37.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Oct 2024 15:37:28 -0700 (PDT) From: Markuss Broks Date: Thu, 24 Oct 2024 01:36:42 +0300 Subject: [PATCH 11/12] arm64: dts: exynos: Add Exynos9810 SoC support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20241024-exynos9810-v1-11-ed14d0d60d08@gmail.com> References: <20241024-exynos9810-v1-0-ed14d0d60d08@gmail.com> In-Reply-To: <20241024-exynos9810-v1-0-ed14d0d60d08@gmail.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lorenzo Pieralisi , Alim Akhtar , Sylwester Nawrocki , Linus Walleij , Tomasz Figa , Will Deacon , Mark Rutland Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-gpio@vger.kernel.org, Ivaylo Ivanov , Markuss Broks , Maksym Holovach X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1729723025; l=18067; i=markuss.broks@gmail.com; s=20241024; h=from:subject:message-id; bh=DPQAdMpvhO16lf8cOxmVyWDMW4huIk5F+FeYrjtAGWc=; b=ZQHwsV14L0RyMQSdQh6YlWMNft8r5QkV8L4SAknirLNPkFmj4pM0JG3RUWRUf6zqMBtLq8juL f792pwjO0CuCjibszaX76iY8ETWzt0+1ISrva5THZ42Oo6pvBsQKqWX X-Developer-Key: i=markuss.broks@gmail.com; a=ed25519; pk=p3Bh4oPpeCrTpffJvGch5WsWNikteWHJ+4LBICPbZg0= Exynos 9810 is an ARMv8 mobile SoC found in various Samsung devices, such as Samsung Galaxy S9 (starlte), S9 Plus (star2lte), Note 9 (crownlte) and perhaps others. Add minimal support for this SoC, including basic stuff like: - PSCI for bringing up secondary cores - ARMv8 generic timer - GPIO and pinctrl. The firmware coming with the devices based on this SoC is buggy and doesn't configure CNTFRQ_EL0, as required by spec, so it's needed to hardcode the frequency in the timer node. Co-authored-by: Maksym Holovach Signed-off-by: Markuss Broks --- arch/arm64/boot/dts/exynos/exynos9810-pinctrl.dtsi | 525 +++++++++++++++++= ++++ arch/arm64/boot/dts/exynos/exynos9810.dtsi | 256 ++++++++++ 2 files changed, 781 insertions(+) diff --git a/arch/arm64/boot/dts/exynos/exynos9810-pinctrl.dtsi b/arch/arm6= 4/boot/dts/exynos/exynos9810-pinctrl.dtsi new file mode 100644 index 0000000000000000000000000000000000000000..4b2ee59dc7241b0ec31c99fd909= d1c5e25aa77e0 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos9810-pinctrl.dtsi @@ -0,0 +1,525 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* + * Samsung's Exynos 9810 SoC pin-mux and pin-config device tree source + * + * Copyright (c) 2024 Markuss Broks + * Copyright (c) 2024 Maksym Holovach + */ + +#include "exynos-pinctrl.h" + +&pinctrl_alive { + wakeup-interrupt-controller { + compatible =3D "samsung,exynos9810-wakeup-eint", + "samsung,exynos850-wakeup-eint", + "samsung,exynos7-wakeup-eint"; + }; + + etc1: etc1-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpa0: gpa0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + interrupt-parent =3D <&gic>; + interrupts =3D , + , + , + , + , + , + , + ; + #interrupt-cells =3D <2>; + }; + + gpa1: gpa1-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + interrupt-parent =3D <&gic>; + interrupts =3D , + , + , + , + , + , + , + ; + #interrupt-cells =3D <2>; + }; + + gpa2: gpa2-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + interrupt-parent =3D <&gic>; + interrupts =3D , + , + , + , + , + , + , + ; + #interrupt-cells =3D <2>; + }; + + gpa3: gpa3-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + interrupt-parent =3D <&gic>; + interrupts =3D , + , + , + , + , + , + , + ; + #interrupt-cells =3D <2>; + }; + + gpa4: gpa4-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpq0: gpq0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; +}; + +&pinctrl_aud { + gpb0: gpb0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpb1: gpb1-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpb2: gpb2-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; +}; + +&pinctrl_chub { + interrupts =3D ; + + gph0: gph0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gph1: gph1-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; +}; + +&pinctrl_cmgp { + wakeup-interrupt-controller { + compatible =3D "samsung,exynos9810-wakeup-eint", + "samsung,exynos850-wakeup-eint", + "samsung,exynos7-wakeup-eint"; + }; + + gpm0: gpm0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm1: gpm1-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm2: gpm2-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm3: gpm3-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm4: gpm4-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm5: gpm5-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm6: gpm6-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm7: gpm7-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm10: gpm10-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm11: gpm11-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm12: gpm12-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm13: gpm13-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm14: gpm14-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm15: gpm15-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm16: gpm16-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm17: gpm17-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm40: gpm40-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm41: gpm41-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm42: gpm42-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; + + gpm43: gpm43-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + interrupts =3D ; + }; +}; + +&pinctrl_fsys0 { + interrupts =3D ; + + gpf0: gpf0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; +}; + +&pinctrl_fsys1 { + interrupts =3D ; + + gpf1: gpf1-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpf2: gpf2-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; +}; + +&pinctrl_peric0 { + interrupts =3D ; + + gpp0: gpp0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpp1: gpp1-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpp2: gpp2-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpp3: gpp3-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpg0: gpg0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpg1: gpg1-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpg2: gpg2-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; +}; + +&pinctrl_peric1 { + interrupts =3D ; + + gpp4: gpp4-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpp5: gpp5-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpp6: gpp6-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpc0: gpc0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpc1: gpc1-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpd0: gpd0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + gpg3: gpg3-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; +}; + +&pinctrl_vts { + gpt0: gpt0-gpio-bank { + gpio-controller; + #gpio-cells =3D <2>; + + interrupt-controller; + #interrupt-cells =3D <2>; + }; +}; diff --git a/arch/arm64/boot/dts/exynos/exynos9810.dtsi b/arch/arm64/boot/d= ts/exynos/exynos9810.dtsi new file mode 100644 index 0000000000000000000000000000000000000000..e8f5ae913e1a9e11fe14e2d4a5d= 0940415cd3ada --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos9810.dtsi @@ -0,0 +1,256 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* + * Samsung Exynos 9810 SoC device tree source + * + * Copyright (c) 2024 Markuss Broks + * Copyright (c) 2024 Maksym Holovach + */ + +#include + +/ { + compatible =3D "samsung,exynos9810"; + #address-cells =3D <2>; + #size-cells =3D <1>; + + interrupt-parent =3D <&gic>; + + aliases { + pinctrl0 =3D &pinctrl_alive; + pinctrl1 =3D &pinctrl_aud; + pinctrl2 =3D &pinctrl_chub; + pinctrl3 =3D &pinctrl_cmgp; + pinctrl4 =3D &pinctrl_fsys0; + pinctrl5 =3D &pinctrl_fsys1; + pinctrl6 =3D &pinctrl_peric0; + pinctrl7 =3D &pinctrl_peric1; + pinctrl8 =3D &pinctrl_vts; + }; + + arm-a55-pmu { + compatible =3D "arm,cortex-a55-pmu"; + interrupts =3D , + , + , + ; + interrupt-affinity =3D <&cpu0>, + <&cpu1>, + <&cpu2>, + <&cpu3>; + }; + + mongoose-m3-pmu { + compatible =3D "samsung,mongoose-pmu"; + interrupts =3D , + , + , + ; + interrupt-affinity =3D <&cpu4>, + <&cpu5>, + <&cpu6>, + <&cpu7>; + }; + + cpus { + #address-cells =3D <1>; + #size-cells =3D <0>; + + cpu-map { + cluster0 { + core0 { + cpu =3D <&cpu0>; + }; + core1 { + cpu =3D <&cpu1>; + }; + core2 { + cpu =3D <&cpu2>; + }; + core3 { + cpu =3D <&cpu3>; + }; + }; + + cluster1 { + core0 { + cpu =3D <&cpu4>; + }; + core1 { + cpu =3D <&cpu5>; + }; + core2 { + cpu =3D <&cpu6>; + }; + core3 { + cpu =3D <&cpu7>; + }; + }; + }; + + cpu0: cpu@0 { + device_type =3D "cpu"; + compatible =3D "arm,cortex-a55"; + reg =3D <0x0>; + enable-method =3D "psci"; + }; + + cpu1: cpu@1 { + device_type =3D "cpu"; + compatible =3D "arm,cortex-a55"; + reg =3D <0x1>; + enable-method =3D "psci"; + }; + + cpu2: cpu@2 { + device_type =3D "cpu"; + compatible =3D "arm,cortex-a55"; + reg =3D <0x2>; + enable-method =3D "psci"; + }; + + cpu3: cpu@3 { + device_type =3D "cpu"; + compatible =3D "arm,cortex-a55"; + reg =3D <0x3>; + enable-method =3D "psci"; + }; + + cpu4: cpu@100 { + device_type =3D "cpu"; + compatible =3D "samsung,mongoose-m3"; + reg =3D <0x100>; + enable-method =3D "psci"; + }; + + cpu5: cpu@101 { + device_type =3D "cpu"; + compatible =3D "samsung,mongoose-m3"; + reg =3D <0x101>; + enable-method =3D "psci"; + }; + + cpu6: cpu@102 { + device_type =3D "cpu"; + compatible =3D "samsung,mongoose-m3"; + reg =3D <0x102>; + enable-method =3D "psci"; + }; + + cpu7: cpu@103 { + device_type =3D "cpu"; + compatible =3D "samsung,mongoose-m3"; + reg =3D <0x103>; + enable-method =3D "psci"; + }; + }; + + oscclk: osc-clock { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + clock-output-names =3D "oscclk"; + }; + + psci { + compatible =3D "arm,psci"; + method =3D "smc"; + cpu_off =3D <0x84000002>; + cpu_on =3D <0xc4000003>; + cpu_suspend =3D <0xc4000001>; + }; + + soc: soc@0 { + compatible =3D "simple-bus"; + ranges =3D <0x0 0x0 0x0 0x20000000>; + + #address-cells =3D <1>; + #size-cells =3D <1>; + + chipid@10000000 { + compatible =3D "samsung,exynos9810-chipid", + "samsung,exynos850-chipid"; + reg =3D <0x10000000 0x100>; + }; + + gic: interrupt-controller@10101000 { + compatible =3D "arm,gic-400"; + reg =3D <0x10101000 0x1000>, + <0x10102000 0x1000>, + <0x10104000 0x2000>, + <0x10106000 0x2000>; + #interrupt-cells =3D <3>; + interrupt-controller; + interrupts =3D ; + #address-cells =3D <0>; + #size-cells =3D <1>; + }; + + pinctrl_peric0: pinctrl@10430000 { + compatible =3D "samsung,exynos9810-pinctrl"; + reg =3D <0x10430000 0x1000>; + }; + + pinctrl_peric1: pinctrl@10830000 { + compatible =3D "samsung,exynos9810-pinctrl"; + reg =3D <0x10830000 0x1000>; + }; + + pinctrl_fsys0: pinctrl@11050000 { + compatible =3D "samsung,exynos9810-pinctrl"; + reg =3D <0x11050000 0x1000>; + }; + + pinctrl_fsys1: pinctrl@11430000 { + compatible =3D "samsung,exynos9810-pinctrl"; + reg =3D <0x11430000 0x1000>; + }; + + pinctrl_vts: pinctrl@13880000 { + compatible =3D "samsung,exynos9810-pinctrl"; + reg =3D <0x13880000 0x1000>; + }; + + pinctrl_chub: pinctrl@13a80000 { + compatible =3D "samsung,exynos9810-pinctrl"; + reg =3D <0x13a80000 0x1000>; + }; + + pinctrl_alive: pinctrl@14050000 { + compatible =3D "samsung,exynos9810-pinctrl"; + reg =3D <0x14050000 0x1000>; + }; + + pmu_system_controller: system-controller@14060000 { + compatible =3D "samsung,exynos9810-pmu", + "samsung,exynos7-pmu", "syscon"; + reg =3D <0x14060000 0x10000>; + }; + + pinctrl_cmgp: pinctrl@14220000 { + compatible =3D "samsung,exynos9810-pinctrl"; + reg =3D <0x14220000 0x1000>; + }; + + pinctrl_aud: pinctrl@17c60000 { + compatible =3D "samsung,exynos9810-pinctrl"; + reg =3D <0x17c60000 0x1000>; + }; + }; + + timer { + compatible =3D "arm,armv8-timer"; + /* Hypervisor Virtual Timer interrupt is not wired to GIC */ + interrupts =3D , + , + , + ; + /* + * Non-updatable, broken stock Samsung bootloader does not + * configure CNTFRQ_EL0 + */ + clock-frequency =3D <26000000>; + }; +}; + +#include "exynos9810-pinctrl.dtsi" +#include "arm/samsung/exynos-syscon-restart.dtsi" --=20 2.46.2