* [PATCH v5 1/7] dt-bindings: vendor-prefixes: Add LeEco
2026-08-21 12:26 [PATCH v5 0/7] arm64: dts: qcom: Add 3 new devices Adam Skladowski
@ 2026-08-21 12:27 ` Adam Skladowski
2026-08-21 12:27 ` [PATCH v5 2/7] dt-bindings: arm: qcom: Document Motorola Moto One Adam Skladowski
` (5 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Adam Skladowski @ 2026-08-21 12:27 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kees Cook, Tony Luck, Guilherme G. Piccoli
Cc: linux-arm-msm, devicetree, linux-kernel, linux-hardening,
Adam Skladowski
Add vendor prefix for now dead ecosystem company LeEco
Signed-off-by: Adam Skladowski <a39.skl@gmail.com>
---
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 136681412501..dd0762d3334b 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -947,6 +947,8 @@ patternProperties:
description: Shenzen LC Technology Co., Ltd.
"^leadtek,.*":
description: Shenzhen Leadtek Technology Co., Ltd.
+ "^leeco,.*":
+ description: Leshi Holding Beijing.
"^leez,.*":
description: Leez
"^lego,.*":
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v5 2/7] dt-bindings: arm: qcom: Document Motorola Moto One
2026-08-21 12:26 [PATCH v5 0/7] arm64: dts: qcom: Add 3 new devices Adam Skladowski
2026-08-21 12:27 ` [PATCH v5 1/7] dt-bindings: vendor-prefixes: Add LeEco Adam Skladowski
@ 2026-08-21 12:27 ` Adam Skladowski
2026-08-21 12:27 ` [PATCH v5 3/7] arm64: dts: qcom: Add Motorola One Adam Skladowski
` (4 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Adam Skladowski @ 2026-08-21 12:27 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kees Cook, Tony Luck, Guilherme G. Piccoli
Cc: linux-arm-msm, devicetree, linux-kernel, linux-hardening,
Adam Skladowski, Krzysztof Kozlowski
Add compatible for Motorola Moto One(deen) based on Snapdragon 625 SoC.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Adam Skladowski <a39.skl@gmail.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index ff8a35df7862..289a3de1d24b 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -292,6 +292,7 @@ properties:
- items:
- enum:
- flipkart,rimob
+ - motorola,deen
- motorola,potter
- xiaomi,daisy
- xiaomi,mido
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v5 3/7] arm64: dts: qcom: Add Motorola One
2026-08-21 12:26 [PATCH v5 0/7] arm64: dts: qcom: Add 3 new devices Adam Skladowski
2026-08-21 12:27 ` [PATCH v5 1/7] dt-bindings: vendor-prefixes: Add LeEco Adam Skladowski
2026-08-21 12:27 ` [PATCH v5 2/7] dt-bindings: arm: qcom: Document Motorola Moto One Adam Skladowski
@ 2026-08-21 12:27 ` Adam Skladowski
2026-08-21 12:27 ` [PATCH v5 4/7] dt-bindings: arm: qcom: Document LeEco Le2 Adam Skladowski
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Adam Skladowski @ 2026-08-21 12:27 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kees Cook, Tony Luck, Guilherme G. Piccoli
Cc: linux-arm-msm, devicetree, linux-kernel, linux-hardening,
Adam Skladowski
Add a devicetree for the Motorola One smartphone, which is based
on the Jacala/MSM8953 SoC.
Supported functionality as of this initial submission:
* I2C peripherals (NFC)
* Power Button, Volume Keys
* Regulators (PM8953)
* Remoteprocs (ADSP, MPSS, WCNSS)
* USB
Device tree also contains supply maps to other subsystems like MDSS
but due to missing dependencies like panel those are disabled.
Signed-off-by: Adam Skladowski <a39.skl@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/msm8953-motorola-deen.dts | 440 +++++++++++++++++++++
2 files changed, 441 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 1c86e7e98f55..11e953657691 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -120,6 +120,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8939-sony-xperia-kanuti-tulip.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8939-wingtech-wt82918.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8939-wingtech-wt82918hd.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8953-flipkart-rimob.dtb
+dtb-$(CONFIG_ARCH_QCOM) += msm8953-motorola-deen.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8953-motorola-potter.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8953-xiaomi-daisy.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8953-xiaomi-mido.dtb
diff --git a/arch/arm64/boot/dts/qcom/msm8953-motorola-deen.dts b/arch/arm64/boot/dts/qcom/msm8953-motorola-deen.dts
new file mode 100644
index 000000000000..4bc407e23580
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8953-motorola-deen.dts
@@ -0,0 +1,440 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026 Adam Skladowski <a39skl@gmail.com>
+ */
+
+/dts-v1/;
+#include <dt-bindings/usb/pd.h>
+#include "msm8953.dtsi"
+#include "pm8953.dtsi"
+#include "pmi8950.dtsi"
+
+/delete-node/ &cont_splash_mem;
+/delete-node/ &qseecom_mem;
+
+/ {
+ model = "Motorola One";
+ compatible = "motorola,deen", "qcom,msm8953";
+ chassis-type = "handset";
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&gpio_key_default>;
+ pinctrl-names = "default";
+
+ key-volume-up {
+ label = "Volume Up";
+ gpios = <&tlmm 85 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_VOLUMEUP>;
+ };
+ };
+
+ reserved-memory {
+ qseecom_mem: qseecom@84300000 {
+ reg = <0x0 0x84300000 0x0 0x2000000>;
+ no-map;
+ };
+ };
+
+ vph_pwr: regulator-vph-pwr {
+ compatible = "regulator-fixed";
+ regulator-name = "vph_pwr";
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ /* Fake VBUS 5V supply till we wire pmi8950 one */
+ fusb302_vbus: regulator-otg-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "otg-vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+};
+
+&hsusb_phy {
+ vdd-supply = <&pm8953_l3>;
+ vdda-phy-dpdm-supply = <&pm8953_l13>;
+ vdda-pll-supply = <&pm8953_l7>;
+
+ status = "okay";
+};
+
+&i2c_1 {
+ status = "okay";
+
+ typec-portc@22 {
+ compatible = "fcs,fusb302";
+ reg = <0x22>;
+ interrupts-extended = <&tlmm 9 IRQ_TYPE_LEVEL_LOW>;
+
+ pinctrl-0 = <&fusb302_int_default>;
+ pinctrl-names = "default";
+
+ vbus-supply = <&fusb302_vbus>;
+
+ connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ power-role = "dual";
+ data-role = "dual";
+ op-sink-microwatt = <2000000>;
+ try-power-role = "sink";
+ typec-power-opmode = "default";
+ source-pdos = <PDO_FIXED(5000, 500,
+ PDO_FIXED_DUAL_ROLE |
+ PDO_FIXED_DATA_SWAP |
+ PDO_FIXED_USB_COMM)>;
+ sink-pdos = <PDO_FIXED(5000, 3000,
+ PDO_FIXED_DUAL_ROLE |
+ PDO_FIXED_DATA_SWAP |
+ PDO_FIXED_USB_COMM)>;
+
+ port {
+ fusb302: endpoint {
+ remote-endpoint = <&usb_dwc3_hs>;
+ };
+ };
+ };
+ };
+};
+
+&i2c_2 {
+ status = "okay";
+};
+
+&i2c_3 {
+ status = "okay";
+};
+
+&i2c_5 {
+ status = "okay";
+
+ pn553: nfc@28 {
+ compatible = "nxp,pn553", "nxp,nxp-nci-i2c";
+ reg = <0x28>;
+ interrupts-extended = <&tlmm 17 IRQ_TYPE_LEVEL_HIGH>;
+
+ enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
+ firmware-gpios = <&tlmm 62 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&nfc_firm_default &nfc_irq_default &nfc_pwr_default>;
+ pinctrl-names = "default";
+ };
+};
+
+&ibb {
+ qcom,discharge-resistor-kohms = <32>;
+};
+
+&lpass {
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&pm8953_s3>;
+ vddio-supply = <&pm8953_l6>;
+};
+
+&mdss_dsi0_out {
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ vcca-supply = <&pm8953_l3>;
+};
+
+&mpss {
+ pll-supply = <&pm8953_l7>;
+
+ status = "okay";
+};
+
+&pm8953_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&pmi8950_wled {
+ qcom,current-limit-microamp = <25000>;
+ qcom,num-strings = <2>;
+
+ qcom,cabc;
+ qcom,external-pfet;
+};
+
+&q6afedai {
+ dai@22 {
+ reg = <QUATERNARY_MI2S_RX>;
+ qcom,sd-lines = <0>;
+ };
+
+ dai@127 {
+ reg = <QUINARY_MI2S_RX>;
+ qcom,sd-lines = <1>;
+ };
+};
+
+&rpm_requests {
+ regulators {
+ compatible = "qcom,rpm-pm8953-regulators";
+ vdd_s1-supply = <&vph_pwr>;
+ vdd_s2-supply = <&vph_pwr>;
+ vdd_s3-supply = <&vph_pwr>;
+ vdd_s4-supply = <&vph_pwr>;
+ vdd_s5-supply = <&vph_pwr>;
+ vdd_s6-supply = <&vph_pwr>;
+ vdd_s7-supply = <&vph_pwr>;
+ vdd_l1-supply = <&pm8953_s3>;
+ vdd_l2_l3-supply = <&pm8953_s3>;
+ vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>;
+ vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>;
+ vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>;
+ vdd_l23-supply = <&pm8953_s3>;
+
+ pm8953_s1: s1 {
+ regulator-min-microvolt = <863000>;
+ regulator-max-microvolt = <1152000>;
+ };
+
+ pm8953_s3: s3 {
+ regulator-min-microvolt = <1224000>;
+ regulator-max-microvolt = <1224000>;
+ };
+
+ pm8953_s4: s4 {
+ regulator-min-microvolt = <1896000>;
+ regulator-max-microvolt = <2048000>;
+ };
+
+ pm8953_l1: l1 {
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1100000>;
+ };
+
+ pm8953_l2: l2 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+
+ pm8953_l3: l3 {
+ regulator-min-microvolt = <925000>;
+ regulator-max-microvolt = <925000>;
+ regulator-allow-set-load;
+ };
+
+ pm8953_l5: l5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ pm8953_l6: l6 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ pm8953_l7: l7 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1900000>;
+ };
+
+ pm8953_l8: l8 {
+ regulator-min-microvolt = <2900000>;
+ regulator-max-microvolt = <2900000>;
+ };
+
+ pm8953_l9: l9 {
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ pm8953_l10: l10 {
+ regulator-min-microvolt = <2850000>;
+ regulator-max-microvolt = <2850000>;
+ };
+
+ pm8953_l11: l11 {
+ regulator-min-microvolt = <2950000>;
+ regulator-max-microvolt = <2950000>;
+ regulator-allow-set-load;
+ regulator-system-load = <200000>;
+ };
+
+ pm8953_l12: l12 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3000000>;
+ };
+
+ pm8953_l13: l13 {
+ regulator-min-microvolt = <3075000>;
+ regulator-max-microvolt = <3125000>;
+ };
+
+ pm8953_l15: l15 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ pm8953_l16: l16 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ pm8953_l17: l17 {
+ regulator-min-microvolt = <2850000>;
+ regulator-max-microvolt = <2850000>;
+ };
+
+ pm8953_l19: l19 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1350000>;
+ };
+
+ pm8953_l22: l22 {
+ regulator-min-microvolt = <2900000>;
+ regulator-max-microvolt = <2900000>;
+ };
+
+ pm8953_l23: l23 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+ };
+};
+
+&sdhc_1 {
+ vmmc-supply = <&pm8953_l8>;
+ vqmmc-supply = <&pm8953_l5>;
+
+ status = "okay";
+};
+
+&sdhc_2 {
+ cd-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_off>;
+ pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
+ pinctrl-names = "default", "sleep";
+
+ vmmc-supply = <&pm8953_l11>;
+ vqmmc-supply = <&pm8953_l12>;
+
+ status = "okay";
+};
+
+&tlmm {
+ gpio-reserved-ranges = <96 4>; /* Fingerprint SPI */
+
+ disp_reset_n_active: disp-reset-n-active-state {
+ pins = "gpio61";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ disp_reset_n_sleep: disp-reset-n-sleep-state {
+ pins = "gpio61";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ fusb302_int_default: fusb302-int-default-state {
+ pins = "gpio9";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ mi2s_sec_act: mi2s-quat-active-state {
+ pins = "gpio135", "gpio136", "gpio137", "gpio138";
+ function = "sec_mi2s";
+ drive-strength = <8>;
+ };
+
+ mi2s_sec_sus: mi2s-quat-sleep-state {
+ pins = "gpio135", "gpio136", "gpio137", "gpio138";
+ function = "sec_mi2s";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ nfc_firm_default: nfc-firm-state {
+ pins = "gpio62";
+ function = "gpio";
+ bias-pull-down;
+ output-low;
+ drive-strength = <2>;
+ };
+
+ nfc_irq_default: nfc-irq-state {
+ pins = "gpio17";
+ function = "gpio";
+ bias-pull-down;
+ drive-strength = <2>;
+ };
+
+ nfc_pwr_default: nfc-pwr-state {
+ pins = "gpio16";
+ function = "gpio";
+ bias-pull-down;
+ output-low;
+ drive-strength = <2>;
+ };
+
+ ts_int_default: ts-int-default-state {
+ pins = "gpio65";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
+ ts_int_sleep: ts-int-sleep-state {
+ pins = "gpio65";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ ts_reset_default: ts-reset-default-state {
+ pins = "gpio64";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
+ ts_reset_sleep: ts-reset-sleep-state {
+ pins = "gpio64";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+};
+
+&usb3 {
+ status = "okay";
+};
+
+&usb_dwc3_hs {
+ remote-endpoint = <&fusb302>;
+};
+
+&wcnss {
+ vddpx-supply = <&pm8953_l5>;
+
+ status = "okay";
+};
+
+&wcnss_iris {
+ compatible = "qcom,wcn3660b";
+
+ vdddig-supply = <&pm8953_l5>;
+ vddpa-supply = <&pm8953_l9>;
+ vddrfa-supply = <&pm8953_l19>;
+ vddxo-supply = <&pm8953_l7>;
+};
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v5 4/7] dt-bindings: arm: qcom: Document LeEco Le2
2026-08-21 12:26 [PATCH v5 0/7] arm64: dts: qcom: Add 3 new devices Adam Skladowski
` (2 preceding siblings ...)
2026-08-21 12:27 ` [PATCH v5 3/7] arm64: dts: qcom: Add Motorola One Adam Skladowski
@ 2026-08-21 12:27 ` Adam Skladowski
2026-08-21 12:27 ` [PATCH v5 5/7] arm64: dts: qcom: Add " Adam Skladowski
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Adam Skladowski @ 2026-08-21 12:27 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kees Cook, Tony Luck, Guilherme G. Piccoli
Cc: linux-arm-msm, devicetree, linux-kernel, linux-hardening,
Adam Skladowski, Krzysztof Kozlowski
Add compatible for LeEco Le2 codename s2 based on Snapdragon 652 SoC.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Adam Skladowski <a39.skl@gmail.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 289a3de1d24b..68542f76df30 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -348,6 +348,7 @@ properties:
- items:
- enum:
+ - leeco,s2
- longcheer,l9360
- const: qcom,msm8976
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v5 5/7] arm64: dts: qcom: Add LeEco Le2
2026-08-21 12:26 [PATCH v5 0/7] arm64: dts: qcom: Add 3 new devices Adam Skladowski
` (3 preceding siblings ...)
2026-08-21 12:27 ` [PATCH v5 4/7] dt-bindings: arm: qcom: Document LeEco Le2 Adam Skladowski
@ 2026-08-21 12:27 ` Adam Skladowski
2026-08-21 12:42 ` sashiko-bot
2026-08-21 12:27 ` [PATCH v5 6/7] dt-bindings: arm: qcom: Document Xiaomi Redmi 9T Adam Skladowski
2026-08-21 12:27 ` [PATCH v5 7/7] arm64: dts: qcom: Add " Adam Skladowski
6 siblings, 1 reply; 10+ messages in thread
From: Adam Skladowski @ 2026-08-21 12:27 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kees Cook, Tony Luck, Guilherme G. Piccoli
Cc: linux-arm-msm, devicetree, linux-kernel, linux-hardening,
Adam Skladowski
Add a devicetree for the LeEco Le2 smartphone, which is based
on the Eldarion/MSM8976 SoC.
Supported functionality as of this initial submission:
* I2C peripherals (Touchscreen,Audio amp, Haptics, Extcon, Led)
* Power Button, Volume Keys
* Regulators (PM8950)
* WLED (PMI8950)
* Remoteprocs (WCNSS)
* GPU
Device tree also contains supply maps to other subsystems like MDSS
but due to missing dependencies like panel those are disabled.
Signed-off-by: Adam Skladowski <a39.skl@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/msm8976-leeco-s2.dts | 442 ++++++++++++++++++++++++++
2 files changed, 443 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 11e953657691..1487f2beff3d 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -128,6 +128,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8953-xiaomi-tissot.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8953-xiaomi-vince.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8956-sony-xperia-loire-kugo.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8956-sony-xperia-loire-suzu.dtb
+dtb-$(CONFIG_ARCH_QCOM) += msm8976-leeco-s2.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8976-longcheer-l9360.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8992-lg-bullhead-rev-10.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8992-lg-bullhead-rev-101.dtb
diff --git a/arch/arm64/boot/dts/qcom/msm8976-leeco-s2.dts b/arch/arm64/boot/dts/qcom/msm8976-leeco-s2.dts
new file mode 100644
index 000000000000..b6c652102ec6
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8976-leeco-s2.dts
@@ -0,0 +1,442 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026 Adam Skladowski <a39skl@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "msm8976.dtsi"
+#include "pm8950.dtsi"
+#include "pm8004.dtsi"
+#include "pmi8950.dtsi"
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/input/ti-drv260x.h>
+
+/ {
+ model = "Leeco Le S2";
+ compatible = "leeco,s2", "qcom,msm8976";
+ chassis-type = "handset";
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&gpio_key_default>;
+ pinctrl-names = "default";
+
+ key-volume-up {
+ label = "Volume Up";
+ gpios = <&tlmm 113 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_VOLUMEUP>;
+ };
+ };
+
+ reserved-memory {
+ /delete-node/ ext-region@85b00000;
+
+ ext_region: memory@84a00000 {
+ reg = <0x0 0x84a00000 0x0 0x1900000>;
+ no-map;
+ };
+ };
+
+ vph_pwr: regulator-vph-pwr {
+ compatible = "regulator-fixed";
+ regulator-name = "vph_pwr";
+ regulator-always-on;
+ regulator-boot-on;
+ };
+};
+
+&adreno_gpu {
+ status = "okay";
+};
+
+&blsp1_i2c4 {
+ status = "okay";
+
+ touchscreen@4b {
+ compatible = "syna,rmi4-i2c";
+ reg = <0x4b>;
+ interrupts-extended = <&tlmm 65 IRQ_TYPE_EDGE_FALLING>;
+
+ pinctrl-0 = <&touch_default_state>;
+ pinctrl-names = "default";
+
+ reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
+
+ vdd-supply = <&pm8950_l17>;
+ vio-supply = <&pm8950_l6>;
+
+ syna,reset-delay-ms = <100>;
+ syna,startup-delay-ms = <500>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ rmi4-f01@1 {
+ reg = <0x01>;
+ syna,nosleep-mode = <1>;
+ };
+
+ rmi4-f12@12 {
+ reg = <0x12>;
+ syna,sensor-type = <1>;
+ syna,clip-x-low = <0>;
+ syna,clip-x-high = <1080>;
+ syna,clip-y-low = <0>;
+ syna,clip-y-high = <1920>;
+ };
+ };
+};
+
+&blsp2_i2c2 {
+ status = "okay";
+
+ haptics: haptics@5a {
+ compatible = "ti,drv2604";
+ reg = <0x5a>;
+ enable-gpios = <&tlmm 109 GPIO_ACTIVE_HIGH>;
+ mode = <DRV260X_LRA_MODE>;
+ library-sel = <DRV260X_LIB_LRA>;
+ };
+
+ tiusb320: typec@47 {
+ compatible = "ti,tusb320";
+ reg = <0x47>;
+ interrupts-extended = <&tlmm 21 IRQ_TYPE_EDGE_RISING>;
+
+ pinctrl-0 = <&tusb320_int_active>;
+ pinctrl-names = "default";
+ };
+};
+
+&blsp2_i2c4 {
+ status = "okay";
+
+ led-controller@45 {
+ compatible = "awinic,aw2013";
+ reg = <0x45>;
+ vcc-supply = <&pm8950_l10>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led@0 {
+ reg = <0>;
+ led-max-microamp = <5000>;
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led@1 {
+ reg = <1>;
+ led-max-microamp = <5000>;
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+
+ led@2 {
+ reg = <2>;
+ led-max-microamp = <5000>;
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_BLUE>;
+ };
+ };
+
+ speaker_codec: audio-codec@34 {
+ compatible = "nxp,tfa9890";
+ reg = <0x34>;
+ vddd-supply = <&pm8950_l5>;
+ sound-name-prefix = "Speaker";
+ #sound-dai-cells = <0>;
+ };
+};
+
+&gcc {
+ vdd_gfx-supply = <&pm8004_s5>;
+};
+
+&mdss_dsi0 {
+ vdd-supply = <&pm8950_l17>;
+ vdda-supply = <&pm8950_l1>;
+ vddio-supply = <&pm8950_l6>;
+};
+
+&mdss_dsi0_out {
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ vddio-supply = <&pm8950_l6>;
+};
+
+&otg {
+ extcon = <&tiusb320>;
+};
+
+&pm8004_lsid5 {
+ status = "okay";
+};
+
+&pm8004_spmi_regulators {
+ vdd_s2-supply = <&vph_pwr>;
+ vdd_s5-supply = <&vph_pwr>;
+
+ status = "okay";
+
+ /* Cluster 1 supply */
+ pm8004_s2: s2 {
+ regulator-name = "VDD_APC1";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <1165000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ pm8004_s5: s5 {
+ regulator-name = "VDD_GFX";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <1165000>;
+ regulator-enable-ramp-delay = <500>;
+ regulator-always-on;
+ };
+};
+
+&pm8950_spmi_regulators {
+ vdd_s5-supply = <&vph_pwr>;
+
+ /* Cluster 0 supply */
+ pm8950_spmi_s5: s5 {
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <1165000>;
+ regulator-name = "VDD_APC0";
+ regulator-always-on;
+ regulator-boot-on;
+ };
+};
+
+&pm8950_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&pmi8950_wled {
+ qcom,current-limit-microamp = <20000>;
+ qcom,enabled-strings = <0 1>;
+ qcom,ovp-millivolt = <29500>;
+};
+
+&rpm_requests {
+ regulators {
+ compatible = "qcom,rpm-pm8950-regulators";
+
+ vdd_s1-supply = <&vph_pwr>;
+ vdd_s2-supply = <&vph_pwr>;
+ vdd_s3-supply = <&vph_pwr>;
+ vdd_s4-supply = <&vph_pwr>;
+ vdd_s6-supply = <&vph_pwr>;
+ vdd_l1_l19-supply = <&pm8950_s3>;
+ vdd_l2_l23-supply = <&pm8950_s3>;
+ vdd_l3-supply = <&pm8950_s3>;
+ vdd_l5_l6_l7_l16-supply = <&pm8950_s4>;
+ vdd_l8_l11_l12_l17_l22-supply = <&vph_pwr>;
+ vdd_l9_l10_l13_l14_l15_l18-supply = <&vph_pwr>;
+
+ pm8950_s3: s3 {
+ regulator-min-microvolt = <1325000>;
+ regulator-max-microvolt = <1325000>;
+ };
+
+ pm8950_s4: s4 {
+ regulator-min-microvolt = <2050000>;
+ regulator-max-microvolt = <2050000>;
+ };
+
+ pm8950_l1: l1 {
+ regulator-min-microvolt = <1100000>;
+ regulator-max-microvolt = <1300000>;
+ };
+
+ pm8950_l2: l2 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+
+ pm8950_l3: l3 {
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1100000>;
+ };
+
+ pm8950_l5: l5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ pm8950_l6: l6 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ pm8950_l7: l7 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1900000>;
+ };
+
+ pm8950_l8: l8 {
+ regulator-min-microvolt = <2900000>;
+ regulator-max-microvolt = <2900000>;
+ };
+
+ pm8950_l9: l9 {
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ pm8950_l10: l10 {
+ regulator-min-microvolt = <2850000>;
+ regulator-max-microvolt = <2850000>;
+ };
+
+ pm8950_l11: l11 {
+ /* TUSB320 power supply */
+ regulator-always-on;
+ regulator-min-microvolt = <2950000>;
+ regulator-max-microvolt = <2950000>;
+ };
+
+ pm8950_l12: l12 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2950000>;
+ };
+
+ pm8950_l13: l13 {
+ regulator-min-microvolt = <3075000>;
+ regulator-max-microvolt = <3075000>;
+ };
+
+ pm8950_l14: l14 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ pm8950_l15: l15 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ pm8950_l16: l16 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ pm8950_l17: l17 {
+ regulator-min-microvolt = <2500000>;
+ regulator-max-microvolt = <2900000>;
+ };
+
+ pm8950_l19: l19 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1350000>;
+ };
+
+ pm8950_l22: l22 {
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+
+ pm8950_l23: l23 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+ };
+};
+
+&sdhc_1 {
+ vmmc-supply = <&pm8950_l8>;
+ vqmmc-supply = <&pm8950_l5>;
+
+ status = "okay";
+};
+
+&tlmm {
+ gpio-reserved-ranges = <0 4>, /* Unknown */
+ <8 4>; /* Fingerprint SPI */
+
+ disp_reset_n_active: disp-reset-n-active-state {
+ pins = "gpio25";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ disp_reset_n_sleep: disp-reset-n-sleep-state {
+ pins = "gpio25";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ disp_te_default: disp-te-default-state {
+ pins = "gpio24";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ gpio_key_default: gpio-key-default-state {
+ pins = "gpio113";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ touch_default_state: touch-default-state {
+ irq-pins {
+ pins = "gpio65";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
+ reset-pins {
+ pins = "gpio64";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+ };
+
+ tusb320_int_active: tusb320-int-active-state {
+ pins = "gpio21";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+};
+
+&wcnss {
+ vddpx-supply = <&pm8950_l5>;
+
+ status = "okay";
+};
+
+&wcnss_iris {
+ compatible = "qcom,wcn3680";
+
+ vddxo-supply = <&pm8950_l7>;
+ vddrfa-supply = <&pm8950_l19>;
+ vddpa-supply = <&pm8950_l9>;
+ vdddig-supply = <&pm8950_l5>;
+};
+
+&xo_board {
+ clock-frequency = <19200000>;
+};
+
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v5 5/7] arm64: dts: qcom: Add LeEco Le2
2026-08-21 12:27 ` [PATCH v5 5/7] arm64: dts: qcom: Add " Adam Skladowski
@ 2026-08-21 12:42 ` sashiko-bot
0 siblings, 0 replies; 10+ messages in thread
From: sashiko-bot @ 2026-08-21 12:42 UTC (permalink / raw)
To: Adam Skladowski; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] TUSB320 Type-C controller interrupt is incorrectly configured with a rising edge trigger, causing missed events.
- [Medium] Incorrect touchscreen reset GPIO polarity prevents touchscreen initialization.
- [Medium] WLED node is not enabled, contradicting the commit message claims.
--
--- Patch [5]: [PATCH v5 5/7] arm64: dts: qcom: Add LeEco Le2 ---
commit bf1cb1abb3fe575b45f1473fbbd547b3fb860088
Author: Adam Skladowski <a39.skl@gmail.com>
arm64: dts: qcom: Add LeEco Le2
Add a devicetree for the LeEco Le2 smartphone, which is based
on the Eldarion/MSM8976 SoC. This adds support for I2C peripherals,
regulators, WLED, remoteprocs, and GPU.
> diff --git a/arch/arm64/boot/dts/qcom/msm8976-leeco-s2.dts b/arch/arm64/boot/dts/qcom/msm8976-leeco-s2.dts
> new file mode 100644
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/msm8976-leeco-s2.dts
[ ... ]
> +&blsp1_i2c4 {
> + status = "okay";
> +
> + touchscreen@4b {
> + compatible = "syna,rmi4-i2c";
> + reg = <0x4b>;
> + interrupts-extended = <&tlmm 65 IRQ_TYPE_EDGE_FALLING>;
> +
> + pinctrl-0 = <&touch_default_state>;
> + pinctrl-names = "default";
> +
> + reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
[Severity: Medium]
Is this GPIO polarity correct for the Synaptics RMI4 controller? The hardware
typically uses an active-low reset.
If configured as active-high, the driver will drive the line low during normal
operation, which might hold the touchscreen controller in a perpetual reset
state and prevent initialization.
> +
> + vdd-supply = <&pm8950_l17>;
> + vio-supply = <&pm8950_l6>;
[ ... ]
> +&blsp2_i2c2 {
> + status = "okay";
> +
> + haptics: haptics@5a {
> + compatible = "ti,drv2604";
> + reg = <0x5a>;
> + enable-gpios = <&tlmm 109 GPIO_ACTIVE_HIGH>;
> + mode = <DRV260X_LRA_MODE>;
> + library-sel = <DRV260X_LIB_LRA>;
> + };
> +
> + tiusb320: typec@47 {
> + compatible = "ti,tusb320";
> + reg = <0x47>;
> + interrupts-extended = <&tlmm 21 IRQ_TYPE_EDGE_RISING>;
[Severity: High]
Will this rising edge trigger work for the TUSB320 hardware?
The TUSB320 uses an open-drain, active-low INT_N signal that is pulled low
when an event occurs and remains low until serviced.
If configured as a rising edge, the interrupt handler might not run when the
signal is asserted. This could prevent the interrupt status from being read,
which would mean the chip never releases the line, deadlocking the interrupt
mechanism and missing attach/detach events.
> +
> + pinctrl-0 = <&tusb320_int_active>;
> + pinctrl-names = "default";
> + };
> +};
[ ... ]
> +&pm8950_resin {
> + linux,code = <KEY_VOLUMEDOWN>;
> +
> + status = "okay";
> +};
> +
> +&pmi8950_wled {
> + qcom,current-limit-microamp = <20000>;
> + qcom,enabled-strings = <0 1>;
> + qcom,ovp-millivolt = <29500>;
> +};
[Severity: Medium]
Does this node need a status = "okay"; property added here?
The commit message mentions WLED support is included in this initial
submission, but the pmi8950_wled node is usually defined as disabled in the
base pmi8950.dtsi file. Without an explicit okay status, this hardware
functionality might remain disabled.
> +
> +&rpm_requests {
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260821-next-patches-v5-0-ec81cee63e09@gmail.com?part=5
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v5 6/7] dt-bindings: arm: qcom: Document Xiaomi Redmi 9T
2026-08-21 12:26 [PATCH v5 0/7] arm64: dts: qcom: Add 3 new devices Adam Skladowski
` (4 preceding siblings ...)
2026-08-21 12:27 ` [PATCH v5 5/7] arm64: dts: qcom: Add " Adam Skladowski
@ 2026-08-21 12:27 ` Adam Skladowski
2026-08-21 12:27 ` [PATCH v5 7/7] arm64: dts: qcom: Add " Adam Skladowski
6 siblings, 0 replies; 10+ messages in thread
From: Adam Skladowski @ 2026-08-21 12:27 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kees Cook, Tony Luck, Guilherme G. Piccoli
Cc: linux-arm-msm, devicetree, linux-kernel, linux-hardening,
Adam Skladowski, Krzysztof Kozlowski
Add compatible for Xiaomi Redmi 9T NFC codename lemon which is one
of variants of Xiaomi Citrus lineup based on Snapdragon 662 SoC.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Adam Skladowski <a39.skl@gmail.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 68542f76df30..5363efadd4ee 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1035,6 +1035,7 @@ properties:
- items:
- enum:
- fxtec,pro1x
+ - xiaomi,lemon
- const: qcom,sm6115
- items:
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v5 7/7] arm64: dts: qcom: Add Xiaomi Redmi 9T
2026-08-21 12:26 [PATCH v5 0/7] arm64: dts: qcom: Add 3 new devices Adam Skladowski
` (5 preceding siblings ...)
2026-08-21 12:27 ` [PATCH v5 6/7] dt-bindings: arm: qcom: Document Xiaomi Redmi 9T Adam Skladowski
@ 2026-08-21 12:27 ` Adam Skladowski
2026-08-21 12:38 ` sashiko-bot
6 siblings, 1 reply; 10+ messages in thread
From: Adam Skladowski @ 2026-08-21 12:27 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kees Cook, Tony Luck, Guilherme G. Piccoli
Cc: linux-arm-msm, devicetree, linux-kernel, linux-hardening,
Adam Skladowski, Konrad Dybcio
Add a devicetree for the Xiaomi Redmi 9T smartphone, which is based
on the Bengal/SM6115 SoC.
Supported functionality as of this initial submission:
* Display via SimpleFB/SimpleDRM
* GPU
* I2C peripherals (Backlight)
* Power Button, Volume Keys
* Regulators
* Remoteprocs (ADSP, CDSP, MPSS)
* UFS/SDCARD
* USB
Device tree also contains supply maps to other subsystems like MDSS
but due to missing dependencies like panel those are disabled.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Adam Skladowski <a39.skl@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/sm6115-xiaomi-lemon.dts | 497 +++++++++++++++++++++++
2 files changed, 498 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 1487f2beff3d..34789de13552 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -344,6 +344,7 @@ dtb-$(CONFIG_ARCH_QCOM) += shikra-iqs-evk.dtb
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) += 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-xiaomi-lemon.dts b/arch/arm64/boot/dts/qcom/sm6115-xiaomi-lemon.dts
new file mode 100644
index 000000000000..881e05b70116
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm6115-xiaomi-lemon.dts
@@ -0,0 +1,497 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2026 Adam Skladowski <a39skl@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "sm6115.dtsi"
+#include "pm6125.dtsi"
+#include "pmi632.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/delete-node/ &pil_adsp_mem;
+/delete-node/ &pil_gpu_mem;
+/delete-node/ &pil_ipa_fw_mem;
+/delete-node/ &pil_ipa_gsi_mem;
+
+/ {
+ model = "Xiaomi Redmi 9T";
+ compatible = "xiaomi,lemon", "qcom,sm6115";
+ chassis-type = "handset";
+
+ aliases {
+ mmc0 = &sdhc_2;
+ };
+
+ chosen {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ framebuffer0: framebuffer@5c000000 {
+ compatible = "simple-framebuffer";
+ reg = <0 0x5c000000 0 (2340 * 1080 * 4)>;
+ width = <1080>;
+ height = <2340>;
+ stride = <(1080 * 4)>;
+ format = "a8r8g8b8";
+ clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
+ };
+ };
+
+ backlight_dsi: backlight-dsi {
+ compatible = "led-backlight";
+ leds = <&led_backlight>;
+ brightness-levels = <255>;
+ default-brightness-level = <190>;
+ /* Backlight controllers can differ between panel variants */
+ status = "disabled";
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&vol_up_n>;
+ pinctrl-names = "default";
+
+ 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 {
+ pil_adsp_mem: memory@53400000 {
+ reg = <0x0 0x53400000 0x0 0x2600000>;
+ no-map;
+ };
+
+ pil_ipa_fw_mem: memory@55a00000 {
+ reg = <0x0 0x55a00000 0x0 0x10000>;
+ no-map;
+ };
+
+ pil_ipa_gsi_mem: memory@55a10000 {
+ reg = <0x0 0x55a10000 0x0 0x5000>;
+ no-map;
+ };
+
+ pil_gpu_mem: memory@fa400000 {
+ reg = <0x0 0xfa400000 0x0 0x2000>;
+ no-map;
+ };
+
+ ramoops: ramoops@64000000 {
+ compatible = "ramoops";
+ no-map;
+ reg = <0x0 0x64000000 0x0 0x400000>;
+ record-size = <0x100000>;
+ console-size = <0x100000>;
+ pmsg-size = <0x200000>;
+ ecc-size = <16>;
+ };
+ };
+
+ 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;
+ };
+};
+
+&dispcc {
+ /* Prevent simplefb from dying until we wire panel driver */
+ status = "disabled";
+};
+
+&gpi_dma0 {
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+};
+
+&i2c1 {
+ status = "okay";
+
+ lm36923_bl: led-controller@36 {
+ compatible = "ti,lm36923";
+ reg = <0x36>;
+
+ pinctrl-0 = <&lm3692x_bl_active>;
+ pinctrl-names = "default";
+
+ enable-gpios = <&tlmm 99 GPIO_ACTIVE_HIGH>;
+ ti,ovp-microvolt = <29000000>;
+ /* Backlight controllers can differ between panel variants */
+ status = "disabled";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led_backlight: led@0 {
+ reg = <0>;
+ function = LED_FUNCTION_BACKLIGHT;
+ color = <LED_COLOR_ID_WHITE>;
+ label = ":backlight";
+ linux,default-trigger = "backlight";
+ led-max-microamp = <25000>;
+ };
+ };
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&pm6125_l18>;
+};
+
+&mdss_dsi0_out {
+ data-lanes = <0 1 2 3>;
+};
+
+&pil_cdsp_mem {
+ reg = <0x0 0x51a00000 0x0 0xa00000>;
+};
+
+&pm6125_gpios {
+ vol_up_n: vol-up-n-state {
+ pins = "gpio5";
+ function = "normal";
+ power-source = <0>;
+ bias-pull-up;
+ input-enable;
+ };
+};
+
+&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>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ pmi632_ss_in: endpoint {
+ remote-endpoint = <&usb_qmpphy_out>;
+ };
+ };
+ };
+ };
+};
+
+&pmi632_vbus {
+ regulator-min-microamp = <500000>;
+ regulator-max-microamp = <1000000>;
+
+ status = "okay";
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ status = "okay";
+};
+
+&remoteproc_mpss {
+ status = "okay";
+};
+
+&rpm_requests {
+ regulators-0 {
+ compatible = "qcom,rpm-pm6125-regulators";
+
+ pm6125_s6: s6 {
+ regulator-min-microvolt = <304000>;
+ regulator-max-microvolt = <1456000>;
+ };
+
+ pm6125_s7: s7 {
+ regulator-min-microvolt = <1280000>;
+ regulator-max-microvolt = <2080000>;
+ };
+
+ pm6125_s8: s8 {
+ regulator-min-microvolt = <1064000>;
+ regulator-max-microvolt = <1304000>;
+ };
+
+ pm6125_l1: l1 {
+ regulator-min-microvolt = <952000>;
+ regulator-max-microvolt = <1152000>;
+ };
+
+ pm6125_l4: l4 {
+ regulator-min-microvolt = <488000>;
+ regulator-max-microvolt = <1000000>;
+ };
+
+ pm6125_l5: l5 {
+ regulator-min-microvolt = <1648000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-allow-set-load;
+
+ regulator-always-on;
+ };
+
+ pm6125_l6: l6 {
+ regulator-min-microvolt = <576000>;
+ regulator-max-microvolt = <656000>;
+ };
+
+ pm6125_l7: l7 {
+ /* sdhci2 vdd-io-bias supply */
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1256000>;
+
+ regulator-always-on;
+ };
+
+ pm6125_l8: l8 {
+ regulator-min-microvolt = <400000>;
+ regulator-max-microvolt = <728000>;
+ };
+
+ pm6125_l9: l9 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2000000>;
+ };
+
+ pm6125_l10: l10 {
+ regulator-min-microvolt = <1704000>;
+ regulator-max-microvolt = <1904000>;
+ };
+
+ pm6125_l11: l11 {
+ regulator-min-microvolt = <1768000>;
+ regulator-max-microvolt = <1952000>;
+ };
+
+ pm6125_l12: l12 {
+ regulator-min-microvolt = <1624000>;
+ regulator-max-microvolt = <1984000>;
+ };
+
+ pm6125_l13: l13 {
+ regulator-min-microvolt = <1504000>;
+ regulator-max-microvolt = <1952000>;
+ };
+
+ pm6125_l14: l14 {
+ regulator-min-microvolt = <1704000>;
+ regulator-max-microvolt = <1904000>;
+ };
+
+ pm6125_l15: l15 {
+ regulator-min-microvolt = <2920000>;
+ regulator-max-microvolt = <3232000>;
+ };
+
+ pm6125_l16: l16 {
+ regulator-min-microvolt = <1704000>;
+ regulator-max-microvolt = <1904000>;
+ };
+
+ pm6125_l17: l17 {
+ regulator-min-microvolt = <1152000>;
+ regulator-max-microvolt = <1384000>;
+ };
+
+ pm6125_l18: l18 {
+ regulator-min-microvolt = <1232000>;
+ regulator-max-microvolt = <1232000>;
+ };
+
+ pm6125_l19: l19 {
+ regulator-min-microvolt = <1624000>;
+ regulator-max-microvolt = <3304000>;
+ };
+
+ pm6125_l20: l20 {
+ regulator-min-microvolt = <1624000>;
+ regulator-max-microvolt = <3304000>;
+ };
+
+ pm6125_l21: l21 {
+ regulator-min-microvolt = <2400000>;
+ regulator-max-microvolt = <3600000>;
+ };
+
+ pm6125_l22: l22 {
+ regulator-min-microvolt = <2952000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-allow-set-load;
+
+ regulator-always-on;
+ };
+
+ pm6125_l23: l23 {
+ regulator-min-microvolt = <3200000>;
+ regulator-max-microvolt = <3400000>;
+ };
+
+ pm6125_l24: l24 {
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <3600000>;
+ };
+ };
+};
+
+&sdhc_2 {
+ cd-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&sdc2_state_on>, <&sdc2_cd_on>;
+ pinctrl-1 = <&sdc2_state_off>, <&sdc2_cd_off>;
+ pinctrl-names = "default", "sleep";
+
+ vmmc-supply = <&pm6125_l22>;
+ vqmmc-supply = <&pm6125_l5>;
+ /* No binding for vdd-io-bias on L7*/
+ no-sdio;
+ no-mmc;
+
+ status = "okay";
+};
+
+&sleep_clk {
+ clock-frequency = <32764>;
+};
+
+&spi2 {
+ status = "okay";
+};
+
+&tlmm {
+ gpio-reserved-ranges = <14 4>; /* Fingerprint SPI */
+
+ lm3692x_bl_active: lm3692x-active-state {
+ pins = "gpio99";
+ function = "gpio";
+ drive-strength = <0x02>;
+ bias-pull-up;
+ };
+
+ mdss_dsi_active: mdss-dsi-active-state {
+ pins = "gpio85";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ sdc2_cd_on: sdc2-cd-on-state {
+ pins = "gpio88";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ sdc2_cd_off: sdc2-cd-off-state {
+ pins = "gpio88";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ te_active: te-active-state {
+ pins = "gpio81";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+};
+
+&ufs_mem_hc {
+ vcc-max-microamp = <600000>;
+ vcc-supply = <&pm6125_l24>;
+ vccq2-max-microamp = <600000>;
+ vccq2-supply = <&pm6125_l11>;
+ vdd-hba-supply = <&pm6125_l18>;
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&pm6125_l4>;
+ vdda-pll-supply = <&pm6125_l12>;
+
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+};
+
+&usb_dwc3 {
+ maximum-speed = "high-speed";
+};
+
+&usb_dwc3_hs {
+ remote-endpoint = <&pmi632_hs_in>;
+};
+
+&usb_hsphy {
+ vdd-supply = <&pm6125_l4>;
+ vdda-pll-supply = <&pm6125_l12>;
+ vdda-phy-dpdm-supply = <&pm6125_l15>;
+
+ status = "okay";
+};
+
+&usb_qmpphy {
+ vdda-phy-supply = <&pm6125_l4>;
+ vdda-pll-supply = <&pm6125_l12>;
+
+ status = "okay";
+};
+
+&usb_qmpphy_out {
+ remote-endpoint = <&pmi632_ss_in>;
+};
+
+&xo_board {
+ clock-frequency = <19200000>;
+};
--
2.55.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v5 7/7] arm64: dts: qcom: Add Xiaomi Redmi 9T
2026-08-21 12:27 ` [PATCH v5 7/7] arm64: dts: qcom: Add " Adam Skladowski
@ 2026-08-21 12:38 ` sashiko-bot
0 siblings, 0 replies; 10+ messages in thread
From: sashiko-bot @ 2026-08-21 12:38 UTC (permalink / raw)
To: Adam Skladowski; +Cc: robh, devicetree, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Device Tree Misconfiguration: Invalid `brightness-levels` array in `led-backlight` node.
--
--- Patch [7]: [PATCH v5 7/7] arm64: dts: qcom: Add Xiaomi Redmi 9T ---
commit b28de55d5a8b36d66c2c9a970672b92796d38f43
Author: Adam Skladowski <a39.skl@gmail.com>
arm64: dts: qcom: Add Xiaomi Redmi 9T
This commit adds a new devicetree for the Xiaomi Redmi 9T smartphone based
on the Qualcomm SM6115 SoC. It enables foundational hardware support
including simple framebuffer, GPU, regulators, and USB, while leaving
display-dependent nodes disabled for now.
> diff --git a/arch/arm64/boot/dts/qcom/sm6115-xiaomi-lemon.dts b/arch/arm64/boot/dts/qcom/sm6115-xiaomi-lemon.dts
> new file mode 100644
> index 0000000000000..881e05b70116b
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm6115-xiaomi-lemon.dts
[ ... ]
> + backlight_dsi: backlight-dsi {
> + compatible = "led-backlight";
> + leds = <&led_backlight>;
> + brightness-levels = <255>;
[Severity: Low]
Is this single-element brightness-levels array intentional?
If the backlight_dsi node is later enabled by a panel variant, the
led-backlight driver will parse this property via led_bl_parse_levels().
Since it expects multiple levels, providing only one element causes the driver
to print a "Not enough levels defined" warning, ignore the property, and fall
back to native scaling.
Could this property be removed, or populated with the full array of expected
brightness levels?
> + default-brightness-level = <190>;
> + /* Backlight controllers can differ between panel variants */
> + status = "disabled";
> + };
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260821-next-patches-v5-0-ec81cee63e09@gmail.com?part=7
^ permalink raw reply [flat|nested] 10+ messages in thread