Re: [PATCH 3/3] arm64: dts: qcom: sm7125-samsung: add initial device tree

David Heidelberg <[email protected]> Sat, 4 Jul 2026 16:05:24 +0200
Newsgroups org.kernel.vger.phone-devel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 03/07/2026 09:59, Erikas Bitovtas wrote:
> Samsung Galaxy A52/A72 are devices released on atoll (SM7125) platform
> in 2021. Add initial device tree for SM7125 Samsung platform with
> support for:
> - Framebuffer
> - GPIO keys
> - Hall sensor
> - Vibrator
> - Regulators
> - Reset input
> - Real-time clock
> - SD card
> - UFS
> - USB
> 
> Tested-by: Stefan Hansson <[email protected]>
> Signed-off-by: Erikas Bitovtas <[email protected]>
> ---
>   arch/arm64/boot/dts/qcom/Makefile                  |   2 +
>   arch/arm64/boot/dts/qcom/sm7125-samsung-a52q.dts   |  31 ++
>   arch/arm64/boot/dts/qcom/sm7125-samsung-a72q.dts   |  31 ++
>   .../arm64/boot/dts/qcom/sm7125-samsung-common.dtsi | 518 +++++++++++++++++++++
>   4 files changed, 582 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 6f33c4e2f09c..d90311806e21 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -344,6 +344,8 @@ dtb-$(CONFIG_ARCH_QCOM)	+= sm6125-xiaomi-laurel-sprout.dtb
>   dtb-$(CONFIG_ARCH_QCOM)	+= sm6125-xiaomi-willow.dtb
>   dtb-$(CONFIG_ARCH_QCOM)	+= sm6350-sony-xperia-lena-pdx213.dtb
>   dtb-$(CONFIG_ARCH_QCOM)	+= sm6375-sony-xperia-murray-pdx225.dtb
> +dtb-$(CONFIG_ARCH_QCOM)	+= sm7125-samsung-a52q.dtb
> +dtb-$(CONFIG_ARCH_QCOM)	+= sm7125-samsung-a72q.dtb
>   dtb-$(CONFIG_ARCH_QCOM)	+= sm7125-xiaomi-curtana.dtb
>   dtb-$(CONFIG_ARCH_QCOM)	+= sm7125-xiaomi-joyeuse.dtb
>   dtb-$(CONFIG_ARCH_QCOM)	+= sm7225-fairphone-fp4.dtb
> diff --git a/arch/arm64/boot/dts/qcom/sm7125-samsung-a52q.dts b/arch/arm64/boot/dts/qcom/sm7125-samsung-a52q.dts
> new file mode 100644
> index 000000000000..e4d005054b00
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm7125-samsung-a52q.dts
> @@ -0,0 +1,31 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * SM7125 Samsung Galaxy A52 (a52q) specific device tree source
> + *
> + * Copyright (c) 2026, The Linux Foundation. All rights reserved.
> + */
> +
> +/dts-v1/;
> +
> +#include "sm7125-samsung-common.dtsi"
> +
> +/ {
> +	model = "Samsung Galaxy A52";
> +	compatible = "samsung,a52q", "qcom,sm7125";
> +	qcom,board-id = <0x22 0x6>;
> +
> +	reserved-memory {
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +
> +		rmtfs_mem: memory@f4f01000 {
> +			compatible = "qcom,rmtfs-mem";
> +			reg = <0 0xf4f01000 0 0x200000>;

Hi Erikas!

the start on the 0x1000 offset sounds suspicious, doesn't it need 0xf4f0 0000 
and size 0x202000  with qcom,use-guard-pages ?

You can also share most of the properties and define it in the -common.dtsi


> +			no-map;
> +
> +			qcom,client-id = <1>;
> +			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
> +		};
> +	};
> +};
> diff --git a/arch/arm64/boot/dts/qcom/sm7125-samsung-a72q.dts b/arch/arm64/boot/dts/qcom/sm7125-samsung-a72q.dts
> new file mode 100644
> index 000000000000..df8d637ef16f
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm7125-samsung-a72q.dts
> @@ -0,0 +1,31 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * SM7125 Samsung Galaxy A72 (a72q) specific device tree source
> + *
> + * Copyright (c) 2026, The Linux Foundation. All rights reserved.
> + */
> +
> +/dts-v1/;
> +
> +#include "sm7125-samsung-common.dtsi"
> +
> +/ {
> +	model = "Samsung Galaxy A72";
> +	compatible = "samsung,a72q", "qcom,sm7125";
> +	qcom,board-id = <0x22 0x5>;
> +
> +	reserved-memory {
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +
> +		rmtfs_mem: memory@f3701000 {
> +			compatible = "qcom,rmtfs-mem";
> +			reg = <0 0xf3701000 0 0x200000>;

same rmtfs comment as above

> +			no-map;
> +
> +			qcom,client-id = <1>;
> +			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
> +		};
> +	};
> +};
> diff --git a/arch/arm64/boot/dts/qcom/sm7125-samsung-common.dtsi b/arch/arm64/boot/dts/qcom/sm7125-samsung-common.dtsi
> new file mode 100644
> index 000000000000..836dc9b8b1a5
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm7125-samsung-common.dtsi
> @@ -0,0 +1,518 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * SM7125 Samsung common device tree source
> + *
> + * Copyright (c) 2026, The Linux Foundation. All rights reserved.
> + */
> +
> +#include <dt-bindings/arm/qcom,ids.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
> +#include "sm7125.dtsi"
> +#include "pm6150.dtsi"
> +#include "pm6150l.dtsi"
> +
> +/delete-node/ &rmtfs_mem;
> +/delete-node/ &ipa_fw_mem;
> +/delete-node/ &tz_mem;
> +
> +/ {
> +	chassis-type = "handset";
> +
> +	qcom,msm-id = <QCOM_ID_SM7125 0>;
> +
> +	chosen {
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +
> +		framebuffer@9c000000 {
> +			compatible = "simple-framebuffer";
> +			reg = <0x0 0x9c000000 0x0 (1080 * 2400 * 4)>;

use memory-region = <&cont_splash_mem>; instead of reg

David

> +			width = <1080>;
> +			height = <2400>;
> +			stride = <(1080 * 4)>;
> +			format = "a8r8g8b8";
> +			clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
> +		};
> +	};
> +
> +	gpio-keys {
> +		compatible = "gpio-keys";
> +
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&key_vol_up_default>, <&hall_sensor_default>;
> +
> +		vol-up {
> +			label = "Volume up";
> +			gpios = <&pm6150l_gpios 8 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEUP>;
> +			debounce-interval = <15>;
> +		};
> +
> +		event-hall-sensor {
> +			label = "Hall Effect Sensor";
> +			gpios = <&pm6150_gpios 10 GPIO_ACTIVE_LOW>;
> +			linux,input-type = <EV_SW>;
> +			linux,code = <SW_LID>;
> +			debounce-interval = <15>;
> +		};
> +	};
> +
> +	reserved-memory {
> +		#address-cells = <2>;
> +		#size-cells = <2>;
> +		ranges;
> +
> +		tz_mem: memory@80b00000 {
> +			reg = <0x0 0x80b00000 0x0 0x7100000>;
> +			no-map;
> +		};
> +
> +		mpss_mem: memory@8b000000 {
> +			reg = <0x0 0x8b000000 0x0 0x8900000>;
> +			no-map;
> +		};
> +
> +		wlan_mem: memory@93900000 {
> +			reg = <0x0 0x93900000 0x0 0x200000>;
> +			no-map;
> +		};
> +
> +		ipa_fw_mem: memory@93b00000 {
> +			reg = <0x0 0x93b00000 0x0 0x10000>;
> +			no-map;
> +		};
> +
> +		ipa_gsi_region: memory@93b10000 {
> +			reg = <0x0 0x93b10000 0x0 0x5000>;
> +			no-map;
> +		};
> +
> +		gpu_mem: memory@93b15000 {
> +			reg = <0x0 0x93b15000 0x0 0x2000>;
> +			no-map;
> +		};
> +
> +		adsp_mem: memory@93c00000 {
> +			reg = <0x0 0x93c00000 0x0 0x3e00000>;
> +			no-map;
> +		};
> +
> +		camera_region: memory@97a00000 {
> +			reg = <0x0 0x97a00000 0x0 0x500000>;
> +			no-map;
> +		};
> +
> +		pil_npu_region: memory@97f00000 {
> +			reg = <0x0 0x97f00000 0x0 0x500000>;
> +			no-map;
> +		};
> +
> +		venus_mem: memory@98400000 {
> +			reg = <0x0 0x98400000 0x0 0x500000>;
> +			no-map;
> +		};
> +
> +		cdsp_mem: memory@98900000 {
> +			reg = <0x0 0x98900000 0x0 0x1e00000>;
> +			no-map;
> +		};
> +
> +		cont_splash_mem: memory@9c000000 {
> +			reg = <0x0 0x9c000000 0x0 (1080 * 2400 * 4)>;
> +			no-map;
> +		};
> +

[...]