Re: [PATCH 2/2] arm64: dts: exynos: Add initial support for Samsung Galaxy A21s (SM-A217F)

From: Krzysztof Kozlowski

Date: Sun Sep 13 2026 - 06:21:45 EST


On 13/09/2026 12:13, Thomas Turner wrote:
> 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 <tturner@xxxxxxxxxxxxx>
> ---
> 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.dts
>
> diff --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@xxxxxxxxxxxxx>
> + */
> +
> +/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