* [PATCH 0/6] arm64: dts: qcom: Add Moto G9 Play (guamp) / Power (cebu)
@ 2026-11-09 22:14 Val Packett
2026-11-09 22:14 ` [PATCH 1/6] dt-bindings: arm: qcom: Add Motorola Moto G9 Play Val Packett
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Val Packett @ 2026-11-09 22:14 UTC (permalink / raw)
Cc: Val Packett, Barnabás Czémán, Michael McAllister,
Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kees Cook, Tony Luck,
Guilherme G. Piccoli, linux-arm-msm, devicetree, phone-devel,
~postmarketos/upstreaming, linux-kernel
Hi,
this series introduces a common dtsi for the Qualcomm SM6115/SM4250
("bengal/kamorta" platform) Motorola devices, basically the ones
listed at: https://github.com/moto-sm6115/kernel_devicetree
and two concrete .dts files for the two phones I've tested,
the G9 Play (guamp) with the Holitech/Himax display panel (which I've
previously upstreamed support for [1]) and the G9 Power (cebu) with
the Tianma/Novatek panel (will send the driver once this lands,
also waiting for the AW99703 series [2] for backlight adjustment).
+cc Michael wrt the G10 (capri) series [3], sorry to bother you
about a series that already has R-b and all :) but your device
is very much one of the "clones" on the same platform so please
consider rebasing it on top of the common dtsi. I've deliberately
left the SoC dtsi include out of the common one to allow for
sm4250 as well as sm6115.
[1]: https://lore.kernel.org/all/177451576040.103892.16399746050578598756.b4-ty@linaro.org/
[2]: https://lore.kernel.org/all/20261016162912.64581-1-lukapanio@gmail.com/
[3]: https://lore.kernel.org/all/cover.1792840208.git.me@michaelmcallister.org/
Thanks,
~val
Val Packett (6):
dt-bindings: arm: qcom: Add Motorola Moto G9 Play
dt-bindings: arm: qcom: Add Motorola Moto G9 Power
arm64: dts: qcom: pmi632: Add LCDB regulator node
arm64: dts: qcom: Add sm6115-motorola-common
arm64: dts: qcom: sm6115: Add Motorola Moto G9 Play (guamp)
arm64: dts: qcom: sm6115: Add Motorola Moto G9 Power (cebu)
.../devicetree/bindings/arm/qcom.yaml | 12 +
arch/arm64/boot/dts/qcom/Makefile | 2 +
arch/arm64/boot/dts/qcom/pmi632.dtsi | 14 +
.../dts/qcom/sm6115-motorola-cebu-tianma.dts | 18 +
.../boot/dts/qcom/sm6115-motorola-cebu.dtsi | 43 ++
.../boot/dts/qcom/sm6115-motorola-common.dtsi | 541 ++++++++++++++++++
.../qcom/sm6115-motorola-guamp-holitech.dts | 36 ++
.../boot/dts/qcom/sm6115-motorola-guamp.dtsi | 127 ++++
8 files changed, 793 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm6115-motorola-cebu-tianma.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm6115-motorola-cebu.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/sm6115-motorola-common.dtsi
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
--
2.56.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/6] dt-bindings: arm: qcom: Add Motorola Moto G9 Play
2026-11-09 22:14 [PATCH 0/6] arm64: dts: qcom: Add Moto G9 Play (guamp) / Power (cebu) Val Packett
@ 2026-11-09 22:14 ` Val Packett
2026-11-09 22:14 ` [PATCH 2/6] dt-bindings: arm: qcom: Add Motorola Moto G9 Power Val Packett
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Val Packett @ 2026-11-09 22:14 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Val Packett, Barnabás Czémán, Michael McAllister,
Kees Cook, Tony Luck, Guilherme G. Piccoli, linux-arm-msm,
devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel
Add compatibles for the Moto G9 Play smartphone, codename "guamp".
There are several display panel variants, start with the Holitech one
which will be the first one to get an upstream device tree.
Signed-off-by: Val Packett <val@packett.cool>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 74f46697a363..37443849d0bb 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1073,6 +1073,12 @@ properties:
- xiaomi,lemon
- const: qcom,sm6115
+ - items:
+ - enum:
+ - motorola,guamp-holitech
+ - const: motorola,guamp
+ - const: qcom,sm6115
+
- items:
- enum:
- lenovo,j606f
--
2.56.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/6] dt-bindings: arm: qcom: Add Motorola Moto G9 Power
2026-11-09 22:14 [PATCH 0/6] arm64: dts: qcom: Add Moto G9 Play (guamp) / Power (cebu) Val Packett
2026-11-09 22:14 ` [PATCH 1/6] dt-bindings: arm: qcom: Add Motorola Moto G9 Play Val Packett
@ 2026-11-09 22:14 ` Val Packett
2026-11-09 22:14 ` [PATCH 3/6] arm64: dts: qcom: pmi632: Add LCDB regulator node Val Packett
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Val Packett @ 2026-11-09 22:14 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Val Packett, Barnabás Czémán, Michael McAllister,
Kees Cook, Tony Luck, Guilherme G. Piccoli, linux-arm-msm,
devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel
Add compatibles for the Moto G9 Power smartphone, codename "cebu".
There are several display panel variants, start with the Tianma one
which will be the first one to get an upstream device tree.
Signed-off-by: Val Packett <val@packett.cool>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 37443849d0bb..9c463fce515d 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1073,6 +1073,12 @@ properties:
- xiaomi,lemon
- const: qcom,sm6115
+ - items:
+ - enum:
+ - motorola,cebu-tianma
+ - const: motorola,cebu
+ - const: qcom,sm6115
+
- items:
- enum:
- motorola,guamp-holitech
--
2.56.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 3/6] arm64: dts: qcom: pmi632: Add LCDB regulator node
2026-11-09 22:14 [PATCH 0/6] arm64: dts: qcom: Add Moto G9 Play (guamp) / Power (cebu) Val Packett
2026-11-09 22:14 ` [PATCH 1/6] dt-bindings: arm: qcom: Add Motorola Moto G9 Play Val Packett
2026-11-09 22:14 ` [PATCH 2/6] dt-bindings: arm: qcom: Add Motorola Moto G9 Power Val Packett
@ 2026-11-09 22:14 ` Val Packett
2026-11-09 22:14 ` [PATCH 4/6] arm64: dts: qcom: Add sm6115-motorola-common Val Packett
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Val Packett @ 2026-11-09 22:14 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Val Packett, Barnabás Czémán, Michael McAllister,
Kees Cook, Tony Luck, Guilherme G. Piccoli, linux-arm-msm,
devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel
Describe the LCD bias regulators provided by the PMI632. The ldo/ncp
nodes are left blank to let the device trees fill in the voltages.
Signed-off-by: Val Packett <val@packett.cool>
---
arch/arm64/boot/dts/qcom/pmi632.dtsi | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/pmi632.dtsi b/arch/arm64/boot/dts/qcom/pmi632.dtsi
index b0ed35094a98..ab850050eb22 100644
--- a/arch/arm64/boot/dts/qcom/pmi632.dtsi
+++ b/arch/arm64/boot/dts/qcom/pmi632.dtsi
@@ -204,5 +204,19 @@ pmi632_vib: vibrator@5700 {
reg = <0x5700>;
status = "disabled";
};
+
+ pmi632_lcdb: regulator@ec00 {
+ compatible = "qcom,pmi632-lcdb", "qcom,pm8150l-lcdb";
+ reg = <0xec00>;
+ interrupts = <0x3 0xec 0x1 IRQ_TYPE_EDGE_RISING>;
+
+ status = "disabled";
+
+ pmi632_lcdb_ldo: ldo {
+ };
+
+ pmi632_lcdb_ncp: ncp {
+ };
+ };
};
};
--
2.56.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 4/6] arm64: dts: qcom: Add sm6115-motorola-common
2026-11-09 22:14 [PATCH 0/6] arm64: dts: qcom: Add Moto G9 Play (guamp) / Power (cebu) Val Packett
` (2 preceding siblings ...)
2026-11-09 22:14 ` [PATCH 3/6] arm64: dts: qcom: pmi632: Add LCDB regulator node Val Packett
@ 2026-11-09 22:14 ` Val Packett
2026-11-09 22:14 ` [PATCH 5/6] arm64: dts: qcom: sm6115: Add Motorola Moto G9 Play (guamp) Val Packett
2026-11-09 22:14 ` [PATCH 6/6] arm64: dts: qcom: sm6115: Add Motorola Moto G9 Power (cebu) Val Packett
5 siblings, 0 replies; 7+ messages in thread
From: Val Packett @ 2026-11-09 22:14 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kees Cook, Tony Luck,
Guilherme G. Piccoli
Cc: Val Packett, Barnabás Czémán, Michael McAllister,
linux-arm-msm, devicetree, phone-devel,
~postmarketos/upstreaming, linux-kernel
Add the shared dtsi for sm6115/sm4250-based Motorola smartphones,
with support for:
* Simple framebuffer from bootloader
* Power, volume, and assistant buttons (PMI632)
* Charging LED, haptics/vibrator (PMI632)
* USB Type-C with dual-role USB 2.0 (PMI632)
* eMMC onboard storage and microSD card slot
* Wi-Fi, Bluetooth (WCN3990)
Signed-off-by: Val Packett <val@packett.cool>
---
yes on both phones I've tested, only msm-id is required, not board-id.
---
.../boot/dts/qcom/sm6115-motorola-common.dtsi | 541 ++++++++++++++++++
1 file changed, 541 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm6115-motorola-common.dtsi
diff --git a/arch/arm64/boot/dts/qcom/sm6115-motorola-common.dtsi b/arch/arm64/boot/dts/qcom/sm6115-motorola-common.dtsi
new file mode 100644
index 000000000000..6a5110319bc3
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm6115-motorola-common.dtsi
@@ -0,0 +1,541 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Val Packett <val@packett.cool>
+ */
+
+#include <dt-bindings/arm/qcom,ids.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/usb/pd.h>
+#include "pm6125.dtsi"
+#include "pmi632.dtsi"
+
+/ {
+ chassis-type = "handset";
+
+ /* required for bootloader to select correct board */
+ qcom,msm-id = <QCOM_ID_SM6115 0x10000>;
+
+ aliases {
+ bluetooth0 = &bluetooth;
+ hsuart0 = &uart3;
+ mmc0 = &sdhc_1;
+ mmc1 = &sdhc_2;
+ serial0 = &uart4;
+ wifi0 = &wifi;
+ };
+
+ chosen {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ framebuffer0: framebuffer@5c000000 {
+ compatible = "simple-framebuffer";
+ memory-region = <&cont_splash_memory>;
+ width = <720>;
+ height = <1600>;
+ stride = <(720 * 4)>;
+ format = "a8r8g8b8";
+
+ clocks = <&gcc GCC_DISP_AHB_CLK>,
+ <&gcc GCC_DISP_HF_AXI_CLK>;
+ vddio-supply = <&vreg_l9a>;
+ };
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&key_assistant_n>, <&vol_up_n>;
+ pinctrl-names = "default";
+
+ key-assistant {
+ label = "Assistant";
+ gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_LEFTMETA>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+
+ key-volume-up {
+ label = "Volume Up";
+ linux,code = <KEY_VOLUMEUP>;
+ gpios = <&pm6125_gpios 5 GPIO_ACTIVE_LOW>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+ };
+
+ reserved-memory {
+ ramoops@af000000 {
+ compatible = "ramoops";
+ reg = <0x0 0xaf000000 0x0 0xbf800>;
+ record-size = <0x3f800>;
+ pmsg-size = <0x40000>;
+ console-size = <0x40000>;
+ };
+ };
+
+ vph_pwr: vph-pwr-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "vph_pwr";
+ regulator-always-on;
+ };
+};
+
+&gpi_dma0 {
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&pm6125_l18a>;
+
+ pinctrl-0 = <&mdss_dsi_active &mdss_te_active_sleep>;
+ pinctrl-1 = <&mdss_dsi_sleep &mdss_te_active_sleep>;
+ pinctrl-names = "default", "sleep";
+
+ status = "okay";
+
+ panel: panel@0 {
+ reg = <0>;
+
+ avdd-supply = <&pmi632_lcdb_ldo>;
+ avee-supply = <&pmi632_lcdb_ncp>;
+
+ status = "disabled";
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&panel_in>;
+};
+
+&mdss_dsi0_phy {
+ status = "okay";
+};
+
+&pm6125_gpios {
+ vol_up_n: vol-up-n-state {
+ pins = "gpio5";
+ function = PMIC_GPIO_FUNC_NORMAL;
+ power-source = <0>;
+ bias-pull-up;
+ input-enable;
+ };
+};
+
+&pmi632_lpg {
+ status = "okay";
+
+ led@1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_WHITE>;
+ function = LED_FUNCTION_CHARGING;
+ };
+};
+
+&pmi632_typec {
+ status = "okay";
+
+ connector {
+ compatible = "usb-c-connector";
+
+ power-role = "dual";
+ data-role = "dual";
+ self-powered;
+
+ typec-power-opmode = "default";
+ pd-disable;
+
+ vbus-supply = <&pmi632_vbus>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ pmi632_hs_in: endpoint {
+ remote-endpoint = <&usb_dwc3_hs>;
+ };
+ };
+ };
+ };
+};
+
+&pmi632_vbus {
+ regulator-min-microamp = <500000>;
+ regulator-max-microamp = <1000000>;
+ status = "okay";
+};
+
+&pmi632_vib {
+ status = "okay";
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+ status = "okay";
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&rpm_requests {
+ regulators-0 {
+ compatible = "qcom,rpm-pm6125-regulators";
+
+ pm6125_s6a: s6 {
+ regulator-min-microvolt = <304000>;
+ regulator-max-microvolt = <1456000>;
+ };
+
+ pm6125_s7a: s7 {
+ regulator-min-microvolt = <1280000>;
+ regulator-max-microvolt = <2080000>;
+ };
+
+ pm6125_s8a: s8 {
+ regulator-min-microvolt = <1064000>;
+ regulator-max-microvolt = <1304000>;
+ };
+
+ pm6125_l1a: l1 {
+ regulator-min-microvolt = <952000>;
+ regulator-max-microvolt = <1152000>;
+ };
+
+ pm6125_l4a: l4 {
+ regulator-min-microvolt = <488000>;
+ regulator-max-microvolt = <1000000>;
+ };
+
+ pm6125_l5a: l5 {
+ regulator-min-microvolt = <1800000>;
+ /* 3.056V capped to 2.96V for SDHCI */
+ regulator-max-microvolt = <2960000>;
+ regulator-allow-set-load;
+ /* Broken hw, this one can't be turned off or SDHCI will break! */
+ regulator-always-on;
+ };
+
+ pm6125_l6a: l6 {
+ regulator-min-microvolt = <576000>;
+ regulator-max-microvolt = <656000>;
+ };
+
+ pm6125_l7a: l7 {
+ /* 1.2V-1.304V fixed at 1.256V for SDHCI bias */
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1256000>;
+ regulator-always-on;
+ };
+
+ pm6125_l8a: l8 {
+ regulator-min-microvolt = <400000>;
+ regulator-max-microvolt = <728000>;
+ };
+
+ pm6125_l9a: l9 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2000000>;
+ };
+
+ pm6125_l10a: l10 {
+ regulator-min-microvolt = <1704000>;
+ regulator-max-microvolt = <1904000>;
+ };
+
+ pm6125_l11a: l11 {
+ regulator-min-microvolt = <1704000>;
+ regulator-max-microvolt = <1952000>;
+ regulator-allow-set-load;
+ };
+
+ pm6125_l12a: l12 {
+ regulator-min-microvolt = <1624000>;
+ regulator-max-microvolt = <1984000>;
+ };
+
+ pm6125_l13a: l13 {
+ regulator-min-microvolt = <1504000>;
+ regulator-max-microvolt = <1952000>;
+ };
+
+ pm6125_l14a: l14 {
+ regulator-min-microvolt = <1704000>;
+ regulator-max-microvolt = <1904000>;
+ };
+
+ pm6125_l15a: l15 {
+ regulator-min-microvolt = <2920000>;
+ regulator-max-microvolt = <3232000>;
+ };
+
+ pm6125_l16a: l16 {
+ regulator-min-microvolt = <1704000>;
+ regulator-max-microvolt = <1904000>;
+ };
+
+ pm6125_l17a: l17 {
+ regulator-min-microvolt = <1152000>;
+ regulator-max-microvolt = <1384000>;
+ };
+
+ pm6125_l18a: l18 {
+ /* 1.104V-1.312V fixed @ 1.232V for DSI PHY */
+ regulator-min-microvolt = <1232000>;
+ regulator-max-microvolt = <1232000>;
+ };
+
+ pm6125_l19a: l19 {
+ regulator-min-microvolt = <1624000>;
+ regulator-max-microvolt = <3304000>;
+ };
+
+ pm6125_l20a: l20 {
+ regulator-min-microvolt = <1624000>;
+ regulator-max-microvolt = <3304000>;
+ };
+
+ pm6125_l21a: l21 {
+ regulator-min-microvolt = <2700000>;
+ regulator-max-microvolt = <3600000>;
+ };
+
+ pm6125_l22a: l22 {
+ regulator-min-microvolt = <2952000>;
+ regulator-max-microvolt = <3304000>;
+ };
+
+ pm6125_l23a: l23 {
+ regulator-min-microvolt = <3200000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ pm6125_l24a: l24 {
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <3600000>;
+ regulator-allow-set-load;
+ };
+ };
+};
+
+&sdc2_state_off {
+ cd-pins {
+ pins = "gpio88";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+};
+
+&sdc2_state_on {
+ cd-pins {
+ pins = "gpio88";
+ function = "gpio";
+ drive-strength = <2>;
+ /* This is odd, but it only works with pull *up* and ACTIVE_HIGH */
+ bias-pull-up;
+ };
+};
+
+&sdhc_1 {
+ pinctrl-0 = <&sdc1_state_on>;
+ pinctrl-1 = <&sdc1_state_off>;
+ pinctrl-names = "default", "sleep";
+
+ vmmc-supply = <&pm6125_l24a>;
+ vqmmc-supply = <&pm6125_l11a>;
+
+ no-sd;
+ non-removable;
+
+ status = "okay";
+};
+
+&sdhc_2 {
+ pinctrl-0 = <&sdc2_state_on>;
+ pinctrl-1 = <&sdc2_state_off>;
+ pinctrl-names = "default", "sleep";
+
+ cd-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
+
+ vmmc-supply = <&pm6125_l22a>;
+ vqmmc-supply = <&pm6125_l5a>;
+
+ no-sdio;
+ no-mmc;
+
+ status = "okay";
+};
+
+&sleep_clk {
+ clock-frequency = <32764>;
+};
+
+&tlmm {
+ gpio-reserved-ranges = <14 4> /* SPI5 (TZ) */;
+
+ qup_uart3_sleep: qup-uart3-sleep-state {
+ cts-pins {
+ /*
+ * Configure a pull-down on CTS to match the pull of
+ * the Bluetooth module.
+ */
+ pins = "gpio8";
+ function = "gpio";
+ bias-pull-down;
+ };
+
+ rts-pins {
+ /*
+ * Configure pull-down on RTS. As RTS is active low
+ * signal, pull it low to indicate the BT SoC that it
+ * can wakeup the system anytime from suspend state by
+ * pulling RX low (by sending wakeup bytes).
+ */
+ pins = "gpio9";
+ function = "gpio";
+ bias-pull-down;
+ };
+
+ tx-pins {
+ /*
+ * Configure pull-up on TX when it isn't actively driven
+ * to prevent BT SoC from receiving garbage during sleep.
+ */
+ pins = "gpio10";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ rx-pins {
+ /*
+ * Configure a pull-up on RX. This is needed to avoid
+ * garbage data when the TX pin of the Bluetooth module
+ * is floating which may cause spurious wakeups.
+ */
+ pins = "gpio11";
+ function = "gpio";
+ bias-pull-up;
+ };
+ };
+
+ key_assistant_n: key-assistant-n-state {
+ pins = "gpio33";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ mdss_te_active_sleep: mdss-te-active-sleep-state {
+ pins = "gpio81";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ mdss_dsi_active: mdss-dsi-active-state {
+ pins = "gpio82";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ mdss_dsi_sleep: mdss-dsi-sleep-state {
+ pins = "gpio82";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+};
+
+&uart3 {
+ status = "okay";
+
+ interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+ <&tlmm 11 IRQ_TYPE_EDGE_FALLING>;
+
+ pinctrl-names = "default", "sleep";
+ pinctrl-1 = <&qup_uart3_sleep>;
+
+ bluetooth: bluetooth {
+ compatible = "qcom,wcn3990-bt";
+
+ vddch0-supply = <&pm6125_l23a>;
+ vddio-supply = <&pm6125_l9a>;
+ vddrf-supply = <&pm6125_l17a>;
+ vddxo-supply = <&pm6125_l16a>;
+
+ max-speed = <3200000>;
+ };
+};
+
+&uart4 {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+
+ /* USB 2.0 only */
+ qcom,select-utmi-as-pipe-clk;
+};
+
+&usb_dwc3 {
+ maximum-speed = "high-speed";
+
+ /* Remove USB3 phy */
+ phys = <&usb_hsphy>;
+ phy-names = "usb2-phy";
+};
+
+&usb_dwc3_hs {
+ remote-endpoint = <&pmi632_hs_in>;
+};
+
+&usb_hsphy {
+ vdd-supply = <&pm6125_l4a>;
+ vdda-phy-dpdm-supply = <&pm6125_l15a>;
+ vdda-pll-supply = <&pm6125_l12a>;
+
+ status = "okay";
+};
+
+&wifi {
+ vdd-0.8-cx-mx-supply = <&pm6125_l8a>;
+ vdd-1.3-rfa-supply = <&pm6125_l17a>;
+ vdd-1.8-xo-supply = <&pm6125_l16a>;
+ vdd-3.3-ch0-supply = <&pm6125_l23a>;
+
+ status = "okay";
+};
+
+&xo_board {
+ clock-frequency = <19200000>;
+};
--
2.56.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 5/6] arm64: dts: qcom: sm6115: Add Motorola Moto G9 Play (guamp)
2026-11-09 22:14 [PATCH 0/6] arm64: dts: qcom: Add Moto G9 Play (guamp) / Power (cebu) Val Packett
` (3 preceding siblings ...)
2026-11-09 22:14 ` [PATCH 4/6] arm64: dts: qcom: Add sm6115-motorola-common Val Packett
@ 2026-11-09 22:14 ` Val Packett
2026-11-09 22:14 ` [PATCH 6/6] arm64: dts: qcom: sm6115: Add Motorola Moto G9 Power (cebu) Val Packett
5 siblings, 0 replies; 7+ messages in thread
From: Val Packett @ 2026-11-09 22:14 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Val Packett, Barnabás Czémán, Michael McAllister,
Kees Cook, Tony Luck, Guilherme G. Piccoli, linux-arm-msm,
devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel
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@packett.cool>
---
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@packett.cool>
+ */
+
+/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@packett.cool>
+ */
+
+#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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 6/6] arm64: dts: qcom: sm6115: Add Motorola Moto G9 Power (cebu)
2026-11-09 22:14 [PATCH 0/6] arm64: dts: qcom: Add Moto G9 Play (guamp) / Power (cebu) Val Packett
` (4 preceding siblings ...)
2026-11-09 22:14 ` [PATCH 5/6] arm64: dts: qcom: sm6115: Add Motorola Moto G9 Play (guamp) Val Packett
@ 2026-11-09 22:14 ` Val Packett
5 siblings, 0 replies; 7+ messages in thread
From: Val Packett @ 2026-11-09 22:14 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: Val Packett, Barnabás Czémán, Michael McAllister,
Kees Cook, Tony Luck, Guilherme G. Piccoli, linux-arm-msm,
devicetree, phone-devel, ~postmarketos/upstreaming, linux-kernel
Add a device tree for the Moto G9 Power with the Tianma display panel
based on the Novatek NT36525B DDIC. The panel driver will be added
and enabled here in separate commits.
Signed-off-by: Val Packett <val@packett.cool>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/sm6115-motorola-cebu-tianma.dts | 18 ++++++++
.../boot/dts/qcom/sm6115-motorola-cebu.dtsi | 43 +++++++++++++++++++
3 files changed, 62 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm6115-motorola-cebu-tianma.dts
create mode 100644 arch/arm64/boot/dts/qcom/sm6115-motorola-cebu.dtsi
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6365f0ed0406..84ba824ed715 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-cebu-tianma.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
diff --git a/arch/arm64/boot/dts/qcom/sm6115-motorola-cebu-tianma.dts b/arch/arm64/boot/dts/qcom/sm6115-motorola-cebu-tianma.dts
new file mode 100644
index 000000000000..31ca51570ea2
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm6115-motorola-cebu-tianma.dts
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Val Packett <val@packett.cool>
+ */
+
+/dts-v1/;
+
+#include "sm6115-motorola-cebu.dtsi"
+
+/ {
+ model = "Motorola Moto G9 Power (Tianma)";
+ compatible = "motorola,cebu-tianma", "motorola,cebu", "qcom,sm6115";
+};
+
+&dispcc {
+ /* Preserve the bootloader display until the native panel is supported */
+ status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/qcom/sm6115-motorola-cebu.dtsi b/arch/arm64/boot/dts/qcom/sm6115-motorola-cebu.dtsi
new file mode 100644
index 000000000000..6f5263a67319
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm6115-motorola-cebu.dtsi
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026, Val Packett <val@packett.cool>
+ */
+
+#include "sm6115.dtsi"
+#include "sm6115-motorola-common.dtsi"
+
+&framebuffer0 {
+ height = <1640>;
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/sm6115/Motorola/cebu/a610_zap.mbn";
+};
+
+&i2c1 {
+ /* awinic,aw99703 backlight @ 36 */
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/sm6115/Motorola/cebu/adsp.mbn";
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/sm6115/Motorola/cebu/cdsp.mbn";
+ status = "okay";
+};
+
+&remoteproc_mpss {
+ firmware-name = "qcom/sm6115/Motorola/cebu/modem.mbn";
+ status = "okay";
+};
+
+&venus {
+ firmware-name = "qcom/sm6115/Motorola/cebu/venus.mbn";
+ status = "okay";
+};
+
+&wifi {
+ qcom,calibration-variant = "Motorola_cebu";
+};
--
2.56.0
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-11-09 22:16 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-09 22:14 [PATCH 0/6] arm64: dts: qcom: Add Moto G9 Play (guamp) / Power (cebu) Val Packett
2026-11-09 22:14 ` [PATCH 1/6] dt-bindings: arm: qcom: Add Motorola Moto G9 Play Val Packett
2026-11-09 22:14 ` [PATCH 2/6] dt-bindings: arm: qcom: Add Motorola Moto G9 Power Val Packett
2026-11-09 22:14 ` [PATCH 3/6] arm64: dts: qcom: pmi632: Add LCDB regulator node Val Packett
2026-11-09 22:14 ` [PATCH 4/6] arm64: dts: qcom: Add sm6115-motorola-common Val Packett
2026-11-09 22:14 ` [PATCH 5/6] arm64: dts: qcom: sm6115: Add Motorola Moto G9 Play (guamp) Val Packett
2026-11-09 22:14 ` [PATCH 6/6] arm64: dts: qcom: sm6115: Add Motorola Moto G9 Power (cebu) Val Packett
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®