Re: [PATCH 2/2] arm64: dts: exynos: Add initial support for Samsung Galaxy A21s (SM-A217F)
From: Krzysztof Kozlowski <krzk@kernel.org>
Date: 2026-09-13 10:21:43
Also in:
linux-arm-kernel, linux-samsung-soc, lkml
On 13/09/2026 12:13, Thomas Turner wrote:
quoted hunk ↗ jump to hunk
Add initial support for the Samsung Galaxy A21s (a21s) phone. It was launched in 2020, and it's based on the Exynos 850 SoC. It has multiple RAM configurations: 3GB, 4GB and 6GB. Since our bootloader does not set up memory nodes beforehand, default to the 3GB variant. Custom bootloaders can be used to initialise other nodes per RAM configuration. The Exynos DPU clocks required by simple-framebuffer are not kept enabled during boot. Add the DECON, DMA, DPP, PPMU and SSMU DPU clocks to the simple-framebuffer node so simpledrm maintains references to them. Without these clocks, the framebuffer fails to remain operational further into boot. This device tree adds support for the following: - SimpleFB - 3GB RAM - Buttons - Ramoops - MMC - USB - Watchdog Signed-off-by: Thomas Turner <redacted> --- arch/arm64/boot/dts/exynos/Makefile | 1 + .../arm64/boot/dts/exynos/exynos850-a217f.dts | 193 ++++++++++++++++++ arch/arm64/boot/dts/exynos/exynos850.dtsi | 2 +- 3 files changed, 195 insertions(+), 1 deletion(-) create mode 100644 arch/arm64/boot/dts/exynos/exynos850-a217f.dtsdiff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile index 76cc23acb9b2..f197f8eb633b 100644 --- a/arch/arm64/boot/dts/exynos/Makefile +++ b/arch/arm64/boot/dts/exynos/Makefile@@ -13,6 +13,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += \ exynos7870-j7xelte.dtb \ exynos7870-on7xelte.dtb \ exynos7885-jackpotlte.dtb \ + exynos850-a217f.dtb \ exynos850-e850-96.dtb \ exynos8895-dreamlte.dtb \ exynos9810-starlte.dtb \diff --git a/arch/arm64/boot/dts/exynos/exynos850-a217f.dts b/arch/arm64/boot/dts/exynos/exynos850-a217f.dts new file mode 100644 index 000000000000..f1d11f91a353 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos850-a217f.dts@@ -0,0 +1,193 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Samsung Galaxy A21s (a21s/SM-A217F) device tree source + * + * Copyright (c) 2026, Thomas Turner <tturner@lineageos.org> + */ + +/dts-v1/; +#include "exynos850.dtsi" +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +/ { + model = "Samsung Galaxy A21s"; + compatible = "samsung,a217f", "samsung,exynos850"; + + chosen { + #address-cells = <2>; + #size-cells = <1>; + ranges; + + framebuffer0: framebuffer@fa000000 { + compatible = "simple-framebuffer"; + reg = <0x0 0xfa000000 (720 * 1600 * 4)>; + width = <720>; + height = <1600>; + stride = <(720 * 4)>; + format = "a8r8g8b8"; + clocks = <&cmu_dpu CLK_GOUT_DPU_DECON0_ACLK>, + <&cmu_dpu CLK_GOUT_DPU_DMA_ACLK>, + <&cmu_dpu CLK_GOUT_DPU_DPP_ACLK>, + <&cmu_dpu CLK_GOUT_DPU_PPMU_ACLK>, + <&cmu_dpu CLK_GOUT_DPU_PPMU_PCLK>, + <&cmu_dpu CLK_GOUT_DPU_SMMU_CLK>; + }; + }; + + memory@80000000 { + device_type = "memory"; + reg = <0x0 0x80000000 0x3c900000>, + <0x0 0xc0000000 0x20000000>, + <0x0 0xe0d00000 0x1f300000>, + <0x8 0x80000000 0x20000000>, + <0x8 0xa0000000 0x20000000>; + }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&key_voldown &key_volup>; + + voldown-key { + label = "Volume Down"; + linux,code = <KEY_VOLUMEDOWN>; + gpios = <&gpa1 0 GPIO_ACTIVE_LOW>; + }; + + volup-key { + label = "Volume Up"; + linux,code = <KEY_VOLUMEUP>; + gpios = <&gpa0 7 GPIO_ACTIVE_LOW>;
linux,code goes to the end. You can run dt-check-style from https://github.com/krzk/linux/tree/b4/dts-style-checker-blank-lines in "--mode strict". Best regards, Krzysztof