From 3a59fa63f5a937bcdb561cf06935279401461794 Mon Sep 17 00:00:00 2001 From: Theo Hussey Date: Fri, 2 Jan 2026 22:05:09 +0000 Subject: [PATCH] arm64: dts: qcom: msm8937: Add support for Motorola G6 Play (Jeter) --- arch/arm64/boot/dts/qcom/Makefile | 1 + .../boot/dts/qcom/msm8937-motorola-jeter.dts | 534 ++++++++++++++++++ 2 files changed, 535 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/msm8937-motorola-jeter.dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index a3ce69bbab4b64..4e2fa7c4af31c6 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -84,6 +84,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8917-xiaomi-tiare.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8917-xiaomi-ugglite.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8929-wingtech-wt82918hd.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8937-motorola-hannah.dtb +dtb-$(CONFIG_ARCH_QCOM) += msm8937-motorola-jeter.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8937-motorola-montana.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8937-xiaomi-land.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8937-xiaomi-prada.dtb diff --git a/arch/arm64/boot/dts/qcom/msm8937-motorola-jeter.dts b/arch/arm64/boot/dts/qcom/msm8937-motorola-jeter.dts new file mode 100644 index 00000000000000..7f8b4d837ad74c --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8937-motorola-jeter.dts @@ -0,0 +1,534 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2025 Val Packett + */ + +/dts-v1/; + +#include +#include +#include +#include "msm8937.dtsi" +#include "pmi8950.dtsi" +#include "pm8937.dtsi" +#include "msm8937-qdsp6.dtsi" + +/delete-node/ &qseecom_mem; + +/ { + model = "Motorola Moto G6 Play (jeter)"; + compatible = "motorola,jeter", "qcom,msm8937"; + qcom,msm-id = ; + qcom,board-id = <0x4A 0x8100>, + <0x4A 0x8000>, + <0x4B 0x8000>; + chassis-type = "handset"; + + aliases { + mmc0 = &sdhc_1; + mmc1 = &sdhc_2; + }; + + battery: battery { + compatible = "simple-battery"; + + charge-full-design-microamp-hours = <4000000>; + constant-charge-current-max-microamp = <1000000>; + voltage-min-design-microvolt = <3400000>; + voltage-max-design-microvolt = <4400000>; + }; + + chosen { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + stdout-path = "framebuffer0"; + + framebuffer0: framebuffer@90001000 { + compatible = "simple-framebuffer"; + reg = <0x0 0x90001000 0x0 (720 * 1440 * 3)>; + width = <720>; + height = <1440>; + stride = <(720 * 3)>; + format = "r8g8b8"; + + clocks = <&gcc GCC_MDSS_AHB_CLK>, + <&gcc GCC_MDSS_AXI_CLK>, + <&gcc GCC_MDSS_VSYNC_CLK>, + <&gcc GCC_MDSS_MDP_CLK>, + <&gcc GCC_MDSS_BYTE0_CLK>, + <&gcc GCC_MDSS_PCLK0_CLK>, + <&gcc GCC_MDSS_ESC0_CLK>; + power-domains = <&gcc MDSS_GDSC>; + status = "disabled"; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + + pinctrl-0 = <&gpio_keys_default>; + pinctrl-names = "default"; + + key-volup { + label = "Volume Up"; + linux,code = ; + gpios = <&tlmm 91 GPIO_ACTIVE_LOW>; + debounce-interval = <15>; + }; + }; + + /* + * We bitbang on &i2c_4 because BLSP is protected by TZ as sensors are + * normally proxied via ADSP firmware. GPIOs aren't protected. + */ + i2c-sensors { + compatible = "i2c-gpio"; + sda-gpios = <&tlmm 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; + scl-gpios = <&tlmm 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; + i2c-gpio,delay-us = <2>; /* ~100 kHz */ + #address-cells = <1>; + #size-cells = <0>; + + // imu@18 { + // compatible = "bosch,bma253"; + // reg = <0x18>; + + // interrupts-extended = <&tlmm 41 IRQ_TYPE_EDGE_RISING>; + + // vdd-supply = <&pm8937_l10>; + // vddio-supply = <&pm8937_l6>; + + // mount-matrix = "-1", "0", "0", + // "0", "-1", "0", + // "0", "0", "-1"; + // }; + }; + + reserved-memory { + qseecom_mem: qseecom@84300000 { + reg = <0x0 0x84300000 0x0 0x2000000>; + no-map; + }; + + framebuffer_mem: memory@90001000 { + reg = <0x0 0x90001000 0x0 (720 * 1440 * 3)>; + no-map; + }; + }; + + vph_pwr: vph-pwr-regulator { + compatible = "regulator-fixed"; + regulator-name = "vph_pwr"; + regulator-min-microvolt = <3700000>; + regulator-max-microvolt = <3700000>; + regulator-always-on; + regulator-boot-on; + }; + + usb_id: usb-id { + compatible = "linux,extcon-usb-gpio"; + id-gpios = <&tlmm 97 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&usb_id_default>; + pinctrl-names = "default"; + }; +}; + +&adsp { + status = "okay"; +}; + +&adsp_mem { + status = "okay"; +}; + +&apr { + status = "okay"; +}; + +&blsp1_i2c2 { + clock-frequency = <400000>; + status = "okay"; + + proximity@28 { + compatible = "semtech,sx9310"; + reg = <0x28>; + #io-channel-cells = <1>; + pinctrl-0 = <&sx9310_default>; + pinctrl-names = "default"; + + interrupt-parent = <&tlmm>; + interrupts = <59 IRQ_TYPE_LEVEL_LOW>; + + vdd-supply = <&pm8937_l10>; + svdd-supply = <&pm8937_l5>; + + label = "proximity-bottom"; + }; +}; + +&blsp1_i2c3 { + status = "okay"; + + touchscreen@1 { + compatible = "novatek,nt36672a-ts"; + reg = <0x1>; + interrupts-extended = <&tlmm 65 IRQ_TYPE_EDGE_FALLING>; + reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>; + vcc-supply = <&pm8937_l10>; + iovcc-supply = <&pm8937_l6>; + touchscreen-size-x = <720>; + touchscreen-size-y = <1440>; + }; + + /* ILI9881 @ 0x41 */ +}; + +&gpu { + status = "okay"; +}; + +&lpass_codec { + status = "okay"; +}; + +&mdss { + status = "okay"; +}; + +&mdss_dsi0 { + vdda-supply = <&pm8937_l2>; + vddio-supply = <&pm8937_l6>; + + pinctrl-0 = <&mdss_dsi_default>; + pinctrl-1 = <&mdss_dsi_sleep>; + pinctrl-names = "default", "sleep"; + + status = "okay"; + + panel@0 { + compatible = "motorola,nora-panel"; + reg = <0>; + + reset-gpios = <&tlmm 60 GPIO_ACTIVE_LOW>; + backlight = <&pmi8950_wled>; + + 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 { + vddio-supply = <&pm8937_l6>; + status = "okay"; +}; + +&pm8937_resin { + linux,code = ; + status = "okay"; +}; + +&pm8937_spmi_regulators { + // PM8937 S5 + S6 = VDD_APC supply + pm8937_s5: s5 { + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1350000>; + regulator-always-on; + regulator-boot-on; + }; +}; + +&pmi8950_fg { + monitored-battery = <&battery>; + power-supplies = <&pmi8950_smbcharger>; + status = "okay"; +}; + +&pmi8950_smbcharger { + monitored-battery = <&battery>; + status = "okay"; +}; + +&pmi8950_wled { + qcom,current-limit-microamp = <25000>; + qcom,num-strings = <2>; + qcom,ovp-millivolt = <29500>; + qcom,switching-freq = <800>; + qcom,cabc; + qcom,external-pfet; + + status = "okay"; +}; + +&rpm_requests { + regulators-0 { + compatible = "qcom,rpm-pm8937-regulators"; + + vdd_s1-supply = <&vph_pwr>; + vdd_s2-supply = <&vph_pwr>; + vdd_s3-supply = <&vph_pwr>; + vdd_s4-supply = <&vph_pwr>; + + vdd_l1_l19-supply = <&pm8937_s3>; + vdd_l2_l23-supply = <&pm8937_s3>; + vdd_l3-supply = <&pm8937_s3>; + vdd_l4_l5_l6_l7_l16-supply = <&pm8937_s4>; + vdd_l8_l11_l12_l17_l22-supply = <&vph_pwr>; + vdd_l9_l10_l13_l14_l15_l18-supply = <&vph_pwr>; + + pm8937_s1: s1 { + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1225000>; + }; + + pm8937_s3: s3 { + regulator-min-microvolt = <1300000>; + regulator-max-microvolt = <1300000>; + }; + + pm8937_s4: s4 { + regulator-min-microvolt = <2050000>; + regulator-max-microvolt = <2050000>; + }; + + pm8937_l2: l2 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + pm8937_l5: l5 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + pm8937_l6: l6 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + pm8937_l7: l7 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + pm8937_l8: l8 { + regulator-min-microvolt = <2850000>; + regulator-max-microvolt = <2900000>; + }; + + pm8937_l9: l9 { + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3300000>; + }; + + pm8937_l10: l10 { + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + pm8937_l11: l11 { + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <2950000>; + regulator-allow-set-load; + regulator-system-load = <200000>; + }; + + pm8937_l12: l12 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2950000>; + }; + + pm8937_l13: l13 { + regulator-min-microvolt = <3075000>; + regulator-max-microvolt = <3075000>; + }; + + pm8937_l14: l14 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + }; + + pm8937_l15: l15 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + }; + + pm8937_l16: l16 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + pm8937_l17: l17 { + regulator-min-microvolt = <2850000>; + regulator-max-microvolt = <2850000>; + }; + + pm8937_l18: l18 { + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2700000>; + }; + + pm8937_l19: l19 { + regulator-min-microvolt = <1225000>; + regulator-max-microvolt = <1350000>; + }; + + pm8937_l22: l22 { + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + }; + + pm8937_l23: l23 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + }; +}; + +&sdhc_1 { + status = "okay"; +}; + +&sdhc_2 { + pinctrl-0 = <&sdc2_default &sdc2_cd_default>; + pinctrl-1 = <&sdc2_default &sdc2_cd_default>; + pinctrl-names = "default", "sleep"; + + cd-gpios = <&tlmm 67 GPIO_ACTIVE_HIGH>; + + status = "okay"; +}; + +&sleep_clk { + clock-frequency = <32768>; +}; + +&sound { + model = "motorola-jeter"; + audio-routing = + "AMIC1", "MIC BIAS External1", + "AMIC2", "MIC BIAS External2", + "AMIC3", "MIC BIAS External1", + "MM_DL1", "MultiMedia1 Playback", + "MM_DL3", "MultiMedia3 Playback", + "MM_DL4", "MultiMedia4 Playback", + "MultiMedia2 Capture", "MM_UL2"; + + status = "okay"; +}; + +&tlmm { + gpio-reserved-ranges = <20 4>; + + gpio_keys_default: gpio-keys-default-state { + pins = "gpio91"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + + mdss_dsi_default: mdss-dsi-default-state { + pins = "gpio60"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + output-high; + }; + + mdss_dsi_sleep: mdss-dsi-sleep-state { + pins = "gpio60"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + sdc2_cd_default: sdc2-cd-default-state { + pins = "gpio67"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + usb_id_default: usb-id-default { + pins = "gpio97"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + + sx9310_default: sx9310-default { + pins = "gpio59"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + input-enable; + }; +}; + +&usb { + dr_mode = "otg"; + extcon = <&pmi8950_smbcharger>, <&usb_id>; + vbus-supply = <&otg_vbus>; + status = "okay"; +}; + +&usb_hs_phy { + vdd-supply = <&pm8937_l2>; + vdda1p8-supply = <&pm8937_l7>; + vdda3p3-supply = <&pm8937_l13>; + status = "okay"; +}; + +// &venus { +// status = "okay"; +// }; + +// &venus_mem { +// status = "okay"; +// }; + +&wcnss { + vddpx-supply = <&pm8937_l5>; + status = "okay"; +}; + +&wcnss_ctrl { + firmware-name = "qcom/msm8937/motorola/hannah/WCNSS_qcom_wlan_nv.bin"; +}; + +&wcnss_iris { + compatible = "qcom,wcn3620"; + vddxo-supply = <&pm8937_l7>; + vddrfa-supply = <&pm8937_l19>; + vddpa-supply = <&pm8937_l9>; + vdddig-supply = <&pm8937_l5>; +}; + +&wcnss_mem { + status = "okay"; +}; + +&wcd_codec { + qcom,hphl-jack-type-normally-open; + qcom,mbhc-vthreshold-high = <75 150 225 450 500>; + qcom,mbhc-vthreshold-low = <75 150 225 450 500>; + qcom,micbias1-ext-cap; + + vdd-cdc-io-supply = <&pm8937_l5>; + vdd-cdc-tx-rx-cx-supply = <&pm8937_s4>; + vdd-micbias-supply = <&pm8937_l13>; + status = "okay"; +}; + +&xo_board { + clock-frequency = <19200000>; +};