[PATCH 17/17] arm64: dts: qcom: Add Samsung Galaxy XR
From: Stanislav Aleksandrov
Date: Sun Nov 08 2026 - 19:49:11 EST
Add the device tree for the Samsung Galaxy XR headset, which is based on
the Qualcomm Halliday SoC (SXR2250P).
Supported so far: the PMICs and their regulators, the power and volume
down keys, USB in high-speed peripheral mode and UFS storage.
Signed-off-by: Stanislav Aleksandrov <lightofmysoul@xxxxxxxxx>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/halliday-samsung-xrvst2.dts | 218 +++++++++++++++++++++
2 files changed, 219 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 88230c4e00ea..1a2638503f64 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -22,6 +22,7 @@ dtb-$(CONFIG_ARCH_QCOM) += glymur-crd.dtb
dtb-$(CONFIG_ARCH_QCOM) += glymur-hp-elitebook-x-g2q.dtb
dtb-$(CONFIG_ARCH_QCOM) += glymur-lenovo-yoga-slim7x.dtb
dtb-$(CONFIG_ARCH_QCOM) += glymur-qcb.dtb
+dtb-$(CONFIG_ARCH_QCOM) += halliday-samsung-xrvst2.dtb
dtb-$(CONFIG_ARCH_QCOM) += hamoa-advantech-som-db5830.dtb
dtb-$(CONFIG_ARCH_QCOM) += hamoa-iot-evk.dtb
diff --git a/arch/arm64/boot/dts/qcom/halliday-samsung-xrvst2.dts b/arch/arm64/boot/dts/qcom/halliday-samsung-xrvst2.dts
new file mode 100644
index 000000000000..6fcc1aaafd59
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/halliday-samsung-xrvst2.dts
@@ -0,0 +1,218 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2026, Stanislav Aleksandrov <lightofmysoul@xxxxxxxxx>
+ */
+
+/dts-v1/;
+
+#define PMK8550VE_SID 5
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "halliday.dtsi"
+#include "pm7550.dtsi"
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+
+/delete-node/ &adsp_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &video_mem;
+
+/ {
+ model = "Samsung Galaxy XR";
+ compatible = "samsung,xrvst2", "qcom,halliday";
+ chassis-type = "headset";
+
+ reserved-memory {
+ video_mem: video-region@87c00000 {
+ reg = <0x0 0x87c00000 0x0 0x700000>;
+ no-map;
+ };
+
+ adsp_mem: adsp-region@88300000 {
+ reg = <0x0 0x88300000 0x0 0x3400000>;
+ no-map;
+ };
+
+ cdsp_mem: cdsp-region@8b700000 {
+ reg = <0x0 0x8b700000 0x0 0xf00000>;
+ no-map;
+ };
+
+ sec_xbl_ramdump_mem: sec-xbl-ramdump-region@a7d00000 {
+ reg = <0x0 0xa7d00000 0x0 0x300000>;
+ no-map;
+ };
+
+ uh_heap_mem: uh-heap-region@b0200000 {
+ reg = <0x0 0xb0200000 0x0 0x40000>;
+ no-map;
+ };
+
+ uh_guest_mem: uh-guest-region@b1000000 {
+ reg = <0x0 0xb1000000 0x0 0x1e00000>;
+ no-map;
+ };
+
+ splash_mem: splash-region@bfc00000 {
+ reg = <0x0 0xbfc00000 0x0 0x7e90000>;
+ no-map;
+ };
+
+ sec_debug_pool_mem: sec-debug-pool-region@800100000 {
+ reg = <0x8 0x00100000 0x0 0xff000>;
+ no-map;
+ };
+
+ sec_debug_log_mem: sec-debug-log-region@8001ff000 {
+ reg = <0x8 0x001ff000 0x0 0x901000>;
+ no-map;
+ };
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm7550-rpmh-regulators";
+ qcom,pmic-id = "b";
+
+ vreg_l1b_0p912: ldo1 {
+ regulator-name = "vreg_l1b_0p912";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3b_1p2: ldo3 {
+ regulator-name = "vreg_l3b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10b_1p8: ldo10 {
+ regulator-name = "vreg_l10b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13b_2p504: ldo13 {
+ regulator-name = "vreg_l13b_2p504";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <2504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b_3p072: ldo15 {
+ regulator-name = "vreg_l15b_3p072";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ vreg_l2c_1p2: ldo2 {
+ regulator-name = "vreg_l2c_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "d";
+
+ vreg_l1d_0p88: ldo1 {
+ regulator-name = "vreg_l1d_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-3 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "f";
+
+ vreg_l2f_0p88: ldo2 {
+ regulator-name = "vreg_l2f_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&gcc {
+ vdda-refgen-0p9-supply = <&vreg_l2f_0p88>;
+ vdda-refgen-1p2-supply = <&vreg_l2c_1p2>;
+};
+
+&pm8550vs_c {
+ status = "okay";
+};
+
+&pm8550vs_d {
+ status = "okay";
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&sleep_clk {
+ clock-frequency = <32764>;
+};
+
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 224 GPIO_ACTIVE_LOW>;
+
+ vcc-supply = <&vreg_l13b_2p504>;
+ vcc-max-microamp = <1300000>;
+ vccq-supply = <&vreg_l3b_1p2>;
+ vccq-max-microamp = <1200000>;
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l2f_0p88>;
+ vdda-pll-supply = <&vreg_l2c_1p2>;
+
+ status = "okay";
+};
+
+&usb_1 {
+ dr_mode = "peripheral";
+ maximum-speed = "high-speed";
+ qcom,select-utmi-as-pipe-clk;
+
+ status = "okay";
+};
+
+&usb_1_hsphy {
+ vdda-pll-supply = <&vreg_l1d_0p88>;
+ vdda18-supply = <&vreg_l10b_1p8>;
+ vdda33-supply = <&vreg_l15b_3p072>;
+
+ status = "okay";
+};
+
+&xo_board {
+ clock-frequency = <76800000>;
+};
--
2.55.0