[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <365e02e9-eb36-4870-afd4-d337a628794b@ixit.cz>
Date: Wed, 4 Feb 2026 14:10:11 +0100
From: David Heidelberg <david@...t.cz>
To: Stanislav Zaikin <zstaseg@...il.com>, devicetree@...r.kernel.org
Cc: linux-arm-msm@...r.kernel.org, andersson@...nel.org,
konradybcio@...nel.org, robh@...nel.org, krzk+dt@...nel.org,
conor+dt@...nel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] arm64: dts: qcom: Add Xiaomi 12 Lite 5G (taoyao) DTS
On 04/02/2026 12:56, 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@...il.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../boot/dts/qcom/sm7325-xiaomi-taoyao.dts | 866 ++++++++++++++++++
> 2 files changed, 867 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..b3d2c8d3022e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm7325-xiaomi-taoyao.dts
> @@ -0,0 +1,866 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
> +/*
> + * Copyright (c) 2025, Stanislav Zaikin <zstaseg@...il.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@...00000 {
> + compatible = "simple-framebuffer";
> + reg = <0x0 0xe1000000 0x0 (1080 * 2400 * 4)>;
Hello Stanislav.
Use memory-region instead of reg property pointing to framebuffer.
Happy to see the phone progressing towards mainline support!
David
> + 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-smpa3 {
> + 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@...00000 {
> + reg = <0x0 0x81800000 0x0 0x1e00000>;
> + no-map;
> + };
> +
> + camera_mem: camera@...00000 {
> + reg = <0x0 0x86200000 0x0 0x500000>;
> + no-map;
> + };
> +
> + adsp_mem: adsp@...00000 {
> + reg = <0x0 0x86700000 0x0 0x4000000>;
> + no-map;
> + };
> +
> + /* Mainline video_mem is downstream cvp_mem */
> + real_video_mem: video@...00000 {
> + reg = <0x0 0x8ad00000 0x0 0x500000>;
> + no-map;
> + };
> +
> + ipa_gsi_mem: ipa-gsi@...10000 {
> + reg = <0x0 0x8b710000 0x0 0xa000>;
> + no-map;
> + };
> +
> + cdsp_mem: cdsp@...00000 {
> + reg = <0x0 0x9c700000 0x0 0x1e00000>;
> + no-map;
> + };
> +
> + ramoops@...00000 {
> + compatible = "ramoops";
> + reg = <0x0 0xa9000000 0x0 0x200000>;
> + pmsg-size = <0x200000>;
> + mem-type = <0x02>;
> + };
> +
> + removed_mem: removed@...00000 {
> + reg = <0x0 0xc0000000 0x0 0x6800000>;
> + no-map;
> + };
> +
> + pil_trustedvm_mem: pil-trustedvm-region@...00000 {
> + reg = <0x0 0xd0800000 0x0 0x76f7000>;
> + no-map;
> + };
> +
> + qrtr_shmem: qrtr-shmem@...f7000 {
> + reg = <0x0 0xd7ef7000 0x0 0x9000>;
> + no-map;
> + };
> +
> + neuron_block_0_mem: neuron-block@...00000 {
> + reg = <0x0 0xd7f00000 0x0 0x80000>;
> + no-map;
> + };
> +
> + neuron_block_1_mem: neuron-block@...80000 {
> + reg = <0x0 0xd7f80000 0x0 0x80000>;
> + no-map;
> + };
> +
> + framebuffer@...00000 {
> + reg = <0x0 0xe1000000 0x0 (1080 * 2400 * 4)>;
> + no-map;
> + };
> +
[...]
Powered by blists - more mailing lists