[PATCH 5/6] arm64: dts: qcom: sm6115: Add Motorola Moto G9 Play (guamp)

From: Val Packett

Date: Mon Nov 09 2026 - 17:18:52 EST


Add a device tree for the Moto G9 Play with the Holitech display panel
based on the Himax HX83102 DDIC.

Signed-off-by: Val Packett <val@xxxxxxxxxxxx>
---

pm8008 is not consumed by anyone yet (camera drivers missing welp)
but just having it described helps with power consumption due to
shutting down the regs

---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../qcom/sm6115-motorola-guamp-holitech.dts | 36 +++++
.../boot/dts/qcom/sm6115-motorola-guamp.dtsi | 127 ++++++++++++++++++
3 files changed, 164 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm6115-motorola-guamp-holitech.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm6115-motorola-guamp.dtsi

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index dcaf74dc876b..6365f0ed0406 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -390,6 +390,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm4250-oneplus-billie2.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm4450-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6115-fxtec-pro1x.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6115-xiaomi-lemon.dtb
+dtb-$(CONFIG_ARCH_QCOM) += sm6115-motorola-guamp-holitech.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6115p-lenovo-j606f.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6125-sony-xperia-seine-pdx201.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6125-xiaomi-ginkgo.dtb
diff --git a/arch/arm64/boot/dts/qcom/sm6115-motorola-guamp-holitech.dts b/arch/arm64/boot/dts/qcom/sm6115-motorola-guamp-holitech.dts
new file mode 100644
index 000000000000..f8e1f9de7e99
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm6115-motorola-guamp-holitech.dts
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Val Packett <val@xxxxxxxxxxxx>
+ */
+
+/dts-v1/;
+
+#include "sm6115-motorola-guamp.dtsi"
+
+/ {
+ model = "Motorola Moto G9 Play (Holitech)";
+ compatible = "motorola,guamp-holitech", "motorola,guamp", "qcom,sm6115";
+};
+
+&panel {
+ compatible = "holitech,htf065h045", "himax,hx83102";
+
+ enable-gpios = <&tlmm 82 GPIO_ACTIVE_LOW>;
+ pp1800-supply = <&pm6125_l9a>;
+
+ status = "okay";
+};
+
+&pmi632_lcdb {
+ status = "okay";
+};
+
+&pmi632_lcdb_ldo {
+ regulator-min-microvolt = <5500000>;
+ regulator-max-microvolt = <5500000>;
+};
+
+&pmi632_lcdb_ncp {
+ regulator-min-microvolt = <5500000>;
+ regulator-max-microvolt = <5500000>;
+};
diff --git a/arch/arm64/boot/dts/qcom/sm6115-motorola-guamp.dtsi b/arch/arm64/boot/dts/qcom/sm6115-motorola-guamp.dtsi
new file mode 100644
index 000000000000..7eba684867fb
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm6115-motorola-guamp.dtsi
@@ -0,0 +1,127 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Val Packett <val@xxxxxxxxxxxx>
+ */
+
+#include "sm6115.dtsi"
+#include "sm6115-motorola-common.dtsi"
+
+&gpu_zap_shader {
+ firmware-name = "qcom/sm6115/Motorola/guamp/a610_zap.mbn";
+};
+
+&i2c1 {
+ clock-frequency = <100000>;
+ status = "okay";
+
+ pm8008: pmic@8 {
+ compatible = "qcom,pm8008";
+ reg = <0x8>;
+
+ interrupts-extended = <&tlmm 25 IRQ_TYPE_EDGE_RISING>;
+ reset-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>;
+
+ vdd-l1-l2-supply = <&pm6125_s6a>;
+ vdd-l3-l4-supply = <&vph_pwr>;
+ vdd-l5-supply = <&vph_pwr>;
+ vdd-l6-supply = <&vph_pwr>;
+ vdd-l7-supply = <&vph_pwr>;
+
+ pinctrl-0 = <&pm8008_int_default>, <&pm8008_reset_n_default>;
+ pinctrl-names = "default";
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-ranges = <&pm8008 0 0 2>;
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ #thermal-sensor-cells = <0>;
+
+ regulators {
+ vreg_l1p: ldo1 {
+ regulator-name = "vreg_l1p";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1200000>;
+ };
+
+ vreg_l2p: ldo2 {
+ regulator-name = "vreg_l2p";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <1056000>;
+ };
+
+ vreg_l3p: ldo3 {
+ regulator-name = "vreg_l3p";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+
+ vreg_l4p: ldo4 {
+ regulator-name = "vreg_l4p";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+
+ vreg_l5p: ldo5 {
+ regulator-name = "vreg_l5p";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+
+ vreg_l6p: ldo6 {
+ regulator-name = "vreg_l6p";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+
+ vreg_l7p: ldo7 {
+ regulator-name = "vreg_l7p";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+ };
+ };
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/sm6115/Motorola/guamp/adsp.mbn";
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/sm6115/Motorola/guamp/cdsp.mbn";
+ status = "okay";
+};
+
+&remoteproc_mpss {
+ firmware-name = "qcom/sm6115/Motorola/guamp/modem.mbn";
+ status = "okay";
+};
+
+&tlmm {
+ pm8008_int_default: pm8008-int-default-state {
+ pins = "gpio25";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ input-enable;
+ };
+
+ pm8008_reset_n_default: pm8008-reset-n-default-state {
+ pins = "gpio26";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+};
+
+&venus {
+ firmware-name = "qcom/sm6115/Motorola/guamp/venus.mbn";
+ status = "okay";
+};
+
+&wifi {
+ qcom,calibration-variant = "Motorola_guamp";
+};
--
2.56.0