* [PATCH v4 0/2] Add Xiaomi 12 Lite 5G (taoyao) device tree
@ 2026-03-05 9:39 Stanislav Zaikin
2026-03-05 9:39 ` [PATCH v4 1/2] dt-bindings: arm: qcom: Add SM7325 Xiaomi 12 Lite 5G (taoyao) Stanislav Zaikin
2026-03-05 9:39 ` [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS Stanislav Zaikin
0 siblings, 2 replies; 12+ messages in thread
From: Stanislav Zaikin @ 2026-03-05 9:39 UTC (permalink / raw)
To: devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel, Stanislav Zaikin
This series adds device tree support for the Xiaomi 12 Lite 5G (taoyao),
based on the Qualcomm SM7325 SoC.
The display panel model is unknown, so bootloader-initialized
simple-framebuffer is therefore used to expose the display.
Changes in v4:
- Patch no. 1 - no changes
- Removed Konrad's R-b tag, please take a look again (patch no. 2)
- Fixed vreg_s2b_0p7 regulator name to spmb2 (patch no. 2)
- Switched bluetooth to wcn6750-pmu (patch no. 2)
- Dropped qcom,local-bd-address-broken as it has no effect (patch no. 2)
- Added wifi calibration variant "Xiaomi_taoyao" (also sent board-2.bin
files to ath11k) (patch no. 2)
- Link to v3:
https://lore.kernel.org/all/20260224114424.1966947-1-zstaseg@gmail.com/
Changes in v3:
- Patch no. 1 - no changes
- Drop unit address for framebuffer node (patch no. 2)
- Add Konrad's R-b tag (patch no. 2)
- Link to v2:
https://lore.kernel.org/all/20260216120715.3432191-1-zstaseg@gmail.com/
Changes in v2:
- Add Rob's A-b tag (patch no. 1)
- Add explicit framebuffer_reserved label (patch no. 2)
- Use memory-region for simple-framebuffer (patch no. 2)
- Fix reserved-memory naming: make node names consistent with labels
and intended subsystem (CVP/camera/video) (patch no. 2)
- Convert mem-type value from <0x02> to <2> (patch no. 2)
- Fix s2b regulator comment style (patch no. 2)
- Remove unused gpio-reserved-ranges entry (<32 2>) (patch no. 2)
- Link to v1:
https://lore.kernel.org/all/20260204115645.1343750-1-zstaseg@gmail.com/
Stanislav Zaikin (2):
dt-bindings: arm: qcom: Add SM7325 Xiaomi 12 Lite 5G (taoyao)
arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
.../devicetree/bindings/arm/qcom.yaml | 1 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/sm7325-xiaomi-taoyao.dts | 907 ++++++++++++++++++
3 files changed, 909 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm7325-xiaomi-taoyao.dts
--
2.51.0
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v4 1/2] dt-bindings: arm: qcom: Add SM7325 Xiaomi 12 Lite 5G (taoyao)
2026-03-05 9:39 [PATCH v4 0/2] Add Xiaomi 12 Lite 5G (taoyao) device tree Stanislav Zaikin
@ 2026-03-05 9:39 ` Stanislav Zaikin
2026-03-05 9:39 ` [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS Stanislav Zaikin
1 sibling, 0 replies; 12+ messages in thread
From: Stanislav Zaikin @ 2026-03-05 9:39 UTC (permalink / raw)
To: devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel, Stanislav Zaikin
Xiaomi 12 Lite 5G (xiaomi,taoyao) is a smartphone based on the SM7325
SoC.
Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
---
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 d84bd3bca201..711cf3bba6e8 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -982,6 +982,7 @@ properties:
- items:
- enum:
- nothing,spacewar
+ - xiaomi,taoyao
- const: qcom,sm7325
- items:
--
2.51.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
2026-03-05 9:39 [PATCH v4 0/2] Add Xiaomi 12 Lite 5G (taoyao) device tree Stanislav Zaikin
2026-03-05 9:39 ` [PATCH v4 1/2] dt-bindings: arm: qcom: Add SM7325 Xiaomi 12 Lite 5G (taoyao) Stanislav Zaikin
@ 2026-03-05 9:39 ` Stanislav Zaikin
2026-03-05 10:27 ` Konrad Dybcio
` (2 more replies)
1 sibling, 3 replies; 12+ messages in thread
From: Stanislav Zaikin @ 2026-03-05 9:39 UTC (permalink / raw)
To: devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel, Stanislav Zaikin
Xiaomi 12 Lite 5G is a handset released in 2022
This commit has the following features working:
- Display (with simple fb)
- Touchscreen
- UFS
- Power and volume buttons
- Pinctrl
- RPM Regulators
- Remoteprocs - wifi, bluetooth
- USB (Device Mode)
Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/sm7325-xiaomi-taoyao.dts | 907 ++++++++++++++++++
2 files changed, 908 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm7325-xiaomi-taoyao.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f34d5ed331c..61618da3f68c 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -280,6 +280,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm7125-xiaomi-curtana.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm7125-xiaomi-joyeuse.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm7225-fairphone-fp4.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm7325-nothing-spacewar.dtb
+dtb-$(CONFIG_ARCH_QCOM) += sm7325-xiaomi-taoyao.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8150-hdk.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8150-microsoft-surface-duo.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8150-mtp.dtb
diff --git a/arch/arm64/boot/dts/qcom/sm7325-xiaomi-taoyao.dts b/arch/arm64/boot/dts/qcom/sm7325-xiaomi-taoyao.dts
new file mode 100644
index 000000000000..ee3512649e3f
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm7325-xiaomi-taoyao.dts
@@ -0,0 +1,907 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (c) 2025, Stanislav Zaikin <zstaseg@gmail.com>
+ */
+
+/dts-v1/;
+
+/* PM7250B is configured to use SID8/9 */
+#define PM7250B_SID 8
+#define PM7250B_SID1 9
+
+#include <dt-bindings/arm/qcom,ids.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/sound/qcom,q6afe.h>
+#include <dt-bindings/sound/qcom,q6asm.h>
+
+#include "sm7325.dtsi"
+#include "pm7325.dtsi"
+#include "pm7250b.dtsi" /* PM7250B */
+#include "pm8350c.dtsi" /* PM7350C */
+#include "pmk8350.dtsi" /* PMK7325 */
+
+/* The following reserved memory regions have different addresses or sizes */
+/delete-node/ &adsp_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &rmtfs_mem;
+
+/ {
+ model = "Xiaomi 12 Lite 5G";
+ compatible = "xiaomi,taoyao", "qcom,sm7325";
+ chassis-type = "handset";
+
+ aliases {
+ serial0 = &uart5;
+ serial1 = &uart7;
+ };
+
+ chosen {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ framebuffer0: framebuffer {
+ compatible = "simple-framebuffer";
+ memory-region = <&framebuffer_reserved>;
+ width = <1080>;
+ height = <2400>;
+ stride = <(1080 * 4)>;
+ format = "a8r8g8b8";
+
+ clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
+ };
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&key_vol_up>;
+ pinctrl-names = "default";
+
+ key-volume-up {
+ label = "Volume Up";
+ gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_VOLUMEUP>;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,sm7325-pmic-glink",
+ "qcom,qcm6490-pmic-glink",
+ "qcom,pmic-glink";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>;
+
+ connector@0 {
+ compatible = "usb-c-connector";
+ reg = <0>;
+ power-role = "dual";
+ data-role = "dual";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ pmic_glink_hs_in: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_sbu: endpoint {
+ remote-endpoint = <&fsa4480_sbu_mux>;
+ };
+ };
+ };
+ };
+ };
+
+ vreg_oled_dvdd: regulator-oled-dvdd {
+ compatible = "regulator-fixed";
+ regulator-name = "oled_dvdd";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ gpio = <&tlmm 46 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ vin-supply = <&vreg_s1b_1p856>;
+ regulator-boot-on;
+ };
+
+ /* S2B is really ebi.lvl but it's there for supply map completeness sake. */
+ vreg_s2b_0p7: regulator-smpb2 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_s2b_0p7";
+
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <700000>;
+ regulator-always-on;
+ vin-supply = <&vph_pwr>;
+ };
+
+ vph_pwr: regulator-vph-pwr {
+ compatible = "regulator-fixed";
+ regulator-name = "vph_pwr";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+ };
+
+ reserved-memory {
+ cdsp_secure_heap_mem: cdsp-secure-heap@81800000 {
+ reg = <0x0 0x81800000 0x0 0x1e00000>;
+ no-map;
+ };
+
+ cvp_mem: cvp@86200000 {
+ reg = <0x0 0x86200000 0x0 0x500000>;
+ no-map;
+ };
+
+ adsp_mem: adsp@86700000 {
+ reg = <0x0 0x86700000 0x0 0x4000000>;
+ no-map;
+ };
+
+ camera_mem: camera@8ad00000 {
+ reg = <0x0 0x8ad00000 0x0 0x500000>;
+ no-map;
+ };
+
+ ipa_gsi_mem: ipa-gsi@8b710000 {
+ reg = <0x0 0x8b710000 0x0 0xa000>;
+ no-map;
+ };
+
+ cdsp_mem: cdsp@9c700000 {
+ reg = <0x0 0x9c700000 0x0 0x1e00000>;
+ no-map;
+ };
+
+ ramoops@a9000000 {
+ compatible = "ramoops";
+ reg = <0x0 0xa9000000 0x0 0x200000>;
+ pmsg-size = <0x200000>;
+ mem-type = <2>;
+ };
+
+ removed_mem: removed@c0000000 {
+ reg = <0x0 0xc0000000 0x0 0x6800000>;
+ no-map;
+ };
+
+ pil_trustedvm_mem: pil-trustedvm-region@d0800000 {
+ reg = <0x0 0xd0800000 0x0 0x76f7000>;
+ no-map;
+ };
+
+ qrtr_shmem: qrtr-shmem@d7ef7000 {
+ reg = <0x0 0xd7ef7000 0x0 0x9000>;
+ no-map;
+ };
+
+ neuron_block_0_mem: neuron-block@d7f00000 {
+ reg = <0x0 0xd7f00000 0x0 0x80000>;
+ no-map;
+ };
+
+ neuron_block_1_mem: neuron-block@d7f80000 {
+ reg = <0x0 0xd7f80000 0x0 0x80000>;
+ no-map;
+ };
+
+ framebuffer_reserved: framebuffer@e1000000 {
+ reg = <0x0 0xe1000000 0x0 (1080 * 2400 * 4)>;
+ no-map;
+ };
+
+ rmtfs_mem: rmtfs@ef500000 {
+ compatible = "qcom,rmtfs-mem";
+ reg = <0x0 0xe7d00000 0x0 0x280000>;
+ no-map;
+
+ qcom,client-id = <1>;
+ qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>,
+ <QCOM_SCM_VMID_NAV>;
+ };
+ };
+
+ wcn6750-pmu {
+ compatible = "qcom,wcn6750-pmu";
+ pinctrl-0 = <&hst_bt_en>,
+ <&hst_sw_ctrl>;
+ pinctrl-names = "default";
+ vddio-supply = <&vreg_l19b_1p8>;
+ vddaon-supply = <&vreg_s7b_0p952>;
+ vddasd-supply = <&vreg_l11c_2p8>;
+ vddpmu-supply = <&vreg_s7b_0p952>;
+ vddrfa0p8-supply = <&vreg_s7b_0p952>;
+ vddrfa1p2-supply = <&vreg_s8b_1p256>;
+ vddrfa1p7-supply = <&vreg_s1b_1p856>;
+ vddrfa2p2-supply = <&vreg_s1c_2p2>;
+
+ bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
+ swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
+
+ regulators {
+ vreg_pmu_rfa_cmn: ldo0 {
+ regulator-name = "vreg_pmu_rfa_cmn";
+ };
+
+ vreg_pmu_aon_0p59: ldo1 {
+ regulator-name = "vreg_pmu_aon_0p59";
+ };
+
+ vreg_pmu_wlcx_0p8: ldo2 {
+ regulator-name = "vreg_pmu_wlcx_0p8";
+ };
+
+ vreg_pmu_wlmx_0p85: ldo3 {
+ regulator-name = "vreg_pmu_wlmx_0p85";
+ };
+
+ vreg_pmu_btcmx_0p85: ldo4 {
+ regulator-name = "vreg_pmu_btcmx_0p85";
+ };
+
+ vreg_pmu_rfa_0p8: ldo5 {
+ regulator-name = "vreg_pmu_rfa_0p8";
+ };
+
+ vreg_pmu_rfa_1p2: ldo6 {
+ regulator-name = "vreg_pmu_rfa_1p2";
+ };
+
+ vreg_pmu_rfa_1p7: ldo7 {
+ regulator-name = "vreg_pmu_rfa_1p7";
+ };
+ };
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm7325-rpmh-regulators";
+ qcom,pmic-id = "b";
+
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+ vdd-s7-supply = <&vph_pwr>;
+ vdd-s8-supply = <&vph_pwr>;
+
+ vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p952>;
+ vdd-l2-l7-supply = <&vreg_bob>;
+ vdd-l3-supply = <&vreg_s2b_0p7>;
+ vdd-l5-supply = <&vreg_s2b_0p7>;
+ vdd-l6-l9-l10-supply = <&vreg_s8b_1p256>;
+ vdd-l8-supply = <&vreg_s7b_0p952>;
+ vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p856>;
+ vdd-l13-supply = <&vreg_s7b_0p952>;
+ vdd-l14-l16-supply = <&vreg_s8b_1p256>;
+
+ /*
+ * S2, L4-L5 are ARCs:
+ * S2 - ebi.lvl,
+ * L4 - lmx.lvl,
+ * L5 - lcx.lvl.
+ *
+ * L10 are unused.
+ */
+
+ vreg_s1b_1p856: smps1 {
+ regulator-name = "vreg_s1b_1p856";
+ regulator-min-microvolt = <1840000>;
+ regulator-max-microvolt = <2040000>;
+ };
+
+ vreg_s7b_0p952: smps7 {
+ regulator-name = "vreg_s7b_0p952";
+ regulator-min-microvolt = <535000>;
+ regulator-max-microvolt = <1120000>;
+ };
+
+ vreg_s8b_1p256: smps8 {
+ regulator-name = "vreg_s8b_1p256";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
+ };
+
+ vreg_l1b_0p912: ldo1 {
+ regulator-name = "vreg_l1b_0p912";
+ regulator-min-microvolt = <825000>;
+ regulator-max-microvolt = <925000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2b_3p072: ldo2 {
+ regulator-name = "vreg_l2b_3p072";
+ regulator-min-microvolt = <2700000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3b_0p6: ldo3 {
+ regulator-name = "vreg_l3b_0p6";
+ regulator-min-microvolt = <312000>;
+ regulator-max-microvolt = <910000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6b_1p2: ldo6 {
+ regulator-name = "vreg_l6b_1p2";
+ regulator-min-microvolt = <1140000>;
+ regulator-max-microvolt = <1260000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7b_2p96: ldo7 {
+ regulator-name = "vreg_l7b_2p96";
+ /* Constrained for UFS VCC, at least until UFS driver scales voltage */
+ regulator-min-microvolt = <2952000>;
+ regulator-max-microvolt = <2952000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8b_0p904: ldo8 {
+ regulator-name = "vreg_l8b_0p904";
+ regulator-min-microvolt = <870000>;
+ regulator-max-microvolt = <970000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b_1p2: ldo9 {
+ regulator-name = "vreg_l9b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11b_1p776: ldo11 {
+ regulator-name = "vreg_l11b_1p776";
+ regulator-min-microvolt = <1504000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b_0p8: ldo12 {
+ regulator-name = "vreg_l12b_0p8";
+ regulator-min-microvolt = <751000>;
+ regulator-max-microvolt = <824000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13b_0p8: ldo13 {
+ regulator-name = "vreg_l13b_0p8";
+ regulator-min-microvolt = <530000>;
+ regulator-max-microvolt = <824000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14b_1p2: ldo14 {
+ regulator-name = "vreg_l14b_1p2";
+ regulator-min-microvolt = <1080000>;
+ regulator-max-microvolt = <1304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b_0p88: ldo15 {
+ regulator-name = "vreg_l15b_0p88";
+ regulator-min-microvolt = <765000>;
+ regulator-max-microvolt = <1020000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l16b_1p2: ldo16 {
+ regulator-name = "vreg_l16b_1p2";
+ regulator-min-microvolt = <1100000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17b_1p8: ldo17 {
+ regulator-name = "vreg_l17b_1p8";
+ regulator-min-microvolt = <1700000>;
+ regulator-max-microvolt = <1900000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l18b_1p8: ldo18 {
+ regulator-name = "vreg_l18b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l19b_1p8: ldo19 {
+ regulator-name = "vreg_l19b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8350c-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+ vdd-s5-supply = <&vph_pwr>;
+ vdd-s7-supply = <&vph_pwr>;
+ vdd-s9-supply = <&vph_pwr>;
+ vdd-s10-supply = <&vph_pwr>;
+
+ vdd-l1-l12-supply = <&vreg_s1b_1p856>;
+ vdd-l2-l8-supply = <&vreg_s1b_1p856>;
+ vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
+ vdd-l6-l9-l11-supply = <&vreg_bob>;
+ vdd-l10-supply = <&vreg_s7b_0p952>;
+
+ vdd-bob-supply = <&vph_pwr>;
+
+ /*
+ * S2, S5, S7, S10 are ARCs:
+ * S2 - cx.lvl,
+ * S5 - mss.lvl,
+ * S7 - gfx.lvl,
+ * S10 - mx.lvl.
+ */
+
+ vreg_s1c_2p2: smps1 {
+ regulator-name = "vreg_s1c_2p2";
+ regulator-min-microvolt = <2190000>;
+ regulator-max-microvolt = <2210000>;
+ };
+
+ vreg_s9c_0p676: smps9 {
+ regulator-name = "vreg_s9c_0p676";
+ regulator-min-microvolt = <1010000>;
+ regulator-max-microvolt = <1170000>;
+ };
+
+ vreg_l1c_1p8: ldo1 {
+ regulator-name = "vreg_l1c_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1980000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2c_1p8: ldo2 {
+ regulator-name = "vreg_l2c_1p8";
+ regulator-min-microvolt = <1620000>;
+ regulator-max-microvolt = <1980000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3c_3p0: ldo3 {
+ regulator-name = "vreg_l3c_3p0";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <3540000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4c_1p8_3p0: ldo4 {
+ regulator-name = "vreg_l4c_1p8_3p0";
+ regulator-min-microvolt = <1620000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5c_1p8_3p0: ldo5 {
+ regulator-name = "vreg_l5c_1p8_3p0";
+ regulator-min-microvolt = <1620000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6c_2p96: ldo6 {
+ regulator-name = "vreg_l6c_2p96";
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7c_3p0: ldo7 {
+ regulator-name = "vreg_l7c_3p0";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8c_1p8: ldo8 {
+ regulator-name = "vreg_l8c_1p8";
+ regulator-min-microvolt = <1620000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9c_2p96: ldo9 {
+ regulator-name = "vreg_l9c_2p96";
+ regulator-min-microvolt = <2700000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10c_0p88: ldo10 {
+ regulator-name = "vreg_l10c_0p88";
+ regulator-min-microvolt = <720000>;
+ regulator-max-microvolt = <1050000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11c_2p8: ldo11 {
+ regulator-name = "vreg_l11c_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12c_1p8: ldo12 {
+ regulator-name = "vreg_l12c_1p8";
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13c_3p0: ldo13 {
+ regulator-name = "vreg_l13c_3p0";
+ regulator-min-microvolt = <2700000>;
+ regulator-max-microvolt = <3544000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob: bob {
+ regulator-name = "vreg_bob";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ };
+ };
+};
+
+&dispcc {
+ status = "disabled";
+};
+
+&gcc {
+ protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
+ <GCC_MSS_CFG_AHB_CLK>,
+ <GCC_MSS_OFFLINE_AXI_CLK>,
+ <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
+ <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
+ <GCC_MSS_SNOC_AXI_CLK>,
+ <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+ <GCC_QSPI_CORE_CLK>,
+ <GCC_QSPI_CORE_CLK_SRC>,
+ <GCC_SEC_CTRL_CLK_SRC>,
+ <GCC_WPSS_AHB_BDG_MST_CLK>,
+ <GCC_WPSS_AHB_CLK>,
+ <GCC_WPSS_RSCP_CLK>;
+};
+
+&gpi_dma0 {
+ status = "okay";
+};
+
+&gpi_dma1 {
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/sm7325/xiaomi/taoyao/a660_zap.mbn";
+};
+
+&i2c1 {
+ clock-frequency = <100000>;
+
+ status = "okay";
+
+ typec-mux@42 {
+ compatible = "fcs,fsa4480";
+ reg = <0x42>;
+
+ vcc-supply = <&vreg_bob>;
+
+ mode-switch;
+ orientation-switch;
+
+ port {
+ fsa4480_sbu_mux: endpoint {
+ remote-endpoint = <&pmic_glink_sbu>;
+ };
+ };
+ };
+};
+
+&ipa {
+ qcom,gsi-loader = "self";
+ memory-region = <&ipa_fw_mem>;
+ firmware-name = "qcom/sm7325/xiaomi/taoyao/ipa_fws.mbn";
+
+ status = "okay";
+};
+
+&lpass_audiocc {
+ compatible = "qcom,qcm6490-lpassaudiocc";
+ /delete-property/ power-domains;
+};
+
+&pm7325_gpios {
+ key_vol_up: key-vol-up-n-state {
+ pins = "gpio6";
+ function = PMIC_GPIO_FUNC_NORMAL;
+ power-source = <1>;
+ bias-pull-up;
+ input-enable;
+ };
+};
+
+&pmk8350_rtc {
+ status = "okay";
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&qup_spi13_cs {
+ drive-strength = <6>;
+ bias-disable;
+};
+
+&qup_spi13_data_clk {
+ drive-strength = <6>;
+ bias-disable;
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&qupv3_id_1 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/sm7325/xiaomi/taoyao/adsp.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/sm7325/xiaomi/taoyao/cdsp.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_mpss {
+ firmware-name = "qcom/sm7325/xiaomi/taoyao/modem.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_wpss {
+ firmware-name = "qcom/sm7325/xiaomi/taoyao/wpss.mbn";
+
+ status = "okay";
+};
+
+&spi13 {
+ status = "okay";
+
+ touchscreen@0 {
+ compatible = "goodix,gt9916";
+ reg = <0>;
+
+ interrupts-extended = <&tlmm 81 IRQ_TYPE_LEVEL_LOW>;
+
+ reset-gpios = <&tlmm 105 GPIO_ACTIVE_LOW>;
+
+ avdd-supply = <&vreg_l7c_3p0>;
+ vddio-supply = <&vreg_l2c_1p8>;
+
+ spi-max-frequency = <5000000>;
+
+ touchscreen-size-x = <10800>;
+ touchscreen-size-y = <24000>;
+
+ pinctrl-0 = <&ts_irq>, <&ts_reset>;
+ pinctrl-names = "default";
+ };
+};
+
+&tlmm {
+ gpio-reserved-ranges = <48 4>, <56 4>;
+
+ bt_uart_sleep_cts: bt-uart-sleep-cts-state {
+ pins = "gpio28";
+ function = "gpio";
+ bias-bus-hold;
+ };
+
+ bt_uart_sleep_rts: bt-uart-sleep-rts-state {
+ pins = "gpio29";
+ function = "gpio";
+ bias-pull-down;
+ };
+
+ bt_uart_sleep_txd: bt-uart-sleep-txd-state {
+ pins = "gpio30";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ bt_uart_sleep_rxd: bt-uart-sleep-rxd-state {
+ pins = "gpio31";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ sde_dsi_active: sde-dsi-active-state {
+ pins = "gpio44";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ sde_dsi_sleep: sde-dsi-sleep-state {
+ pins = "gpio44";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ sde_te_active_sleep: sde-te-active-state {
+ pins = "gpio80";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ ts_irq: ts-irq-state {
+ pins = "gpio81";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
+ hst_bt_en: hst-bt-en-state {
+ pins = "gpio85";
+ function = "gpio";
+ output-low;
+ bias-disable;
+ };
+
+ hst_sw_ctrl: hst-sw-ctrl-state {
+ pins = "gpio86";
+ function = "gpio";
+ bias-pull-down;
+ };
+
+ ts_reset: ts-reset-state {
+ pins = "gpio105";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+};
+
+&uart5 {
+ status = "okay";
+};
+
+&uart7 {
+ /delete-property/interrupts;
+ interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
+ <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
+
+ pinctrl-1 = <&bt_uart_sleep_cts>,
+ <&bt_uart_sleep_rts>,
+ <&bt_uart_sleep_txd>,
+ <&bt_uart_sleep_rxd>;
+ pinctrl-names = "default", "sleep";
+
+ status = "okay";
+
+ bluetooth: bluetooth {
+ compatible = "qcom,wcn6750-bt";
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ max-speed = <3200000>;
+ };
+};
+
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+
+ vcc-supply = <&vreg_l7b_2p96>;
+ vcc-max-microamp = <800000>;
+ /*
+ * Technically l9b enables an eLDO (supplied by s1b) which then powers
+ * VCCQ2 of the UFS.
+ */
+ vccq-supply = <&vreg_l9b_1p2>;
+ vccq-max-microamp = <900000>;
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l10c_0p88>;
+ vdda-pll-supply = <&vreg_l6b_1p2>;
+
+ status = "okay";
+};
+
+&usb_1 {
+ /* USB 2.0 only */
+ qcom,select-utmi-as-pipe-clk;
+
+ dr_mode = "otg";
+ usb-role-switch;
+ maximum-speed = "high-speed";
+ /* Remove USB3 phy */
+ phys = <&usb_1_hsphy>;
+ phy-names = "usb2-phy";
+
+ status = "okay";
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+ vdda-pll-supply = <&vreg_l10c_0p88>;
+ vdda18-supply = <&vreg_l1c_1p8>;
+ vdda33-supply = <&vreg_l2b_3p072>;
+
+ status = "okay";
+};
+
+&venus {
+ firmware-name = "qcom/sm7325/xiaomi/taoyao/vpu20_1v.mbn";
+
+ status = "okay";
+};
+
+&wifi {
+ qcom,calibration-variant = "Xiaomi_taoyao";
+
+ status = "okay";
+};
--
2.51.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
2026-03-05 9:39 ` [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS Stanislav Zaikin
@ 2026-03-05 10:27 ` Konrad Dybcio
2026-03-16 4:05 ` Val Packett
2026-03-21 7:36 ` Val Packett
2 siblings, 0 replies; 12+ messages in thread
From: Konrad Dybcio @ 2026-03-05 10:27 UTC (permalink / raw)
To: Stanislav Zaikin, devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel
On 3/5/26 10:39 AM, Stanislav Zaikin wrote:
> Xiaomi 12 Lite 5G is a handset released in 2022
>
> This commit has the following features working:
> - Display (with simple fb)
> - Touchscreen
> - UFS
> - Power and volume buttons
> - Pinctrl
> - RPM Regulators
> - Remoteprocs - wifi, bluetooth
> - USB (Device Mode)
>
> Signed-off-by: Stanislav Zaikin <zstaseg@gmail.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
2026-03-05 9:39 ` [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS Stanislav Zaikin
2026-03-05 10:27 ` Konrad Dybcio
@ 2026-03-16 4:05 ` Val Packett
2026-03-16 11:57 ` Stanislav Zaikin
2026-03-21 7:36 ` Val Packett
2 siblings, 1 reply; 12+ messages in thread
From: Val Packett @ 2026-03-16 4:05 UTC (permalink / raw)
To: Stanislav Zaikin, devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel
On 3/5/26 6:39 AM, Stanislav Zaikin wrote:
> Xiaomi 12 Lite 5G is a handset released in 2022
>
> This commit has the following features working:
> - Display (with simple fb)
> - Touchscreen
> - UFS
> - Power and volume buttons
> - Pinctrl
> - RPM Regulators
> - Remoteprocs - wifi, bluetooth
> - USB (Device Mode)
> […]
> + vreg_l7b_2p96: ldo7 {
> + regulator-name = "vreg_l7b_2p96";
> + /* Constrained for UFS VCC, at least until UFS driver scales voltage */
> + regulator-min-microvolt = <2952000>;
> + regulator-max-microvolt = <2952000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> […]
> +&ufs_mem_hc {
> + reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
> +
> + vcc-supply = <&vreg_l7b_2p96>;
> + vcc-max-microamp = <800000>;
> + /*
> + * Technically l9b enables an eLDO (supplied by s1b) which then powers
> + * VCCQ2 of the UFS.
> + */
> + vccq-supply = <&vreg_l9b_1p2>;
> + vccq-max-microamp = <900000>;
If this device has UFS 3.x flash, which it most likely does, the
copy-pasted eLDO comment does not apply.. and VCC range is 2.4V-2.7V,
2.95 is overvoltage!
If it's actually UFS 2 after all, it would be better to rename the
property to vccq2-supply.
~val
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
2026-03-16 4:05 ` Val Packett
@ 2026-03-16 11:57 ` Stanislav Zaikin
2026-03-16 20:47 ` Val Packett
0 siblings, 1 reply; 12+ messages in thread
From: Stanislav Zaikin @ 2026-03-16 11:57 UTC (permalink / raw)
To: Val Packett, devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel
On 3/16/26 5:05 AM, Val Packett wrote:
> On 3/5/26 6:39 AM, Stanislav Zaikin wrote:
>
>> Xiaomi 12 Lite 5G is a handset released in 2022
>>
>> This commit has the following features working:
>> - Display (with simple fb)
>> - Touchscreen
>> - UFS
>> - Power and volume buttons
>> - Pinctrl
>> - RPM Regulators
>> - Remoteprocs - wifi, bluetooth
>> - USB (Device Mode)
>> […]
>> + vreg_l7b_2p96: ldo7 {
>> + regulator-name = "vreg_l7b_2p96";
>> + /* Constrained for UFS VCC, at least until UFS driver
>> scales voltage */
>> + regulator-min-microvolt = <2952000>;
>> + regulator-max-microvolt = <2952000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> […]
>> +&ufs_mem_hc {
>> + reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
>> +
>> + vcc-supply = <&vreg_l7b_2p96>;
>> + vcc-max-microamp = <800000>;
>> + /*
>> + * Technically l9b enables an eLDO (supplied by s1b) which then
>> powers
>> + * VCCQ2 of the UFS.
>> + */
>> + vccq-supply = <&vreg_l9b_1p2>;
>> + vccq-max-microamp = <900000>;
>
> If this device has UFS 3.x flash, which it most likely does, the
> copy-pasted eLDO comment does not apply.. and VCC range is 2.4V-2.7V,
> 2.95 is overvoltage!
Hello Val,
Thank you for the review.
Though you're right that this comment is a copy-paste, taoyao has ufs2.
This is the explaining comment from the downstream sources:
> /*
> * Yupik target supports both UFS2.2 & UFS3.1, here
> * vccq2 is supplied via eLDO, and that is controlled via
> * L9B which supports a max voltage of 1.2V, but eLDO would
> * supply 1.8V. and same L9B acts as vccq voltage for UFS3.1
> * devices.
> * Here L9B can max support for 1.2V but UFS GKI driver code
> * votes for 1.8V, which is leading to failure from pmic
> * regulator.
> *
> * Now since vccq and control of eLDO are common that is L9B
> * we can use vccq vote as control of eLDO for vccq2.
> * Hence vccq entries shall be used for both type of UFS
> * devices only. And vccq entries should not be changed/removed
> * for any design alteration.
> */
So I thought it's better to keep a small comment regarding eLDO.
> If it's actually UFS 2 after all, it would be better to rename the
> property to vccq2-supply.
Could you elaborate please? Do you mean l9b?
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
2026-03-16 11:57 ` Stanislav Zaikin
@ 2026-03-16 20:47 ` Val Packett
2026-03-18 8:22 ` Stanislav Zaikin
0 siblings, 1 reply; 12+ messages in thread
From: Val Packett @ 2026-03-16 20:47 UTC (permalink / raw)
To: Stanislav Zaikin, devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel
On 3/16/26 8:57 AM, Stanislav Zaikin wrote:
> On 3/16/26 5:05 AM, Val Packett wrote:
>> On 3/5/26 6:39 AM, Stanislav Zaikin wrote:
>>
>>> Xiaomi 12 Lite 5G is a handset released in 2022
>>>
>>> This commit has the following features working:
>>> - Display (with simple fb)
>>> - Touchscreen
>>> - UFS
>>> - Power and volume buttons
>>> - Pinctrl
>>> - RPM Regulators
>>> - Remoteprocs - wifi, bluetooth
>>> - USB (Device Mode)
>>> […]
>>> + vreg_l7b_2p96: ldo7 {
>>> + regulator-name = "vreg_l7b_2p96";
>>> + /* Constrained for UFS VCC, at least until UFS driver
>>> scales voltage */
>>> + regulator-min-microvolt = <2952000>;
>>> + regulator-max-microvolt = <2952000>;
>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>> + };
>>> […]
>>> +&ufs_mem_hc {
>>> + reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
>>> +
>>> + vcc-supply = <&vreg_l7b_2p96>;
>>> + vcc-max-microamp = <800000>;
>>> + /*
>>> + * Technically l9b enables an eLDO (supplied by s1b) which then
>>> powers
>>> + * VCCQ2 of the UFS.
>>> + */
>>> + vccq-supply = <&vreg_l9b_1p2>;
>>> + vccq-max-microamp = <900000>;
>>
>> If this device has UFS 3.x flash, which it most likely does, the
>> copy-pasted eLDO comment does not apply.. and VCC range is 2.4V-2.7V,
>> 2.95 is overvoltage!
>
> Hello Val,
>
> Thank you for the review.
>
> Though you're right that this comment is a copy-paste, taoyao has
> ufs2. This is the explaining comment from the downstream sources:
>
>> /*
>> * Yupik target supports both UFS2.2 & UFS3.1, here
>> * vccq2 is supplied via eLDO, [..]
>
> So I thought it's better to keep a small comment regarding eLDO.
That's a comment from the qcom reference sources! I've literally seen it
already in the downstream DTS for the device I'm currently working on
(motorola-dubai) which definitely has UFS 3, hehe.
You can read
/sys/bus/platform/devices/1d84000.ufshc/device_descriptor/specification_version
to see which UFS spec version your flash is (0x310 == 3.1 etc.)
(Lots of interesting stuff around there, there's also health_descriptor
that shows your flash's wear estimation..)
Also if you have the schematics, you can check for whether an LDO is
actually present there and whether VCCQ or VCCQ2 is connected :)
>> If it's actually UFS 2 after all, it would be better to rename the
>> property to vccq2-supply.
> Could you elaborate please? Do you mean l9b?
No, the "vccq-supply". If you look at
Documentation/devicetree/bindings/ufs/ufs-common.yaml you can see it
supports both `vccq-supply` and `vccq2-supply`, the former is used for
UFS3 and the latter for UFS2.
Thanks,
~val
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
2026-03-16 20:47 ` Val Packett
@ 2026-03-18 8:22 ` Stanislav Zaikin
0 siblings, 0 replies; 12+ messages in thread
From: Stanislav Zaikin @ 2026-03-18 8:22 UTC (permalink / raw)
To: Val Packett, devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel
On 3/16/26 9:47 PM, Val Packett wrote:
>
> On 3/16/26 8:57 AM, Stanislav Zaikin wrote:
>> On 3/16/26 5:05 AM, Val Packett wrote:
>>> On 3/5/26 6:39 AM, Stanislav Zaikin wrote:
>>>
>>>> Xiaomi 12 Lite 5G is a handset released in 2022
>>>>
>>>> This commit has the following features working:
>>>> - Display (with simple fb)
>>>> - Touchscreen
>>>> - UFS
>>>> - Power and volume buttons
>>>> - Pinctrl
>>>> - RPM Regulators
>>>> - Remoteprocs - wifi, bluetooth
>>>> - USB (Device Mode)
>>>> […]
>>>> + vreg_l7b_2p96: ldo7 {
>>>> + regulator-name = "vreg_l7b_2p96";
>>>> + /* Constrained for UFS VCC, at least until UFS driver
>>>> scales voltage */
>>>> + regulator-min-microvolt = <2952000>;
>>>> + regulator-max-microvolt = <2952000>;
>>>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>> + };
>>>> […]
>>>> +&ufs_mem_hc {
>>>> + reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
>>>> +
>>>> + vcc-supply = <&vreg_l7b_2p96>;
>>>> + vcc-max-microamp = <800000>;
>>>> + /*
>>>> + * Technically l9b enables an eLDO (supplied by s1b) which
>>>> then powers
>>>> + * VCCQ2 of the UFS.
>>>> + */
>>>> + vccq-supply = <&vreg_l9b_1p2>;
>>>> + vccq-max-microamp = <900000>;
>>>
>>> If this device has UFS 3.x flash, which it most likely does, the
>>> copy-pasted eLDO comment does not apply.. and VCC range is
>>> 2.4V-2.7V, 2.95 is overvoltage!
>>
>> Hello Val,
>>
>> Thank you for the review.
>>
>> Though you're right that this comment is a copy-paste, taoyao has
>> ufs2. This is the explaining comment from the downstream sources:
>>
>>> /*
>>> * Yupik target supports both UFS2.2 & UFS3.1, here
>>> * vccq2 is supplied via eLDO, [..]
>>
>> So I thought it's better to keep a small comment regarding eLDO.
>
> That's a comment from the qcom reference sources! I've literally seen
> it already in the downstream DTS for the device I'm currently working
> on (motorola-dubai) which definitely has UFS 3, hehe.
>
> You can read
> /sys/bus/platform/devices/1d84000.ufshc/device_descriptor/specification_version
> to see which UFS spec version your flash is (0x310 == 3.1 etc.)
/home/user # cat
/sys/bus/platform/devices/1d84000.ufshc/device_descriptor/specification_version
0x0220
> (Lots of interesting stuff around there, there's also
> health_descriptor that shows your flash's wear estimation..)
>
> Also if you have the schematics, you can check for whether an LDO is
> actually present there and whether VCCQ or VCCQ2 is connected :)
Unfortunately, I wasn't able to find schematics. It also a bummer that I
don't know panel's name because I have a (semi-generated) driver for it.
>>> If it's actually UFS 2 after all, it would be better to rename the
>>> property to vccq2-supply.
>> Could you elaborate please? Do you mean l9b?
>
> No, the "vccq-supply". If you look at
> Documentation/devicetree/bindings/ufs/ufs-common.yaml you can see it
> supports both `vccq-supply` and `vccq2-supply`, the former is used for
> UFS3 and the latter for UFS2.
Will fix it in v5. Thanks a lot for so many inputs!
Best regards,
Stanislav
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
2026-03-05 9:39 ` [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS Stanislav Zaikin
2026-03-05 10:27 ` Konrad Dybcio
2026-03-16 4:05 ` Val Packett
@ 2026-03-21 7:36 ` Val Packett
2026-03-23 8:04 ` Stanislav Zaikin
2 siblings, 1 reply; 12+ messages in thread
From: Val Packett @ 2026-03-21 7:36 UTC (permalink / raw)
To: Stanislav Zaikin, devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel
Hello again :)
On 3/5/26 6:39 AM, Stanislav Zaikin wrote:
> Xiaomi 12 Lite 5G is a handset released in 2022
> […]
> + touchscreen@0 {
> + compatible = "goodix,gt9916";
> + reg = <0>;
> +
> + interrupts-extended = <&tlmm 81 IRQ_TYPE_LEVEL_LOW>;
> +
> + reset-gpios = <&tlmm 105 GPIO_ACTIVE_LOW>;
> +
> + avdd-supply = <&vreg_l7c_3p0>;
> + vddio-supply = <&vreg_l2c_1p8>;
> +
> + spi-max-frequency = <5000000>;
> +
> + touchscreen-size-x = <10800>;
> + touchscreen-size-y = <24000>;
> […]
I have noticed this previously and started wondering why the size was
10x higher. Now with my own device (motorola-dubai) I actually found out
why…
With the actual 1080x2400 size, the mm values reported by libinput are
10x higher than what they should be, e.g. touching the bottom right
corner with libinput debug-events:
event3 TOUCH_MOTION 2 +1.493s 0 (0) 98.80/98.75
(1067.00/2370.00mm)
(2.4 meter tall phone! :D) which was mooooostly "fine" except Phosh's
on-screen keyboard was accidentally detecting super-fast down swipes as
I was typing normally, and suddenly closing the keyboard as I was typing.
Let's do this in a more acceptable way, in the goodix-berlin driver:
https://lore.kernel.org/all/20260321073242.556253-1-val@packett.cool/
so set the properties to 1080/2400 in v5!
Thanks,
~val
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
2026-03-21 7:36 ` Val Packett
@ 2026-03-23 8:04 ` Stanislav Zaikin
2026-03-23 20:49 ` Val Packett
0 siblings, 1 reply; 12+ messages in thread
From: Stanislav Zaikin @ 2026-03-23 8:04 UTC (permalink / raw)
To: Val Packett, devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel
On 3/21/26 8:36 AM, Val Packett wrote:
> Hello again :)
>
> On 3/5/26 6:39 AM, Stanislav Zaikin wrote:
>> Xiaomi 12 Lite 5G is a handset released in 2022
>> […]
>> + touchscreen@0 {
>> + compatible = "goodix,gt9916";
>> + reg = <0>;
>> +
>> + interrupts-extended = <&tlmm 81 IRQ_TYPE_LEVEL_LOW>;
>> +
>> + reset-gpios = <&tlmm 105 GPIO_ACTIVE_LOW>;
>> +
>> + avdd-supply = <&vreg_l7c_3p0>;
>> + vddio-supply = <&vreg_l2c_1p8>;
>> +
>> + spi-max-frequency = <5000000>;
>> +
>> + touchscreen-size-x = <10800>;
>> + touchscreen-size-y = <24000>;
>> […]
>
> I have noticed this previously and started wondering why the size was
> 10x higher. Now with my own device (motorola-dubai) I actually found
> out why…
>
> With the actual 1080x2400 size, the mm values reported by libinput are
> 10x higher than what they should be, e.g. touching the bottom right
> corner with libinput debug-events:
>
> event3 TOUCH_MOTION 2 +1.493s 0 (0) 98.80/98.75
> (1067.00/2370.00mm)
>
> (2.4 meter tall phone! :D) which was mooooostly "fine" except Phosh's
> on-screen keyboard was accidentally detecting super-fast down swipes
> as I was typing normally, and suddenly closing the keyboard as I was
> typing.
>
I wonder why some other devices with gt9916 (there are a couple in
mainline) that specifies 1080x2400. I don't think we can make this
assumption unless there was a mistake already in those mainline dts.
Best regards,
Stanislav
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
2026-03-23 8:04 ` Stanislav Zaikin
@ 2026-03-23 20:49 ` Val Packett
2026-03-24 8:07 ` Stanislav Zaikin
0 siblings, 1 reply; 12+ messages in thread
From: Val Packett @ 2026-03-23 20:49 UTC (permalink / raw)
To: Stanislav Zaikin, devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel
On 3/23/26 05:04, Stanislav Zaikin wrote:
> On 3/21/26 8:36 AM, Val Packett wrote:
>> Hello again :)
>>
>> On 3/5/26 6:39 AM, Stanislav Zaikin wrote:
>>> Xiaomi 12 Lite 5G is a handset released in 2022
>>> […]
>>> + touchscreen@0 {
>>> + compatible = "goodix,gt9916";
>>> + reg = <0>;
>>> +
>>> + interrupts-extended = <&tlmm 81 IRQ_TYPE_LEVEL_LOW>;
>>> +
>>> + reset-gpios = <&tlmm 105 GPIO_ACTIVE_LOW>;
>>> +
>>> + avdd-supply = <&vreg_l7c_3p0>;
>>> + vddio-supply = <&vreg_l2c_1p8>;
>>> +
>>> + spi-max-frequency = <5000000>;
>>> +
>>> + touchscreen-size-x = <10800>;
>>> + touchscreen-size-y = <24000>;
>>> […]
>>
>> I have noticed this previously and started wondering why the size was
>> 10x higher. Now with my own device (motorola-dubai) I actually found
>> out why…
>>
>> With the actual 1080x2400 size, the mm values reported by libinput
>> are 10x higher than what they should be, e.g. touching the bottom
>> right corner with libinput debug-events:
>>
>> event3 TOUCH_MOTION 2 +1.493s 0 (0) 98.80/98.75
>> (1067.00/2370.00mm)
>>
>> (2.4 meter tall phone! :D) which was mooooostly "fine" except Phosh's
>> on-screen keyboard was accidentally detecting super-fast down swipes
>> as I was typing normally, and suddenly closing the keyboard as I was
>> typing.
>>
> I wonder why some other devices with gt9916 (there are a couple in
> mainline) that specifies 1080x2400. I don't think we can make this
> assumption unless there was a mistake already in those mainline dts.
>
> Best regards,
> Stanislav
Not sure what you meant there..
I have not seen other devices do the 10800/24000 thing. Please set
1080/2400 (actual size not 10x larger).
~val
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
2026-03-23 20:49 ` Val Packett
@ 2026-03-24 8:07 ` Stanislav Zaikin
0 siblings, 0 replies; 12+ messages in thread
From: Stanislav Zaikin @ 2026-03-24 8:07 UTC (permalink / raw)
To: Val Packett, devicetree
Cc: linux-arm-msm, andersson, konradybcio, robh, krzk+dt, conor+dt,
linux-kernel
On 3/23/26 9:49 PM, Val Packett wrote:
>
> On 3/23/26 05:04, Stanislav Zaikin wrote:
>> On 3/21/26 8:36 AM, Val Packett wrote:
>>> Hello again :)
>>>
>>> On 3/5/26 6:39 AM, Stanislav Zaikin wrote:
>>>> Xiaomi 12 Lite 5G is a handset released in 2022
>>>> […]
>>>> + touchscreen@0 {
>>>> + compatible = "goodix,gt9916";
>>>> + reg = <0>;
>>>> +
>>>> + interrupts-extended = <&tlmm 81 IRQ_TYPE_LEVEL_LOW>;
>>>> +
>>>> + reset-gpios = <&tlmm 105 GPIO_ACTIVE_LOW>;
>>>> +
>>>> + avdd-supply = <&vreg_l7c_3p0>;
>>>> + vddio-supply = <&vreg_l2c_1p8>;
>>>> +
>>>> + spi-max-frequency = <5000000>;
>>>> +
>>>> + touchscreen-size-x = <10800>;
>>>> + touchscreen-size-y = <24000>;
>>>> […]
>>>
>>> I have noticed this previously and started wondering why the size
>>> was 10x higher. Now with my own device (motorola-dubai) I actually
>>> found out why…
>>>
>>> With the actual 1080x2400 size, the mm values reported by libinput
>>> are 10x higher than what they should be, e.g. touching the bottom
>>> right corner with libinput debug-events:
>>>
>>> event3 TOUCH_MOTION 2 +1.493s 0 (0) 98.80/98.75
>>> (1067.00/2370.00mm)
>>>
>>> (2.4 meter tall phone! :D) which was mooooostly "fine" except
>>> Phosh's on-screen keyboard was accidentally detecting super-fast
>>> down swipes as I was typing normally, and suddenly closing the
>>> keyboard as I was typing.
>>>
>> I wonder why some other devices with gt9916 (there are a couple in
>> mainline) that specifies 1080x2400. I don't think we can make this
>> assumption unless there was a mistake already in those mainline dts.
>>
>> Best regards,
>> Stanislav
>
> Not sure what you meant there..
I meant the existing dts files that use gt9916:
sm8550-qrd.dts
sm8650-qrd.dts
sm8650-hdk-display-card.dtso
All of those specify 1080x2400. That means either those boards weren't
tested (by physically tapping the touchscreen at least) or that there's
something else.
> I have not seen other devices do the 10800/24000 thing. Please set
> 1080/2400 (actual size not 10x larger).
That part I get and I will.
Best regards,
Stanislav
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-03-24 8:07 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-05 9:39 [PATCH v4 0/2] Add Xiaomi 12 Lite 5G (taoyao) device tree Stanislav Zaikin
2026-03-05 9:39 ` [PATCH v4 1/2] dt-bindings: arm: qcom: Add SM7325 Xiaomi 12 Lite 5G (taoyao) Stanislav Zaikin
2026-03-05 9:39 ` [PATCH v4 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS Stanislav Zaikin
2026-03-05 10:27 ` Konrad Dybcio
2026-03-16 4:05 ` Val Packett
2026-03-16 11:57 ` Stanislav Zaikin
2026-03-16 20:47 ` Val Packett
2026-03-18 8:22 ` Stanislav Zaikin
2026-03-21 7:36 ` Val Packett
2026-03-23 8:04 ` Stanislav Zaikin
2026-03-23 20:49 ` Val Packett
2026-03-24 8:07 ` Stanislav Zaikin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox