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

Krzysztof Kozlowski krzk at kernel.org
Sun Sep 13 03:21:28 PDT 2026


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 at lineageos.org>
> ---
>  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 at 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 at 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 at 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



More information about the linux-arm-kernel mailing list