* [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
@ 2026-07-21 14:21 code_0002
2026-07-21 14:41 ` Konrad Dybcio
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: code_0002 @ 2026-07-21 14:21 UTC (permalink / raw)
To: andersson
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel, map220v, code002-2
From: map220v <map220v300@gmail.com>
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
Signed-off-by: code002-2 <hiez832670@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/sm8550-xiaomi-sheng.dts | 1788 +++++++++++++++++
2 files changed, 1789 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f33c4e2f..d8e485521 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -386,6 +386,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8550-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-samsung-q5q.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-sony-xperia-yodo-pdx234.dtb
+dtb-$(CONFIG_ARCH_QCOM) += sm8550-xiaomi-sheng.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8650-ayaneo-pocket-s2.dtb
sm8650-hdk-display-card-dtbs := sm8650-hdk.dtb sm8650-hdk-display-card.dtbo
diff --git a/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
new file mode 100644
index 000000000..170a67b37
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
@@ -0,0 +1,1788 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024, map220v <map220v300@gmail.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/arm/qcom,ids.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8550.dtsi"
+#include "pm8010.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550b.dtsi"
+#define PMK8550VE_SID 5
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+
+/delete-node/ &rmtfs_mem;
+/delete-node/ &adspslpi_mem;
+/delete-node/ &xbl_dt_log_merged_mem;
+/delete-node/ &hwfence_shbuf;
+
+/*
+ * Free unused regions, these regions don't exist in downstream
+ * dts, and they aren't removed from DDR Memory Map by UEFI.
+ */
+/delete-node/ &hyp_tags_reserved_mem;
+/delete-node/ &cdsp_secure_heap_mem;
+/delete-node/ &trust_ui_vm_mem;
+/delete-node/ &trust_ui_vm_dump;
+/delete-node/ &trust_ui_vm_qrtr;
+/delete-node/ &trust_ui_vm_vblk0_ring;
+/delete-node/ &trust_ui_vm_vblk1_ring;
+/delete-node/ &trust_ui_vm_swiotlb;
+/delete-node/ &oem_vm_vblk0_ring;
+/delete-node/ &oem_vm_swiotlb;
+/delete-node/ &oem_vm_mem;
+/delete-node/ &hyp_ext_tags_mem;
+/delete-node/ &hyp_ext_reserved_mem;
+
+/* Xiaomi uses alternative gpio's for i2c8 */
+/delete-node/ &qup_i2c8_data_clk;
+
+/* Xiaomi change for Nanosic WN803x */
+/delete-node/ &qup_i2c9_data_clk;
+
+/* SM8550P doesn't have Modem DSP */
+/delete-node/ &mpss_dsm_mem;
+/delete-node/ &mpss_mem;
+/delete-node/ &q6_mpss_dtb_mem;
+/delete-node/ &remoteproc_mpss;
+
+/ {
+ model = "Xiaomi Pad 6S Pro 12.4";
+ compatible = "xiaomi,sheng", "qcom,sm8550";
+ chassis-type = "tablet";
+ qcom,msm-id = <536 0x20000>; /* SM8550P v2.0 */
+ qcom,board-id = <0x10008 0>;
+
+ aliases {
+ serial0 = &uart7;
+ serial1 = &uart14;
+ };
+
+ chosen {
+ /* Required for libcamera to allocate buffers when udmabuf is used. */
+ bootargs = "udmabuf.size_limit_mb=256";
+ };
+
+ fingerprint_fpc {
+ compatible = "fpc,fpc1020";
+ interrupt-parent = <&tlmm>;
+ interrupts = <40 IRQ_TYPE_EDGE_RISING>;
+ fpc,gpio_rst = <&tlmm 41 GPIO_ACTIVE_HIGH>;
+ fpc,gpio_irq = <&tlmm 40 GPIO_ACTIVE_HIGH>;
+ irq-gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
+ fp_vdd_vreg-supply = <&vreg_l9b_3p3>;
+
+ pinctrl-names = "fpc1020_reset_reset",
+ "fpc1020_reset_active",
+ "fpc1020_irq_active";
+ pinctrl-0 = <&fpc_reset_low>;
+ pinctrl-1 = <&fpc_reset_high>;
+ pinctrl-2 = <&fpc_irq_active>;
+ };
+
+ bl_vddpos_5p8: bl-vddpos-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "bl_vddpos_5p8";
+ regulator-min-microvolt = <5800000>;
+ regulator-max-microvolt = <5800000>;
+ regulator-enable-ramp-delay = <233>;
+ gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ bl_vddneg_5p8: bl-vddneg-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "bl_vddneg_5p8";
+ regulator-min-microvolt = <5800000>;
+ regulator-max-microvolt = <5800000>;
+ regulator-enable-ramp-delay = <233>;
+ gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&volume_up_n>, <&hall_sensor_default>;
+ pinctrl-names = "default";
+
+ key-volume-up {
+ label = "Volume Up";
+ linux,code = <KEY_VOLUMEUP>;
+ gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+
+ event-hall-sensor {
+ label = "Hall Effect Sensor";
+ gpios = <&tlmm 171 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+
+ event-tablet-mode {
+ label = "Tablet Mode Switch";
+ gpios = <&tlmm 172 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_TABLET_MODE>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+ };
+
+ pmic-glink {
+ compatible = "xiaomi,sm8550-pmic-glink", "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ orientation-gpios = <&tlmm 11 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_ss_in: endpoint {
+ remote-endpoint = <&redriver_ss_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_sbu: endpoint {
+ remote-endpoint = <&fsa4480_sbu_mux>;
+ };
+ };
+ };
+ };
+ };
+
+ reserved-memory {
+ xbl_ramdump_mem: xbl-ramdump-region@81200000 {
+ reg = <0 0x81200000 0 0x280000>;
+ no-map;
+ };
+
+ xbl_dt_log_mem: xbl-dt-log-region@81a00000 {
+ reg = <0 0x81a00000 0 0x40000>;
+ no-map;
+ };
+
+ aop_image_mem: aop-image-region@81c00000 {
+ reg = <0 0x81c00000 0 0x60000>;
+ no-map;
+ };
+
+ adspslpi_mem: adspslpi-region@9ea00000 {
+ reg = <0 0x9ea00000 0 0x4680000>;
+ no-map;
+ };
+
+ rmtfs_mem: rmtfs-region@ccd00000 {
+ compatible = "qcom,rmtfs-mem";
+ reg = <0x0 0xccd00000 0x0 0x280000>;
+ no-map;
+
+ qcom,client-id = <1>;
+ };
+
+ hwfence_shbuf: hwfence-shbuf-region@e6440000 {
+ reg = <0 0xe6440000 0 0x2dd000>;
+ no-map;
+ };
+
+ llcc_lpi_mem: llcc-lpi-region@ff800000 {
+ reg = <0 0xff800000 0 0x600000>;
+ no-map;
+ };
+
+ /* Required for libcamera to allocate buffers when cma is used. */
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x30000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
+
+ sound {
+ compatible = "qcom,sm8550-sndcard", "qcom,sm8450-sndcard";
+ pinctrl-0 = <&i2s1_default>;
+ pinctrl-names = "default";
+
+ model = "Xiaomi-Pad6SPro";
+ audio-routing = "IN1_HPHL", "HPHL_OUT",
+ "IN2_HPHR", "HPHR_OUT",
+ "AMIC1", "MIC BIAS1",
+ "AMIC2", "MIC BIAS2",
+ "AMIC3", "MIC BIAS3",
+ "AMIC4", "MIC BIAS3",
+ "AMIC5", "MIC BIAS4",
+ "TX SWR_INPUT0", "ADC1_OUTPUT",
+ "TX SWR_INPUT1", "ADC2_OUTPUT",
+ "TX SWR_INPUT0", "ADC3_OUTPUT",
+ "TX SWR_INPUT1", "ADC4_OUTPUT";
+
+ secondary-i2s-dai-link {
+ link-name = "Secondary MI2S Playback";
+
+ cpu {
+ sound-dai = <&q6apmbedai SECONDARY_MI2S_RX>;
+ };
+
+ codec {
+ sound-dai = <&cs35l43_tll>, <&cs35l43_tlh>, <&cs35l43_trl>,
+ <&cs35l43_bll>, <&cs35l43_blh>, <&cs35l43_brl>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wcd-playback-dai-link {
+ link-name = "WCD Playback";
+
+ cpu {
+ sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+ };
+
+ codec {
+ sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wcd-capture-dai-link {
+ link-name = "WCD Capture";
+
+ cpu {
+ sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+ };
+
+ codec {
+ sound-dai = <&wcd938x 1>, <&swr2 0>, <&lpass_txmacro 0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ displayport-dai-link {
+ link-name = "DisplayPort Playback";
+
+ cpu {
+ sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
+ };
+
+ codec {
+ sound-dai = <&mdss_dp0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+ };
+
+ 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;
+ };
+
+ wcd938x: audio-codec {
+ compatible = "qcom,wcd9380-codec";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&wcd_default>;
+
+ qcom,micbias1-microvolt = <2750000>;
+ qcom,micbias2-microvolt = <2750000>;
+ qcom,micbias3-microvolt = <2750000>;
+ qcom,micbias4-microvolt = <2750000>;
+ qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
+ qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
+ qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
+ qcom,rx-device = <&wcd_rx>;
+ qcom,tx-device = <&wcd_tx>;
+
+ reset-gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+
+ vdd-buck-supply = <&vreg_l15b_1p8>;
+ vdd-rxtx-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l15b_1p8>;
+ vdd-mic-bias-supply = <&vreg_bob1>;
+
+ #sound-dai-cells = <1>;
+ };
+
+ wcn7850-pmu {
+ compatible = "qcom,wcn7850-pmu";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&wlan_en>, <&bt_default>, <&pmk8550_sleep_clk>;
+
+ wlan-enable-gpios = <&tlmm 80 GPIO_ACTIVE_HIGH>;
+ bt-enable-gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
+
+ vdd-supply = <&vreg_s5g_0p8>;
+ vddio-supply = <&vreg_l15b_1p8>;
+ vddaon-supply = <&vreg_s2g_0p8>;
+ vdddig-supply = <&vreg_s4e_0p9>;
+ vddrfa1p2-supply = <&vreg_s4g_1p3>;
+ vddrfa1p8-supply = <&vreg_s6g_1p8>;
+
+ 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_1p8: ldo7 {
+ regulator-name = "vreg_pmu_rfa_1p8";
+ };
+
+ vreg_pmu_pcie_0p9: ldo8 {
+ regulator-name = "vreg_pmu_pcie_0p9";
+ };
+
+ vreg_pmu_pcie_1p8: ldo9 {
+ regulator-name = "vreg_pmu_pcie_1p8";
+ };
+ };
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm8550-rpmh-regulators";
+ qcom,pmic-id = "b";
+
+ vdd-bob1-supply = <&vph_pwr>;
+ vdd-bob2-supply = <&vph_pwr>;
+ vdd-l1-l4-l10-supply = <&vreg_s6g_1p8>;
+ vdd-l2-l13-l14-supply = <&vreg_bob1>;
+ vdd-l3-supply = <&vreg_s4g_1p3>;
+ vdd-l5-l16-supply = <&vreg_bob1>;
+ vdd-l6-l7-supply = <&vreg_bob1>;
+ vdd-l8-l9-supply = <&vreg_bob1>;
+ vdd-l11-supply = <&vreg_s4g_1p3>;
+ vdd-l12-supply = <&vreg_s6g_1p8>;
+ vdd-l15-supply = <&vreg_s6g_1p8>;
+ vdd-l17-supply = <&vreg_bob2>;
+
+ vreg_bob1: bob1 {
+ regulator-name = "vreg_bob1";
+ regulator-min-microvolt = <3296000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for Camera Modules */
+ vreg_bob2: bob2 {
+ regulator-name = "vreg_bob2";
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <3296000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1b_1p8: ldo1 {
+ regulator-name = "vreg_l1b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2b_3p0: ldo2 {
+ regulator-name = "vreg_l2b_3p0";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4b_1p8: ldo4 {
+ regulator-name = "vreg_l4b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5b_3p1: ldo5 {
+ regulator-name = "vreg_l5b_3p1";
+ regulator-min-microvolt = <3104000>;
+ regulator-max-microvolt = <3104000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for Nanosic WN803x */
+ vreg_l6b_1p8: ldo6 {
+ regulator-name = "vreg_l6b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for Camera Modules */
+ vreg_l7b_1p8: ldo7 {
+ regulator-name = "vreg_l7b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for Semtech SX9371 */
+ vreg_l8b_1p8: ldo8 {
+ regulator-name = "vreg_l8b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for FPC1552 */
+ vreg_l9b_3p3: ldo9 {
+ regulator-name = "vreg_l9b_3p3";
+ regulator-min-microvolt = <3296000>;
+ regulator-max-microvolt = <3296000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10b_1p8: ldo10 {
+ regulator-name = "vreg_l10b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11b_1p2: ldo11 {
+ regulator-name = "vreg_l11b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b_1p8: ldo12 {
+ regulator-name = "vreg_l12b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for Nanosic WN803x */
+ vreg_l13b_3p3: ldo13 {
+ regulator-name = "vreg_l13b_3p3";
+ regulator-min-microvolt = <3296000>;
+ regulator-max-microvolt = <3296000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14b_3p2: ldo14 {
+ regulator-name = "vreg_l14b_3p2";
+ regulator-min-microvolt = <3200000>;
+ regulator-max-microvolt = <3200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b_1p8: ldo15 {
+ regulator-name = "vreg_l15b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l16b_2p8: ldo16 {
+ regulator-name = "vreg_l16b_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17b_2p5: ldo17 {
+ regulator-name = "vreg_l17b_2p5";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <2504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ vdd-l3-supply = <&vreg_s4e_0p9>;
+
+ vreg_l3c_0p91: ldo3 {
+ regulator-name = "vreg_l3c_0p9";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "d";
+
+ vdd-l1-supply = <&vreg_s4e_0p9>;
+
+ vreg_l1d_0p88: ldo1 {
+ regulator-name = "vreg_l1d_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-3 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "e";
+
+ vdd-l1-supply = <&vreg_s4e_0p9>;
+ vdd-l2-supply = <&vreg_s4e_0p9>;
+ vdd-l3-supply = <&vreg_s4g_1p3>;
+ vdd-s4-supply = <&vph_pwr>;
+ vdd-s5-supply = <&vph_pwr>;
+
+ vreg_s4e_0p9: smps4 {
+ regulator-name = "vreg_s4e_0p9";
+ regulator-min-microvolt = <904000>;
+ regulator-max-microvolt = <984000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s5e_1p1: smps5 {
+ regulator-name = "vreg_s5e_1p1";
+ regulator-min-microvolt = <1080000>;
+ regulator-max-microvolt = <1120000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1e_0p88: ldo1 {
+ regulator-name = "vreg_l1e_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2e_0p9: ldo2 {
+ regulator-name = "vreg_l2e_0p9";
+ regulator-min-microvolt = <904000>;
+ regulator-max-microvolt = <970000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3e_1p2: ldo3 {
+ regulator-name = "vreg_l3e_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-4 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "f";
+
+ vdd-l1-supply = <&vreg_s4e_0p9>;
+ vdd-l2-supply = <&vreg_s4e_0p9>;
+ vdd-l3-supply = <&vreg_s4e_0p9>;
+ vdd-s4-supply = <&vph_pwr>;
+
+ vreg_s4f_0p5: smps4 {
+ regulator-name = "vreg_s4f_0p5";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <700000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1f_0p9: ldo1 {
+ regulator-name = "vreg_l1f_0p9";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2f_0p88: ldo2 {
+ regulator-name = "vreg_l2f_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3f_0p91: ldo3 {
+ regulator-name = "vreg_l3f_0p91";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-5 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "g";
+
+ vdd-l1-supply = <&vreg_s4g_1p3>;
+ vdd-l2-supply = <&vreg_s4g_1p3>;
+ vdd-l3-supply = <&vreg_s4g_1p3>;
+ 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>;
+
+ vreg_s1g_1p2: smps1 {
+ regulator-name = "vreg_s1g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s2g_0p8: smps2 {
+ regulator-name = "vreg_s2g_0p8";
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for Display Panel */
+ vreg_s3g_0p7: smps3 {
+ regulator-name = "vreg_s3g_0p7";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <1900000>; //2004000
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for Camera Modules */
+ vreg_s4g_1p3: smps4 {
+ regulator-name = "vreg_s4g_1p3";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1408000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s5g_0p8: smps5 {
+ regulator-name = "vreg_s5g_0p8";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1004000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s6g_1p8: smps6 {
+ regulator-name = "vreg_s6g_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1g_1p2: ldo1 {
+ regulator-name = "vreg_l1g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2g_1p2: ldo2 {
+ regulator-name = "vreg_l2g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3g_1p2: ldo3 {
+ regulator-name = "vreg_l3g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-6 {
+ compatible = "qcom,pm8010-rpmh-regulators";
+ qcom,pmic-id = "m";
+
+ vdd-l1-l2-supply = <&vreg_s4g_1p3>;
+ vdd-l3-l4-supply = <&vreg_bob2>;
+ vdd-l5-supply = <&vreg_s6g_1p8>;
+ vdd-l6-supply = <&vreg_bob2>;
+ vdd-l7-supply = <&vreg_bob2>;
+
+ /* Xiaomi change for Camera Modules */
+ vreg_l1m_1p2: ldo1 {
+ regulator-name = "vreg_l1m_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for Camera Modules */
+ vreg_l2m_1p08: ldo2 {
+ regulator-name = "vreg_l2m_1p08";
+ regulator-min-microvolt = <1080000>;
+ regulator-max-microvolt = <1080000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3m_2p8: ldo3 {
+ regulator-name = "vreg_l3m_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4m_2p8: ldo4 {
+ regulator-name = "vreg_l4m_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5m_1p8: ldo5 {
+ regulator-name = "vreg_l5m_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for Camera Modules */
+ vreg_l6m_2p8: ldo6 {
+ regulator-name = "vreg_l6m_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ /* Xiaomi change for Camera Modules */
+ vreg_l7m_2p85: ldo7 {
+ regulator-name = "vreg_l7m_2p85";
+ regulator-min-microvolt = <2856000>;
+ regulator-max-microvolt = <2856000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&camss {
+ vdda-phy-supply = <&vreg_l1e_0p88>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ csiphy1_ep: endpoint {
+ data-lanes = <0>;
+ remote-endpoint = <&ov02b1b_ep>;
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+
+ csiphy3_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&s5kjn1_ep>;
+ };
+ };
+
+ port@4 {
+ reg = <4>;
+
+ csiphy4_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&ov32d40_ep>;
+ };
+ };
+ };
+};
+
+&cci0 {
+ status = "okay";
+};
+
+&cci0_i2c1 {
+ clock-frequency = <1000000>;
+
+ camera@10 {
+ compatible = "samsung,s5kjn1";
+ reg = <0x10>;
+
+ reset-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&cam2_default>, <&cam_rear_reset_default>;
+
+ clocks = <&camcc CAM_CC_MCLK2_CLK>;
+
+ orientation = <1>;
+ rotation = <0>;
+
+ lens-focus = <>9764>;
+
+ vddio-supply = <&vreg_l4b_1p8>;
+ vddd-supply = <&vreg_l2m_1p08>;
+ vdda-supply = <&vreg_l4m_2p8>;
+
+ port {
+ s5kjn1_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <857600000>;
+ remote-endpoint = <&csiphy3_ep>;
+ };
+ };
+ };
+
+ gt9764: camera-lens@c {
+ compatible = "giantec,gt9764";
+ reg = <0x0c>;
+
+ vin-supply = <&vreg_l4b_1p8>;
+ vdd-supply = <&vreg_l7m_2p85>;
+ dongwoon,clock-presc = <0>;
+ dongwoon,aac-timing = <0x6a>;
+ dongwoon,initial-focus = <0x200>;
+ dongwoon,move-delay-us = <7000>;
+ };
+};
+
+&cci1 {
+ status = "okay";
+};
+
+&cci1_i2c0 {
+ clock-frequency = <400000>;
+
+ camera@3c {
+ compatible = "ovti,ov02b1b";
+ reg = <0x3c>;
+
+ reset-gpios = <&tlmm 117 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&cam1_default>, <&cam_depth_reset_default>;
+
+ clocks = <&camcc CAM_CC_MCLK1_CLK>;
+
+ orientation = <1>;
+ rotation = <0>;
+
+ vddio-supply = <&vreg_l10b_1p8>;
+ avdd-supply = <&vreg_l6m_2p8>;
+
+ port {
+ ov02b1b_ep: endpoint {
+ data-lanes = <0>;
+ link-frequencies = /bits/ 64 <332800000>;
+ remote-endpoint = <&csiphy1_ep>;
+ };
+ };
+ };
+};
+
+&cci1_i2c1 {
+ clock-frequency = <1000000>;
+
+ camera@10 {
+ compatible = "ovti,ov32d40";
+ reg = <0x10>;
+
+ reset-gpios = <&tlmm 120 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&cam4_default>, <&cam_front_reset_default>;
+
+ clocks = <&camcc CAM_CC_MCLK4_CLK>;
+
+ orientation = <0>;
+ rotation = <0>;
+
+ vddio-supply = <&vreg_l5m_1p8>;
+ dvdd-supply = <&vreg_l1m_1p2>;
+ avdd-supply = <&vreg_l3m_2p8>;
+
+ port {
+ ov32d40_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <842400000>;
+ remote-endpoint = <&csiphy4_ep>;
+ };
+ };
+ };
+};
+
+&ipa {
+ qcom,gsi-loader = "self";
+ memory-region = <&ipa_fw_mem>;
+ firmware-name = "qcom/sm8550/sheng/ipa_fws.mbn";
+ status = "okay";
+};
+
+&gpi_dma1 {
+ status = "okay";
+};
+
+&gpi_dma2 {
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/sm8550/sheng/a740_zap.mbn";
+};
+
+&i2c0 {
+ clock-frequency = <400000>;
+ status = "okay";
+
+ typec-retimer@28 {
+ compatible = "parade,ps5169";
+ reg = <0x28>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&ps5169_reset_default>;
+
+ reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
+
+ orientation-switch;
+ retimer-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ redriver_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ redriver_ss_in: endpoint {
+ data-lanes = <3 2 1 0>;
+ remote-endpoint = <&usb_dp_qmpphy_out>;
+ };
+ };
+ };
+ };
+};
+
+&i2c1 {
+ status = "okay";
+
+ backlight: backlight@11 {
+ compatible = "kinetic,ktz8866a";
+ reg = <0x11>;
+ vin-supply = <&vph_pwr>;
+ enable-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>;
+ current-num-sinks = <5>;
+ kinetic,current-ramp-delay-ms = <256>;
+ kinetic,led-enable-ramp-delay-ms = <8>;
+ kinetic,enable-lcd-bias;
+ };
+};
+
+&i2c5 {
+ clock-frequency = <1000000>;
+ status = "okay";
+
+ cs35l43_trl: cs35l43@40 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x40>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <98 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "TRL";
+ cirrus,dsp-part-name = "trl-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+
+ cs35l43_tlh: cs35l43@41 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x41>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <99 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "TLH";
+ cirrus,dsp-part-name = "tlh-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+
+ cs35l43_tll: cs35l43@42 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x42>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <119 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "TLL";
+ cirrus,dsp-part-name = "tll-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+};
+
+&i2c8 {
+ clock-frequency = <1000000>;
+ status = "okay";
+
+ cs35l43_blh: cs35l43@40 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x40>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "BLH";
+ cirrus,dsp-part-name = "blh-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+
+ cs35l43_bll: cs35l43@41 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x41>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "BLL";
+ cirrus,dsp-part-name = "bll-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+
+ cs35l43_brl: cs35l43@42 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x42>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <85 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "BRL";
+ cirrus,dsp-part-name = "brl-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+};
+
+&i2c9 {
+ status = "okay";
+
+ nanosic_mcu@4c {
+ compatible = "nanosic,wn8030-sheng";
+ reg = <0x4c>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&nanosic_mcu_default>;
+
+ interrupt-parent = <&tlmm>;
+ interrupts = <62 IRQ_TYPE_EDGE_RISING>;
+
+ reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
+ sleep-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
+ status-gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
+
+ vddio-supply = <&vreg_l12b_1p8>;
+ dvdd-supply = <&vreg_l13b_3p3>;
+ };
+};
+
+&i2c_master_hub_0 {
+ status = "okay";
+};
+
+&i2c_hub_2 {
+ status = "okay";
+
+ typec-mux@42 {
+ compatible = "fcs,fsa4480";
+ reg = <0x42>;
+
+ vcc-supply = <&vreg_bob1>;
+
+ mode-switch;
+ orientation-switch;
+
+ port {
+ fsa4480_sbu_mux: endpoint {
+ remote-endpoint = <&pmic_glink_sbu>;
+ };
+ };
+ };
+};
+
+&iris {
+ status = "okay";
+
+ firmware-name = "qcom/sm8550/sheng/vpu30_4v.mbn";
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&vreg_l3e_1p2>;
+ qcom,dual-dsi-mode;
+ qcom,sync-dual-dsi;
+ qcom,master-dsi;
+ status = "okay";
+
+ display_panel: panel@0 {
+ compatible = "xiaomi,sheng-nt36532e", "novatek,nt36532e";
+ reg = <0>;
+
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&sde_dsi_active>;
+ pinctrl-1 = <&sde_dsi_suspend>;
+
+ vddio-supply = <&vreg_s3g_0p7>;
+ avdd-supply = <&bl_vddpos_5p8>;
+ avee-supply = <&bl_vddneg_5p8>;
+
+ reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+ backlight = <&backlight>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ panel_in_0: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ panel_in_1: endpoint {
+ remote-endpoint = <&mdss_dsi1_out>;
+ };
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel_in_0>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ vdds-supply = <&vreg_l1e_0p88>;
+ status = "okay";
+};
+
+&mdss_dsi1 {
+ vdda-supply = <&vreg_l3e_1p2>;
+ qcom,dual-dsi-mode;
+ qcom,sync-dual-dsi;
+ /* DSI1 is slave, so use DSI0 clocks */
+ assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
+ status = "okay";
+};
+
+&mdss_dsi1_out {
+ remote-endpoint = <&panel_in_1>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi1_phy {
+ vdds-supply = <&vreg_l1e_0p88>;
+ status = "okay";
+};
+
+&mdss_dp0 {
+ status = "okay";
+};
+
+&mdss_dp0_out {
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&pcie0 {
+ wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+ perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie0_default_state>;
+
+ status = "okay";
+};
+
+&pcieport0 {
+ wifi@0 {
+ compatible = "pci17cb,1107";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+ vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+ };
+};
+
+&pcie0_phy {
+ vdda-phy-supply = <&vreg_l1e_0p88>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&pm8010_n {
+ status = "disabled";
+};
+
+&pm8550_flash {
+ status = "okay";
+
+ led-0 {
+ function = LED_FUNCTION_FLASH;
+ color = <LED_COLOR_ID_WHITE>;
+ led-sources = <1>;
+ led-max-microamp = <400000>;
+ flash-max-microamp = <400000>;
+ flash-max-timeout-us = <300000>;
+ function-enumerator = <0>;
+ };
+};
+
+&pm8550_gpios {
+ volume_up_n: volume-up-n-state {
+ pins = "gpio6";
+ function = "normal";
+ power-source = <1>;
+ bias-pull-up;
+ input-enable;
+ };
+};
+
+&pm8550_pwm {
+ status = "okay";
+
+ multi-led {
+ color = <LED_COLOR_ID_RGB>;
+ function = LED_FUNCTION_STATUS;
+ max-brightness = <255>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led@1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led@2 {
+ reg = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+
+ led@3 {
+ reg = <3>;
+ color = <LED_COLOR_ID_BLUE>;
+ };
+ };
+};
+
+&pm8550b_eusb2_repeater {
+ vdd18-supply = <&vreg_l15b_1p8>;
+ vdd3-supply = <&vreg_l5b_3p1>;
+};
+
+&pm8550vs_c {
+ status = "okay";
+};
+
+&pm8550vs_d {
+ status = "okay";
+};
+
+&pm8550vs_e {
+ status = "okay";
+};
+
+&pm8550vs_g {
+ status = "okay";
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&pmk8550_gpios {
+ pmk8550_sleep_clk: sleep-clk-state {
+ pins = "gpio3";
+ function = "func1";
+ input-disable;
+ output-enable;
+ bias-disable;
+ power-source = <0>;
+ };
+};
+
+&pmk8550_rtc {
+ nvmem-cells = <&rtc_offset>;
+ nvmem-cell-names = "offset";
+};
+
+&pmk8550_sdam_2 {
+ rtc_offset: rtc-offset@bc {
+ reg = <0xbc 0x4>;
+ };
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&qupv3_id_1 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/sm8550/sheng/adsp.mbn",
+ "qcom/sm8550/sheng/adsp_dtb.mbn";
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/sm8550/sheng/cdsp.mbn",
+ "qcom/sm8550/sheng/cdsp_dtb.mbn";
+ status = "okay";
+};
+
+&sleep_clk {
+ clock-frequency = <32764>;
+};
+
+&spi4 {
+ status = "okay";
+
+ touchscreen@0 {
+ compatible = "novatek,NVT-ts-spi";
+ reg = <0>;
+
+ spi-max-frequency = <19200000>;
+ novatek,irq-gpio = <&tlmm 25 GPIO_ACTIVE_LOW>;
+
+ panel = <&display_panel>;
+
+ firmware-name = "novatek/novatek_nt36532_n81a_fw_csot.bin";
+ };
+};
+
+&swr1 {
+ status = "okay";
+
+ /* WCD9380 RX */
+ wcd_rx: codec@0,4 {
+ compatible = "sdw20217010d00";
+ reg = <0 4>;
+ qcom,rx-port-mapping = <1 2 3 4 5>;
+ };
+};
+
+&swr2 {
+ status = "okay";
+
+ /* WCD9380 TX */
+ wcd_tx: codec@0,3 {
+ compatible = "sdw20217010d00";
+ reg = <0 3>;
+ qcom,tx-port-mapping = <2 2 3 4>;
+ };
+};
+
+&tlmm {
+ gpio-reserved-ranges = <36 4>;
+
+ fpc_reset_low: fpc-reset-low-state {
+ pins = "gpio41";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ output-low;
+ };
+
+ fpc_reset_high: fpc-reset-high-state {
+ pins = "gpio41";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ output-high;
+ };
+
+ fpc_irq_active: fpc-irq-active-state {
+ pins = "gpio40";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ sde_dsi_active: sde-dsi-active-state {
+ pins = "gpio133";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ sde_dsi_suspend: sde-dsi-suspend-state {
+ pins = "gpio133";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ bt_default: bt-default-state {
+ bt-en-pins {
+ pins = "gpio81";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ sw-ctrl-pins {
+ pins = "gpio82";
+ function = "gpio";
+ bias-pull-down;
+ };
+ };
+
+ wlan_en: wlan-en-state {
+ pins = "gpio80";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+
+ qup_i2c8_data_clk: qup-i2c8-data-clk-state {
+ scl-pins {
+ pins = "gpio1";
+ function = "qup2_se0_l1_mirb";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ sda-pins {
+ pins = "gpio0";
+ function = "qup2_se0_l0_mirb";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ hall_sensor_default: hall-sensor-default-state {
+ pins = "gpio171", "gpio172";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ input-enable;
+ };
+
+ wcd_default: wcd-reset-n-active-state {
+ pins = "gpio108";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ output-low;
+ };
+
+ i2s1_default: i2s1-default-state {
+ sck-pins {
+ pins = "gpio121";
+ function = "i2s1_sck";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ data0-pins {
+ pins = "gpio122";
+ function = "i2s1_data0";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ ws-pins {
+ pins = "gpio123";
+ function = "i2s1_ws";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+
+ data1-pins {
+ pins = "gpio124";
+ function = "i2s1_data1";
+ drive-strength = <8>;
+ bias-disable;
+ output-high;
+ };
+ };
+
+ cam_rear_reset_default: cam-rear-reset-default-state {
+ pins = "gpio118";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam_depth_reset_default: cam-depth-reset-default-state {
+ pins = "gpio117";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam_front_reset_default: cam-front-reset-default-state {
+ pins = "gpio120";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ ps5169_reset_default: ps5169-reset-default-state {
+ pins = "gpio7";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ qup_i2c9_data_clk: qup-i2c9-data-clk-state {
+ /* SDA, SCL */
+ pins = "gpio60", "gpio61";
+ function = "qup2_se1";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ nanosic_mcu_default: nanosic-mcu-default-state {
+ status-pins {
+ pins = "gpio56";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ sleep-pins {
+ pins = "gpio57";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ reset-pins {
+ pins = "gpio58";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
+};
+
+&uart14 {
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn7850-bt";
+
+ local-bd-address = [ 24 00 00 00 5a ad ];
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+
+ max-speed = <3200000>;
+ };
+};
+
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
+ vcc-supply = <&vreg_l17b_2p5>;
+ vcc-max-microamp = <1300000>;
+ vccq-supply = <&vreg_l1g_1p2>;
+ vccq-max-microamp = <1200000>;
+ vdd-hba-supply = <&vreg_l3g_1p2>;
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l1d_0p88>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&usb_1 {
+ status = "okay";
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+ vdd-supply = <&vreg_l1e_0p88>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ phys = <&pm8550b_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_dp_qmpphy {
+ vdda-phy-supply = <&vreg_l3e_1p2>;
+ vdda-pll-supply = <&vreg_l3f_0p91>;
+
+ status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+ remote-endpoint = <&redriver_ss_in>;
+};
+
+&xo_board {
+ clock-frequency = <76800000>;
+};
--
2.54.0.windows.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
2026-07-21 14:21 [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng) code_0002
@ 2026-07-21 14:41 ` Konrad Dybcio
2026-07-21 14:41 ` Konrad Dybcio
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Konrad Dybcio @ 2026-07-21 14:41 UTC (permalink / raw)
To: code_0002, andersson
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel, map220v, code002-2
On 7/21/26 4:21 PM, code_0002@163.com wrote:
> From: map220v <map220v300@gmail.com>
>
> Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
>
> Signed-off-by: code002-2 <hiez832670@gmail.com>
> ---
You sent a v2 with no context and no changelog. Please follow:
https://docs.kernel.org/process/submitting-patches.html
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../boot/dts/qcom/sm8550-xiaomi-sheng.dts | 1788 +++++++++++++++++
> 2 files changed, 1789 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 6f33c4e2f..d8e485521 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -386,6 +386,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8550-mtp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8550-qrd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8550-samsung-q5q.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8550-sony-xperia-yodo-pdx234.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += sm8550-xiaomi-sheng.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8650-ayaneo-pocket-s2.dtb
>
> sm8650-hdk-display-card-dtbs := sm8650-hdk.dtb sm8650-hdk-display-card.dtbo
> diff --git a/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
> new file mode 100644
> index 000000000..170a67b37
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
> @@ -0,0 +1,1788 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2024, map220v <map220v300@gmail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/arm/qcom,ids.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +#include "sm8550.dtsi"
> +#include "pm8010.dtsi"
> +#include "pm8550.dtsi"
> +#include "pm8550b.dtsi"
> +#define PMK8550VE_SID 5
> +#include "pm8550ve.dtsi"
> +#include "pm8550vs.dtsi"
> +#include "pmk8550.dtsi"
> +
> +/delete-node/ &rmtfs_mem;
> +/delete-node/ &adspslpi_mem;
> +/delete-node/ &xbl_dt_log_merged_mem;
> +/delete-node/ &hwfence_shbuf;
> +
> +/*
> + * Free unused regions, these regions don't exist in downstream
> + * dts, and they aren't removed from DDR Memory Map by UEFI.
> + */
> +/delete-node/ &hyp_tags_reserved_mem;
> +/delete-node/ &cdsp_secure_heap_mem;
> +/delete-node/ &trust_ui_vm_mem;
> +/delete-node/ &trust_ui_vm_dump;
> +/delete-node/ &trust_ui_vm_qrtr;
> +/delete-node/ &trust_ui_vm_vblk0_ring;
> +/delete-node/ &trust_ui_vm_vblk1_ring;
> +/delete-node/ &trust_ui_vm_swiotlb;
> +/delete-node/ &oem_vm_vblk0_ring;
> +/delete-node/ &oem_vm_swiotlb;
> +/delete-node/ &oem_vm_mem;
> +/delete-node/ &hyp_ext_tags_mem;
> +/delete-node/ &hyp_ext_reserved_mem;
> +
> +/* Xiaomi uses alternative gpio's for i2c8 */
> +/delete-node/ &qup_i2c8_data_clk;
> +
> +/* Xiaomi change for Nanosic WN803x */
> +/delete-node/ &qup_i2c9_data_clk;
> +
> +/* SM8550P doesn't have Modem DSP */
> +/delete-node/ &mpss_dsm_mem;
> +/delete-node/ &mpss_mem;
> +/delete-node/ &q6_mpss_dtb_mem;
> +/delete-node/ &remoteproc_mpss;
> +
> +/ {
> + model = "Xiaomi Pad 6S Pro 12.4";
> + compatible = "xiaomi,sheng", "qcom,sm8550";
> + chassis-type = "tablet";
> + qcom,msm-id = <536 0x20000>; /* SM8550P v2.0 */
> + qcom,board-id = <0x10008 0>;
> +
> + aliases {
> + serial0 = &uart7;
> + serial1 = &uart14;
> + };
> +
> + chosen {
> + /* Required for libcamera to allocate buffers when udmabuf is used. */
> + bootargs = "udmabuf.size_limit_mb=256";
> + };
> +
> + fingerprint_fpc {
> + compatible = "fpc,fpc1020";
> + interrupt-parent = <&tlmm>;
> + interrupts = <40 IRQ_TYPE_EDGE_RISING>;
> + fpc,gpio_rst = <&tlmm 41 GPIO_ACTIVE_HIGH>;
> + fpc,gpio_irq = <&tlmm 40 GPIO_ACTIVE_HIGH>;
> + irq-gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
> + fp_vdd_vreg-supply = <&vreg_l9b_3p3>;
> +
> + pinctrl-names = "fpc1020_reset_reset",
> + "fpc1020_reset_active",
> + "fpc1020_irq_active";
> + pinctrl-0 = <&fpc_reset_low>;
> + pinctrl-1 = <&fpc_reset_high>;
> + pinctrl-2 = <&fpc_irq_active>;
> + };
> +
> + bl_vddpos_5p8: bl-vddpos-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "bl_vddpos_5p8";
> + regulator-min-microvolt = <5800000>;
> + regulator-max-microvolt = <5800000>;
> + regulator-enable-ramp-delay = <233>;
> + gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + bl_vddneg_5p8: bl-vddneg-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "bl_vddneg_5p8";
> + regulator-min-microvolt = <5800000>;
> + regulator-max-microvolt = <5800000>;
> + regulator-enable-ramp-delay = <233>;
> + gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + pinctrl-0 = <&volume_up_n>, <&hall_sensor_default>;
> + pinctrl-names = "default";
> +
> + key-volume-up {
> + label = "Volume Up";
> + linux,code = <KEY_VOLUMEUP>;
> + gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
> + debounce-interval = <15>;
> + linux,can-disable;
> + wakeup-source;
> + };
> +
> + event-hall-sensor {
> + label = "Hall Effect Sensor";
> + gpios = <&tlmm 171 GPIO_ACTIVE_LOW>;
> + linux,input-type = <EV_SW>;
> + linux,code = <SW_LID>;
> + debounce-interval = <15>;
> + linux,can-disable;
> + wakeup-source;
> + };
> +
> + event-tablet-mode {
> + label = "Tablet Mode Switch";
> + gpios = <&tlmm 172 GPIO_ACTIVE_LOW>;
> + linux,input-type = <EV_SW>;
> + linux,code = <SW_TABLET_MODE>;
> + debounce-interval = <15>;
> + linux,can-disable;
> + wakeup-source;
> + };
> + };
> +
> + pmic-glink {
> + compatible = "xiaomi,sm8550-pmic-glink", "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + orientation-gpios = <&tlmm 11 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_ss_in: endpoint {
> + remote-endpoint = <&redriver_ss_out>;
> + };
> + };
> +
> + port@2 {
> + reg = <2>;
> +
> + pmic_glink_sbu: endpoint {
> + remote-endpoint = <&fsa4480_sbu_mux>;
> + };
> + };
> + };
> + };
> + };
> +
> + reserved-memory {
> + xbl_ramdump_mem: xbl-ramdump-region@81200000 {
> + reg = <0 0x81200000 0 0x280000>;
> + no-map;
> + };
> +
> + xbl_dt_log_mem: xbl-dt-log-region@81a00000 {
> + reg = <0 0x81a00000 0 0x40000>;
> + no-map;
> + };
> +
> + aop_image_mem: aop-image-region@81c00000 {
> + reg = <0 0x81c00000 0 0x60000>;
> + no-map;
> + };
> +
> + adspslpi_mem: adspslpi-region@9ea00000 {
> + reg = <0 0x9ea00000 0 0x4680000>;
> + no-map;
> + };
> +
> + rmtfs_mem: rmtfs-region@ccd00000 {
> + compatible = "qcom,rmtfs-mem";
> + reg = <0x0 0xccd00000 0x0 0x280000>;
> + no-map;
> +
> + qcom,client-id = <1>;
> + };
> +
> + hwfence_shbuf: hwfence-shbuf-region@e6440000 {
> + reg = <0 0xe6440000 0 0x2dd000>;
> + no-map;
> + };
> +
> + llcc_lpi_mem: llcc-lpi-region@ff800000 {
> + reg = <0 0xff800000 0 0x600000>;
> + no-map;
> + };
> +
> + /* Required for libcamera to allocate buffers when cma is used. */
> + linux,cma {
> + compatible = "shared-dma-pool";
> + size = <0x0 0x30000000>;
> + reusable;
> + linux,cma-default;
> + };
> + };
> +
> + sound {
> + compatible = "qcom,sm8550-sndcard", "qcom,sm8450-sndcard";
> + pinctrl-0 = <&i2s1_default>;
> + pinctrl-names = "default";
> +
> + model = "Xiaomi-Pad6SPro";
> + audio-routing = "IN1_HPHL", "HPHL_OUT",
> + "IN2_HPHR", "HPHR_OUT",
> + "AMIC1", "MIC BIAS1",
> + "AMIC2", "MIC BIAS2",
> + "AMIC3", "MIC BIAS3",
> + "AMIC4", "MIC BIAS3",
> + "AMIC5", "MIC BIAS4",
> + "TX SWR_INPUT0", "ADC1_OUTPUT",
> + "TX SWR_INPUT1", "ADC2_OUTPUT",
> + "TX SWR_INPUT0", "ADC3_OUTPUT",
> + "TX SWR_INPUT1", "ADC4_OUTPUT";
> +
> + secondary-i2s-dai-link {
> + link-name = "Secondary MI2S Playback";
> +
> + cpu {
> + sound-dai = <&q6apmbedai SECONDARY_MI2S_RX>;
> + };
> +
> + codec {
> + sound-dai = <&cs35l43_tll>, <&cs35l43_tlh>, <&cs35l43_trl>,
> + <&cs35l43_bll>, <&cs35l43_blh>, <&cs35l43_brl>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> +
> + wcd-playback-dai-link {
> + link-name = "WCD Playback";
> +
> + cpu {
> + sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
> + };
> +
> + codec {
> + sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> +
> + wcd-capture-dai-link {
> + link-name = "WCD Capture";
> +
> + cpu {
> + sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
> + };
> +
> + codec {
> + sound-dai = <&wcd938x 1>, <&swr2 0>, <&lpass_txmacro 0>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> +
> + displayport-dai-link {
> + link-name = "DisplayPort Playback";
> +
> + cpu {
> + sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
> + };
> +
> + codec {
> + sound-dai = <&mdss_dp0>;
> + };
> +
> + platform {
> + sound-dai = <&q6apm>;
> + };
> + };
> + };
> +
> + 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;
> + };
> +
> + wcd938x: audio-codec {
> + compatible = "qcom,wcd9380-codec";
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&wcd_default>;
> +
> + qcom,micbias1-microvolt = <2750000>;
> + qcom,micbias2-microvolt = <2750000>;
> + qcom,micbias3-microvolt = <2750000>;
> + qcom,micbias4-microvolt = <2750000>;
> + qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
> + qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
> + qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
> + qcom,rx-device = <&wcd_rx>;
> + qcom,tx-device = <&wcd_tx>;
> +
> + reset-gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
> +
> + vdd-buck-supply = <&vreg_l15b_1p8>;
> + vdd-rxtx-supply = <&vreg_l15b_1p8>;
> + vdd-io-supply = <&vreg_l15b_1p8>;
> + vdd-mic-bias-supply = <&vreg_bob1>;
> +
> + #sound-dai-cells = <1>;
> + };
> +
> + wcn7850-pmu {
> + compatible = "qcom,wcn7850-pmu";
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&wlan_en>, <&bt_default>, <&pmk8550_sleep_clk>;
> +
> + wlan-enable-gpios = <&tlmm 80 GPIO_ACTIVE_HIGH>;
> + bt-enable-gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
> +
> + vdd-supply = <&vreg_s5g_0p8>;
> + vddio-supply = <&vreg_l15b_1p8>;
> + vddaon-supply = <&vreg_s2g_0p8>;
> + vdddig-supply = <&vreg_s4e_0p9>;
> + vddrfa1p2-supply = <&vreg_s4g_1p3>;
> + vddrfa1p8-supply = <&vreg_s6g_1p8>;
> +
> + 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_1p8: ldo7 {
> + regulator-name = "vreg_pmu_rfa_1p8";
> + };
> +
> + vreg_pmu_pcie_0p9: ldo8 {
> + regulator-name = "vreg_pmu_pcie_0p9";
> + };
> +
> + vreg_pmu_pcie_1p8: ldo9 {
> + regulator-name = "vreg_pmu_pcie_1p8";
> + };
> + };
> + };
> +};
> +
> +&apps_rsc {
> + regulators-0 {
> + compatible = "qcom,pm8550-rpmh-regulators";
> + qcom,pmic-id = "b";
> +
> + vdd-bob1-supply = <&vph_pwr>;
> + vdd-bob2-supply = <&vph_pwr>;
> + vdd-l1-l4-l10-supply = <&vreg_s6g_1p8>;
> + vdd-l2-l13-l14-supply = <&vreg_bob1>;
> + vdd-l3-supply = <&vreg_s4g_1p3>;
> + vdd-l5-l16-supply = <&vreg_bob1>;
> + vdd-l6-l7-supply = <&vreg_bob1>;
> + vdd-l8-l9-supply = <&vreg_bob1>;
> + vdd-l11-supply = <&vreg_s4g_1p3>;
> + vdd-l12-supply = <&vreg_s6g_1p8>;
> + vdd-l15-supply = <&vreg_s6g_1p8>;
> + vdd-l17-supply = <&vreg_bob2>;
> +
> + vreg_bob1: bob1 {
> + regulator-name = "vreg_bob1";
> + regulator-min-microvolt = <3296000>;
> + regulator-max-microvolt = <3960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for Camera Modules */
> + vreg_bob2: bob2 {
> + regulator-name = "vreg_bob2";
> + regulator-min-microvolt = <2704000>;
> + regulator-max-microvolt = <3296000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1b_1p8: ldo1 {
> + regulator-name = "vreg_l1b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2b_3p0: ldo2 {
> + regulator-name = "vreg_l2b_3p0";
> + regulator-min-microvolt = <3008000>;
> + regulator-max-microvolt = <3008000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l4b_1p8: ldo4 {
> + regulator-name = "vreg_l4b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l5b_3p1: ldo5 {
> + regulator-name = "vreg_l5b_3p1";
> + regulator-min-microvolt = <3104000>;
> + regulator-max-microvolt = <3104000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for Nanosic WN803x */
> + vreg_l6b_1p8: ldo6 {
> + regulator-name = "vreg_l6b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for Camera Modules */
> + vreg_l7b_1p8: ldo7 {
> + regulator-name = "vreg_l7b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for Semtech SX9371 */
> + vreg_l8b_1p8: ldo8 {
> + regulator-name = "vreg_l8b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for FPC1552 */
> + vreg_l9b_3p3: ldo9 {
> + regulator-name = "vreg_l9b_3p3";
> + regulator-min-microvolt = <3296000>;
> + regulator-max-microvolt = <3296000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l10b_1p8: ldo10 {
> + regulator-name = "vreg_l10b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l11b_1p2: ldo11 {
> + regulator-name = "vreg_l11b_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1504000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l12b_1p8: ldo12 {
> + regulator-name = "vreg_l12b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for Nanosic WN803x */
> + vreg_l13b_3p3: ldo13 {
> + regulator-name = "vreg_l13b_3p3";
> + regulator-min-microvolt = <3296000>;
> + regulator-max-microvolt = <3296000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l14b_3p2: ldo14 {
> + regulator-name = "vreg_l14b_3p2";
> + regulator-min-microvolt = <3200000>;
> + regulator-max-microvolt = <3200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l15b_1p8: ldo15 {
> + regulator-name = "vreg_l15b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l16b_2p8: ldo16 {
> + regulator-name = "vreg_l16b_2p8";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l17b_2p5: ldo17 {
> + regulator-name = "vreg_l17b_2p5";
> + regulator-min-microvolt = <2504000>;
> + regulator-max-microvolt = <2504000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-1 {
> + compatible = "qcom,pm8550vs-rpmh-regulators";
> + qcom,pmic-id = "c";
> +
> + vdd-l3-supply = <&vreg_s4e_0p9>;
> +
> + vreg_l3c_0p91: ldo3 {
> + regulator-name = "vreg_l3c_0p9";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-2 {
> + compatible = "qcom,pm8550vs-rpmh-regulators";
> + qcom,pmic-id = "d";
> +
> + vdd-l1-supply = <&vreg_s4e_0p9>;
> +
> + vreg_l1d_0p88: ldo1 {
> + regulator-name = "vreg_l1d_0p88";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <920000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-3 {
> + compatible = "qcom,pm8550vs-rpmh-regulators";
> + qcom,pmic-id = "e";
> +
> + vdd-l1-supply = <&vreg_s4e_0p9>;
> + vdd-l2-supply = <&vreg_s4e_0p9>;
> + vdd-l3-supply = <&vreg_s4g_1p3>;
> + vdd-s4-supply = <&vph_pwr>;
> + vdd-s5-supply = <&vph_pwr>;
> +
> + vreg_s4e_0p9: smps4 {
> + regulator-name = "vreg_s4e_0p9";
> + regulator-min-microvolt = <904000>;
> + regulator-max-microvolt = <984000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s5e_1p1: smps5 {
> + regulator-name = "vreg_s5e_1p1";
> + regulator-min-microvolt = <1080000>;
> + regulator-max-microvolt = <1120000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1e_0p88: ldo1 {
> + regulator-name = "vreg_l1e_0p88";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <880000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2e_0p9: ldo2 {
> + regulator-name = "vreg_l2e_0p9";
> + regulator-min-microvolt = <904000>;
> + regulator-max-microvolt = <970000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3e_1p2: ldo3 {
> + regulator-name = "vreg_l3e_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-4 {
> + compatible = "qcom,pm8550ve-rpmh-regulators";
> + qcom,pmic-id = "f";
> +
> + vdd-l1-supply = <&vreg_s4e_0p9>;
> + vdd-l2-supply = <&vreg_s4e_0p9>;
> + vdd-l3-supply = <&vreg_s4e_0p9>;
> + vdd-s4-supply = <&vph_pwr>;
> +
> + vreg_s4f_0p5: smps4 {
> + regulator-name = "vreg_s4f_0p5";
> + regulator-min-microvolt = <500000>;
> + regulator-max-microvolt = <700000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1f_0p9: ldo1 {
> + regulator-name = "vreg_l1f_0p9";
> + regulator-min-microvolt = <912000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2f_0p88: ldo2 {
> + regulator-name = "vreg_l2f_0p88";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3f_0p91: ldo3 {
> + regulator-name = "vreg_l3f_0p91";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-5 {
> + compatible = "qcom,pm8550vs-rpmh-regulators";
> + qcom,pmic-id = "g";
> +
> + vdd-l1-supply = <&vreg_s4g_1p3>;
> + vdd-l2-supply = <&vreg_s4g_1p3>;
> + vdd-l3-supply = <&vreg_s4g_1p3>;
> + 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>;
> +
> + vreg_s1g_1p2: smps1 {
> + regulator-name = "vreg_s1g_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1300000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s2g_0p8: smps2 {
> + regulator-name = "vreg_s2g_0p8";
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <1000000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for Display Panel */
> + vreg_s3g_0p7: smps3 {
> + regulator-name = "vreg_s3g_0p7";
> + regulator-min-microvolt = <600000>;
> + regulator-max-microvolt = <1900000>; //2004000
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for Camera Modules */
> + vreg_s4g_1p3: smps4 {
> + regulator-name = "vreg_s4g_1p3";
> + regulator-min-microvolt = <1256000>;
> + regulator-max-microvolt = <1408000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s5g_0p8: smps5 {
> + regulator-name = "vreg_s5g_0p8";
> + regulator-min-microvolt = <500000>;
> + regulator-max-microvolt = <1004000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s6g_1p8: smps6 {
> + regulator-name = "vreg_s6g_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <2000000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1g_1p2: ldo1 {
> + regulator-name = "vreg_l1g_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2g_1p2: ldo2 {
> + regulator-name = "vreg_l2g_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3g_1p2: ldo3 {
> + regulator-name = "vreg_l3g_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-6 {
> + compatible = "qcom,pm8010-rpmh-regulators";
> + qcom,pmic-id = "m";
> +
> + vdd-l1-l2-supply = <&vreg_s4g_1p3>;
> + vdd-l3-l4-supply = <&vreg_bob2>;
> + vdd-l5-supply = <&vreg_s6g_1p8>;
> + vdd-l6-supply = <&vreg_bob2>;
> + vdd-l7-supply = <&vreg_bob2>;
> +
> + /* Xiaomi change for Camera Modules */
> + vreg_l1m_1p2: ldo1 {
> + regulator-name = "vreg_l1m_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for Camera Modules */
> + vreg_l2m_1p08: ldo2 {
> + regulator-name = "vreg_l2m_1p08";
> + regulator-min-microvolt = <1080000>;
> + regulator-max-microvolt = <1080000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3m_2p8: ldo3 {
> + regulator-name = "vreg_l3m_2p8";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l4m_2p8: ldo4 {
> + regulator-name = "vreg_l4m_2p8";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l5m_1p8: ldo5 {
> + regulator-name = "vreg_l5m_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for Camera Modules */
> + vreg_l6m_2p8: ldo6 {
> + regulator-name = "vreg_l6m_2p8";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + /* Xiaomi change for Camera Modules */
> + vreg_l7m_2p85: ldo7 {
> + regulator-name = "vreg_l7m_2p85";
> + regulator-min-microvolt = <2856000>;
> + regulator-max-microvolt = <2856000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +};
> +
> +&camss {
> + vdda-phy-supply = <&vreg_l1e_0p88>;
> + vdda-pll-supply = <&vreg_l3e_1p2>;
> +
> + status = "okay";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@1 {
> + reg = <1>;
> +
> + csiphy1_ep: endpoint {
> + data-lanes = <0>;
> + remote-endpoint = <&ov02b1b_ep>;
> + };
> + };
> +
> + port@3 {
> + reg = <3>;
> +
> + csiphy3_ep: endpoint {
> + data-lanes = <0 1 2 3>;
> + remote-endpoint = <&s5kjn1_ep>;
> + };
> + };
> +
> + port@4 {
> + reg = <4>;
> +
> + csiphy4_ep: endpoint {
> + data-lanes = <0 1 2 3>;
> + remote-endpoint = <&ov32d40_ep>;
> + };
> + };
> + };
> +};
> +
> +&cci0 {
> + status = "okay";
> +};
> +
> +&cci0_i2c1 {
> + clock-frequency = <1000000>;
> +
> + camera@10 {
> + compatible = "samsung,s5kjn1";
> + reg = <0x10>;
> +
> + reset-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&cam2_default>, <&cam_rear_reset_default>;
> +
> + clocks = <&camcc CAM_CC_MCLK2_CLK>;
> +
> + orientation = <1>;
> + rotation = <0>;
> +
> + lens-focus = <>9764>;
> +
> + vddio-supply = <&vreg_l4b_1p8>;
> + vddd-supply = <&vreg_l2m_1p08>;
> + vdda-supply = <&vreg_l4m_2p8>;
> +
> + port {
> + s5kjn1_ep: endpoint {
> + data-lanes = <0 1 2 3>;
> + link-frequencies = /bits/ 64 <857600000>;
> + remote-endpoint = <&csiphy3_ep>;
> + };
> + };
> + };
> +
> + gt9764: camera-lens@c {
> + compatible = "giantec,gt9764";
> + reg = <0x0c>;
> +
> + vin-supply = <&vreg_l4b_1p8>;
> + vdd-supply = <&vreg_l7m_2p85>;
> + dongwoon,clock-presc = <0>;
> + dongwoon,aac-timing = <0x6a>;
> + dongwoon,initial-focus = <0x200>;
> + dongwoon,move-delay-us = <7000>;
> + };
> +};
> +
> +&cci1 {
> + status = "okay";
> +};
> +
> +&cci1_i2c0 {
> + clock-frequency = <400000>;
> +
> + camera@3c {
> + compatible = "ovti,ov02b1b";
> + reg = <0x3c>;
> +
> + reset-gpios = <&tlmm 117 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&cam1_default>, <&cam_depth_reset_default>;
> +
> + clocks = <&camcc CAM_CC_MCLK1_CLK>;
> +
> + orientation = <1>;
> + rotation = <0>;
> +
> + vddio-supply = <&vreg_l10b_1p8>;
> + avdd-supply = <&vreg_l6m_2p8>;
> +
> + port {
> + ov02b1b_ep: endpoint {
> + data-lanes = <0>;
> + link-frequencies = /bits/ 64 <332800000>;
> + remote-endpoint = <&csiphy1_ep>;
> + };
> + };
> + };
> +};
> +
> +&cci1_i2c1 {
> + clock-frequency = <1000000>;
> +
> + camera@10 {
> + compatible = "ovti,ov32d40";
> + reg = <0x10>;
> +
> + reset-gpios = <&tlmm 120 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&cam4_default>, <&cam_front_reset_default>;
> +
> + clocks = <&camcc CAM_CC_MCLK4_CLK>;
> +
> + orientation = <0>;
> + rotation = <0>;
> +
> + vddio-supply = <&vreg_l5m_1p8>;
> + dvdd-supply = <&vreg_l1m_1p2>;
> + avdd-supply = <&vreg_l3m_2p8>;
> +
> + port {
> + ov32d40_ep: endpoint {
> + data-lanes = <0 1 2 3>;
> + link-frequencies = /bits/ 64 <842400000>;
> + remote-endpoint = <&csiphy4_ep>;
> + };
> + };
> + };
> +};
> +
> +&ipa {
> + qcom,gsi-loader = "self";
> + memory-region = <&ipa_fw_mem>;
> + firmware-name = "qcom/sm8550/sheng/ipa_fws.mbn";
> + status = "okay";
> +};
> +
> +&gpi_dma1 {
> + status = "okay";
> +};
> +
> +&gpi_dma2 {
> + status = "okay";
> +};
> +
> +&gpu {
> + status = "okay";
> +};
> +
> +&gpu_zap_shader {
> + firmware-name = "qcom/sm8550/sheng/a740_zap.mbn";
> +};
> +
> +&i2c0 {
> + clock-frequency = <400000>;
> + status = "okay";
> +
> + typec-retimer@28 {
> + compatible = "parade,ps5169";
> + reg = <0x28>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&ps5169_reset_default>;
> +
> + reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
> +
> + orientation-switch;
> + retimer-switch;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + redriver_ss_out: endpoint {
> + remote-endpoint = <&pmic_glink_ss_in>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + redriver_ss_in: endpoint {
> + data-lanes = <3 2 1 0>;
> + remote-endpoint = <&usb_dp_qmpphy_out>;
> + };
> + };
> + };
> + };
> +};
> +
> +&i2c1 {
> + status = "okay";
> +
> + backlight: backlight@11 {
> + compatible = "kinetic,ktz8866a";
> + reg = <0x11>;
> + vin-supply = <&vph_pwr>;
> + enable-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>;
> + current-num-sinks = <5>;
> + kinetic,current-ramp-delay-ms = <256>;
> + kinetic,led-enable-ramp-delay-ms = <8>;
> + kinetic,enable-lcd-bias;
> + };
> +};
> +
> +&i2c5 {
> + clock-frequency = <1000000>;
> + status = "okay";
> +
> + cs35l43_trl: cs35l43@40 {
> + compatible = "cirrus,cs35l43";
> + reg = <0x40>;
> + interrupt-parent = <&tlmm>;
> + interrupts = <98 IRQ_TYPE_LEVEL_LOW>;
> + reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
> + #sound-dai-cells = <0>;
> + sound-name-prefix = "TRL";
> + cirrus,dsp-part-name = "trl-cs35l43";
> + cirrus,vpbr-thld = <8>;
> + cirrus,vpbr-max-att = <3>;
> + cirrus,vpbr-atk-vol = <5>;
> + cirrus,vpbr-atk-rate = <0>;
> + cirrus,vpbr-wait = <0>;
> + cirrus,vpbr-rel-rate = <0>;
> + cirrus,vpbr-enable = <1>;
> + cirrus,gpio2-src-sel = <4>;
> + cirrus,asp-sdout-hiz = <3>;
> + cirrus,bst-ipk-ma = <4000>;
> + };
> +
> + cs35l43_tlh: cs35l43@41 {
> + compatible = "cirrus,cs35l43";
> + reg = <0x41>;
> + interrupt-parent = <&tlmm>;
> + interrupts = <99 IRQ_TYPE_LEVEL_LOW>;
> + reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
> + #sound-dai-cells = <0>;
> + sound-name-prefix = "TLH";
> + cirrus,dsp-part-name = "tlh-cs35l43";
> + cirrus,vpbr-thld = <8>;
> + cirrus,vpbr-max-att = <3>;
> + cirrus,vpbr-atk-vol = <5>;
> + cirrus,vpbr-atk-rate = <0>;
> + cirrus,vpbr-wait = <0>;
> + cirrus,vpbr-rel-rate = <0>;
> + cirrus,vpbr-enable = <1>;
> + cirrus,gpio2-src-sel = <4>;
> + cirrus,asp-sdout-hiz = <3>;
> + cirrus,bst-ipk-ma = <4000>;
> + };
> +
> + cs35l43_tll: cs35l43@42 {
> + compatible = "cirrus,cs35l43";
> + reg = <0x42>;
> + interrupt-parent = <&tlmm>;
> + interrupts = <119 IRQ_TYPE_LEVEL_LOW>;
> + reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
> + #sound-dai-cells = <0>;
> + sound-name-prefix = "TLL";
> + cirrus,dsp-part-name = "tll-cs35l43";
> + cirrus,vpbr-thld = <8>;
> + cirrus,vpbr-max-att = <3>;
> + cirrus,vpbr-atk-vol = <5>;
> + cirrus,vpbr-atk-rate = <0>;
> + cirrus,vpbr-wait = <0>;
> + cirrus,vpbr-rel-rate = <0>;
> + cirrus,vpbr-enable = <1>;
> + cirrus,gpio2-src-sel = <4>;
> + cirrus,asp-sdout-hiz = <3>;
> + cirrus,bst-ipk-ma = <4000>;
> + };
> +};
> +
> +&i2c8 {
> + clock-frequency = <1000000>;
> + status = "okay";
> +
> + cs35l43_blh: cs35l43@40 {
> + compatible = "cirrus,cs35l43";
> + reg = <0x40>;
> + interrupt-parent = <&tlmm>;
> + interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
> + reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
> + #sound-dai-cells = <0>;
> + sound-name-prefix = "BLH";
> + cirrus,dsp-part-name = "blh-cs35l43";
> + cirrus,vpbr-thld = <8>;
> + cirrus,vpbr-max-att = <3>;
> + cirrus,vpbr-atk-vol = <5>;
> + cirrus,vpbr-atk-rate = <0>;
> + cirrus,vpbr-wait = <0>;
> + cirrus,vpbr-rel-rate = <0>;
> + cirrus,vpbr-enable = <1>;
> + cirrus,gpio2-src-sel = <4>;
> + cirrus,asp-sdout-hiz = <3>;
> + cirrus,bst-ipk-ma = <4000>;
> + };
> +
> + cs35l43_bll: cs35l43@41 {
> + compatible = "cirrus,cs35l43";
> + reg = <0x41>;
> + interrupt-parent = <&tlmm>;
> + interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
> + reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
> + #sound-dai-cells = <0>;
> + sound-name-prefix = "BLL";
> + cirrus,dsp-part-name = "bll-cs35l43";
> + cirrus,vpbr-thld = <8>;
> + cirrus,vpbr-max-att = <3>;
> + cirrus,vpbr-atk-vol = <5>;
> + cirrus,vpbr-atk-rate = <0>;
> + cirrus,vpbr-wait = <0>;
> + cirrus,vpbr-rel-rate = <0>;
> + cirrus,vpbr-enable = <1>;
> + cirrus,gpio2-src-sel = <4>;
> + cirrus,asp-sdout-hiz = <3>;
> + cirrus,bst-ipk-ma = <4000>;
> + };
> +
> + cs35l43_brl: cs35l43@42 {
> + compatible = "cirrus,cs35l43";
> + reg = <0x42>;
> + interrupt-parent = <&tlmm>;
> + interrupts = <85 IRQ_TYPE_LEVEL_LOW>;
> + reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
> + #sound-dai-cells = <0>;
> + sound-name-prefix = "BRL";
> + cirrus,dsp-part-name = "brl-cs35l43";
> + cirrus,vpbr-thld = <8>;
> + cirrus,vpbr-max-att = <3>;
> + cirrus,vpbr-atk-vol = <5>;
> + cirrus,vpbr-atk-rate = <0>;
> + cirrus,vpbr-wait = <0>;
> + cirrus,vpbr-rel-rate = <0>;
> + cirrus,vpbr-enable = <1>;
> + cirrus,gpio2-src-sel = <4>;
> + cirrus,asp-sdout-hiz = <3>;
> + cirrus,bst-ipk-ma = <4000>;
> + };
> +};
> +
> +&i2c9 {
> + status = "okay";
> +
> + nanosic_mcu@4c {
> + compatible = "nanosic,wn8030-sheng";
> + reg = <0x4c>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&nanosic_mcu_default>;
> +
> + interrupt-parent = <&tlmm>;
> + interrupts = <62 IRQ_TYPE_EDGE_RISING>;
> +
> + reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
> + sleep-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
> + status-gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
> +
> + vddio-supply = <&vreg_l12b_1p8>;
> + dvdd-supply = <&vreg_l13b_3p3>;
> + };
> +};
> +
> +&i2c_master_hub_0 {
> + status = "okay";
> +};
> +
> +&i2c_hub_2 {
> + status = "okay";
> +
> + typec-mux@42 {
> + compatible = "fcs,fsa4480";
> + reg = <0x42>;
> +
> + vcc-supply = <&vreg_bob1>;
> +
> + mode-switch;
> + orientation-switch;
> +
> + port {
> + fsa4480_sbu_mux: endpoint {
> + remote-endpoint = <&pmic_glink_sbu>;
> + };
> + };
> + };
> +};
> +
> +&iris {
> + status = "okay";
> +
> + firmware-name = "qcom/sm8550/sheng/vpu30_4v.mbn";
> +};
> +
> +&mdss {
> + status = "okay";
> +};
> +
> +&mdss_dsi0 {
> + vdda-supply = <&vreg_l3e_1p2>;
> + qcom,dual-dsi-mode;
> + qcom,sync-dual-dsi;
> + qcom,master-dsi;
> + status = "okay";
> +
> + display_panel: panel@0 {
> + compatible = "xiaomi,sheng-nt36532e", "novatek,nt36532e";
> + reg = <0>;
> +
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <&sde_dsi_active>;
> + pinctrl-1 = <&sde_dsi_suspend>;
> +
> + vddio-supply = <&vreg_s3g_0p7>;
> + avdd-supply = <&bl_vddpos_5p8>;
> + avee-supply = <&bl_vddneg_5p8>;
> +
> + reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
> + backlight = <&backlight>;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + panel_in_0: endpoint {
> + remote-endpoint = <&mdss_dsi0_out>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + panel_in_1: endpoint {
> + remote-endpoint = <&mdss_dsi1_out>;
> + };
> + };
> + };
> + };
> +};
> +
> +&mdss_dsi0_out {
> + remote-endpoint = <&panel_in_0>;
> + data-lanes = <0 1 2 3>;
> +};
> +
> +&mdss_dsi0_phy {
> + vdds-supply = <&vreg_l1e_0p88>;
> + status = "okay";
> +};
> +
> +&mdss_dsi1 {
> + vdda-supply = <&vreg_l3e_1p2>;
> + qcom,dual-dsi-mode;
> + qcom,sync-dual-dsi;
> + /* DSI1 is slave, so use DSI0 clocks */
> + assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
> + status = "okay";
> +};
> +
> +&mdss_dsi1_out {
> + remote-endpoint = <&panel_in_1>;
> + data-lanes = <0 1 2 3>;
> +};
> +
> +&mdss_dsi1_phy {
> + vdds-supply = <&vreg_l1e_0p88>;
> + status = "okay";
> +};
> +
> +&mdss_dp0 {
> + status = "okay";
> +};
> +
> +&mdss_dp0_out {
> + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +};
> +
> +&pcie0 {
> + wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
> + perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&pcie0_default_state>;
> +
> + status = "okay";
> +};
> +
> +&pcieport0 {
> + wifi@0 {
> + compatible = "pci17cb,1107";
> + reg = <0x10000 0x0 0x0 0x0 0x0>;
> +
> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
> + vddaon-supply = <&vreg_pmu_aon_0p59>;
> + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
> + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
> + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
> + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
> + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
> + };
> +};
> +
> +&pcie0_phy {
> + vdda-phy-supply = <&vreg_l1e_0p88>;
> + vdda-pll-supply = <&vreg_l3e_1p2>;
> +
> + status = "okay";
> +};
> +
> +&pm8010_n {
> + status = "disabled";
> +};
> +
> +&pm8550_flash {
> + status = "okay";
> +
> + led-0 {
> + function = LED_FUNCTION_FLASH;
> + color = <LED_COLOR_ID_WHITE>;
> + led-sources = <1>;
> + led-max-microamp = <400000>;
> + flash-max-microamp = <400000>;
> + flash-max-timeout-us = <300000>;
> + function-enumerator = <0>;
> + };
> +};
> +
> +&pm8550_gpios {
> + volume_up_n: volume-up-n-state {
> + pins = "gpio6";
> + function = "normal";
> + power-source = <1>;
> + bias-pull-up;
> + input-enable;
> + };
> +};
> +
> +&pm8550_pwm {
> + status = "okay";
> +
> + multi-led {
> + color = <LED_COLOR_ID_RGB>;
> + function = LED_FUNCTION_STATUS;
> + max-brightness = <255>;
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + led@1 {
> + reg = <1>;
> + color = <LED_COLOR_ID_RED>;
> + };
> +
> + led@2 {
> + reg = <2>;
> + color = <LED_COLOR_ID_GREEN>;
> + };
> +
> + led@3 {
> + reg = <3>;
> + color = <LED_COLOR_ID_BLUE>;
> + };
> + };
> +};
> +
> +&pm8550b_eusb2_repeater {
> + vdd18-supply = <&vreg_l15b_1p8>;
> + vdd3-supply = <&vreg_l5b_3p1>;
> +};
> +
> +&pm8550vs_c {
> + status = "okay";
> +};
> +
> +&pm8550vs_d {
> + status = "okay";
> +};
> +
> +&pm8550vs_e {
> + status = "okay";
> +};
> +
> +&pm8550vs_g {
> + status = "okay";
> +};
> +
> +&pon_pwrkey {
> + status = "okay";
> +};
> +
> +&pon_resin {
> + linux,code = <KEY_VOLUMEDOWN>;
> +
> + status = "okay";
> +};
> +
> +&pmk8550_gpios {
> + pmk8550_sleep_clk: sleep-clk-state {
> + pins = "gpio3";
> + function = "func1";
> + input-disable;
> + output-enable;
> + bias-disable;
> + power-source = <0>;
> + };
> +};
> +
> +&pmk8550_rtc {
> + nvmem-cells = <&rtc_offset>;
> + nvmem-cell-names = "offset";
> +};
> +
> +&pmk8550_sdam_2 {
> + rtc_offset: rtc-offset@bc {
> + reg = <0xbc 0x4>;
> + };
> +};
> +
> +&qupv3_id_0 {
> + status = "okay";
> +};
> +
> +&qupv3_id_1 {
> + status = "okay";
> +};
> +
> +&remoteproc_adsp {
> + firmware-name = "qcom/sm8550/sheng/adsp.mbn",
> + "qcom/sm8550/sheng/adsp_dtb.mbn";
> + status = "okay";
> +};
> +
> +&remoteproc_cdsp {
> + firmware-name = "qcom/sm8550/sheng/cdsp.mbn",
> + "qcom/sm8550/sheng/cdsp_dtb.mbn";
> + status = "okay";
> +};
> +
> +&sleep_clk {
> + clock-frequency = <32764>;
> +};
> +
> +&spi4 {
> + status = "okay";
> +
> + touchscreen@0 {
> + compatible = "novatek,NVT-ts-spi";
> + reg = <0>;
> +
> + spi-max-frequency = <19200000>;
> + novatek,irq-gpio = <&tlmm 25 GPIO_ACTIVE_LOW>;
> +
> + panel = <&display_panel>;
> +
> + firmware-name = "novatek/novatek_nt36532_n81a_fw_csot.bin";
> + };
> +};
> +
> +&swr1 {
> + status = "okay";
> +
> + /* WCD9380 RX */
> + wcd_rx: codec@0,4 {
> + compatible = "sdw20217010d00";
> + reg = <0 4>;
> + qcom,rx-port-mapping = <1 2 3 4 5>;
> + };
> +};
> +
> +&swr2 {
> + status = "okay";
> +
> + /* WCD9380 TX */
> + wcd_tx: codec@0,3 {
> + compatible = "sdw20217010d00";
> + reg = <0 3>;
> + qcom,tx-port-mapping = <2 2 3 4>;
> + };
> +};
> +
> +&tlmm {
> + gpio-reserved-ranges = <36 4>;
> +
> + fpc_reset_low: fpc-reset-low-state {
> + pins = "gpio41";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + output-low;
> + };
> +
> + fpc_reset_high: fpc-reset-high-state {
> + pins = "gpio41";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + output-high;
> + };
> +
> + fpc_irq_active: fpc-irq-active-state {
> + pins = "gpio40";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> + sde_dsi_active: sde-dsi-active-state {
> + pins = "gpio133";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> + sde_dsi_suspend: sde-dsi-suspend-state {
> + pins = "gpio133";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> + bt_default: bt-default-state {
> + bt-en-pins {
> + pins = "gpio81";
> + function = "gpio";
> + drive-strength = <16>;
> + bias-disable;
> + };
> +
> + sw-ctrl-pins {
> + pins = "gpio82";
> + function = "gpio";
> + bias-pull-down;
> + };
> + };
> +
> + wlan_en: wlan-en-state {
> + pins = "gpio80";
> + function = "gpio";
> + drive-strength = <8>;
> + bias-pull-down;
> + };
> +
> + qup_i2c8_data_clk: qup-i2c8-data-clk-state {
> + scl-pins {
> + pins = "gpio1";
> + function = "qup2_se0_l1_mirb";
> + drive-strength = <2>;
> + bias-pull-up = <2200>;
> + };
> +
> + sda-pins {
> + pins = "gpio0";
> + function = "qup2_se0_l0_mirb";
> + drive-strength = <2>;
> + bias-pull-up = <2200>;
> + };
> + };
> +
> + hall_sensor_default: hall-sensor-default-state {
> + pins = "gpio171", "gpio172";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + input-enable;
> + };
> +
> + wcd_default: wcd-reset-n-active-state {
> + pins = "gpio108";
> + function = "gpio";
> + drive-strength = <16>;
> + bias-disable;
> + output-low;
> + };
> +
> + i2s1_default: i2s1-default-state {
> + sck-pins {
> + pins = "gpio121";
> + function = "i2s1_sck";
> + drive-strength = <8>;
> + bias-disable;
> + output-high;
> + };
> +
> + data0-pins {
> + pins = "gpio122";
> + function = "i2s1_data0";
> + drive-strength = <8>;
> + bias-disable;
> + };
> +
> + ws-pins {
> + pins = "gpio123";
> + function = "i2s1_ws";
> + drive-strength = <8>;
> + bias-disable;
> + output-high;
> + };
> +
> + data1-pins {
> + pins = "gpio124";
> + function = "i2s1_data1";
> + drive-strength = <8>;
> + bias-disable;
> + output-high;
> + };
> + };
> +
> + cam_rear_reset_default: cam-rear-reset-default-state {
> + pins = "gpio118";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + cam_depth_reset_default: cam-depth-reset-default-state {
> + pins = "gpio117";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + cam_front_reset_default: cam-front-reset-default-state {
> + pins = "gpio120";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + ps5169_reset_default: ps5169-reset-default-state {
> + pins = "gpio7";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> + qup_i2c9_data_clk: qup-i2c9-data-clk-state {
> + /* SDA, SCL */
> + pins = "gpio60", "gpio61";
> + function = "qup2_se1";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + nanosic_mcu_default: nanosic-mcu-default-state {
> + status-pins {
> + pins = "gpio56";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + sleep-pins {
> + pins = "gpio57";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
> + };
> +
> + reset-pins {
> + pins = "gpio58";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> + };
> +};
> +
> +&uart14 {
> + status = "okay";
> +
> + bluetooth {
> + compatible = "qcom,wcn7850-bt";
> +
> + local-bd-address = [ 24 00 00 00 5a ad ];
> +
> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
> + vddaon-supply = <&vreg_pmu_aon_0p59>;
> + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
> + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
> + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
> +
> + max-speed = <3200000>;
> + };
> +};
> +
> +&ufs_mem_hc {
> + reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
> + vcc-supply = <&vreg_l17b_2p5>;
> + vcc-max-microamp = <1300000>;
> + vccq-supply = <&vreg_l1g_1p2>;
> + vccq-max-microamp = <1200000>;
> + vdd-hba-supply = <&vreg_l3g_1p2>;
> +
> + status = "okay";
> +};
> +
> +&ufs_mem_phy {
> + vdda-phy-supply = <&vreg_l1d_0p88>;
> + vdda-pll-supply = <&vreg_l3e_1p2>;
> +
> + status = "okay";
> +};
> +
> +&usb_1 {
> + status = "okay";
> +};
> +
> +&usb_1_dwc3_hs {
> + remote-endpoint = <&pmic_glink_hs_in>;
> +};
> +
> +&usb_1_hsphy {
> + vdd-supply = <&vreg_l1e_0p88>;
> + vdda12-supply = <&vreg_l3e_1p2>;
> +
> + phys = <&pm8550b_eusb2_repeater>;
> +
> + status = "okay";
> +};
> +
> +&usb_dp_qmpphy {
> + vdda-phy-supply = <&vreg_l3e_1p2>;
> + vdda-pll-supply = <&vreg_l3f_0p91>;
> +
> + status = "okay";
> +};
> +
> +&usb_dp_qmpphy_out {
> + remote-endpoint = <&redriver_ss_in>;
> +};
> +
> +&xo_board {
> + clock-frequency = <76800000>;
> +};
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
2026-07-21 14:21 [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng) code_0002
2026-07-21 14:41 ` Konrad Dybcio
@ 2026-07-21 14:41 ` Konrad Dybcio
2026-07-21 14:49 ` sashiko-bot
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Konrad Dybcio @ 2026-07-21 14:41 UTC (permalink / raw)
To: code_0002, andersson
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel, map220v, code002-2
On 7/21/26 4:21 PM, code_0002@163.com wrote:
> From: map220v <map220v300@gmail.com>
>
> Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
>
> Signed-off-by: code002-2 <hiez832670@gmail.com>
> ---
You sent a v2 with no context and no changelog. Please follow:
https://docs.kernel.org/process/submitting-patches.html
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
2026-07-21 14:21 [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng) code_0002
2026-07-21 14:41 ` Konrad Dybcio
2026-07-21 14:41 ` Konrad Dybcio
@ 2026-07-21 14:49 ` sashiko-bot
2026-07-21 15:22 ` Krzysztof Kozlowski
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-07-21 14:49 UTC (permalink / raw)
To: code_0002; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] Multiple `cs35l43` audio amplifiers share the exact same `reset-gpios` without non-exclusive flags.
- [High] Specific hardcoded Bluetooth MAC address in the device tree.
- [Low] Several nodes use undocumented compatible strings that lack upstream bindings and drivers, and the backlight node violates existing bindings.
--
--- Patch [1]: [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng) ---
commit 60dbe1c9d61443d5cd6de8980b141b0f56a24a53
Author: map220v <map220v300@gmail.com>
arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
> diff --git a/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
> new file mode 100644
> index 0000000000000..170a67b37b7a6
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
[ ... ]
> +&i2c1 {
> + status = "okay";
> +
> + backlight: backlight@11 {
> + compatible = "kinetic,ktz8866a";
> + reg = <0x11>;
> + vin-supply = <&vph_pwr>;
> + enable-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>;
[Severity: Low]
Are the compatible strings for this node and display_panel (kinetic,ktz8866a
and novatek,nt36532e) planned to be documented upstream? Without bindings,
these out-of-tree compatible strings will generate warnings during dtbs_check
validation.
[ ... ]
> +&i2c5 {
> + clock-frequency = <1000000>;
> + status = "okay";
> +
> + cs35l43_trl: cs35l43@40 {
> + compatible = "cirrus,cs35l43";
> + reg = <0x40>;
> + interrupt-parent = <&tlmm>;
> + interrupts = <98 IRQ_TYPE_LEVEL_LOW>;
> + reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
[Severity: High]
Since multiple cs35l43 amplifier instances all specify the exact same
reset-gpios, won't the GPIO subsystem's exclusive access guarantees grant the
GPIO to the first probing instance?
It seems the other instances will fail to probe with -EBUSY, which would
break the other audio amplifiers on the device. Might a gpio-reset controller
node be needed to share the reset GPIO correctly?
[ ... ]
> +&uart14 {
> + status = "okay";
> +
> + bluetooth {
> + compatible = "qcom,wcn7850-bt";
> +
> + local-bd-address = [ 24 00 00 00 5a ad ];
[Severity: High]
If the bootloader fails to dynamically overwrite this property on production
units, won't all devices running this kernel share the exact same Bluetooth
MAC address? Using [ 00 00 00 00 00 00 ] is standard practice to ensure
bootloader patch failure is obvious and doesn't lead to widespread MAC
collisions.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260721142147.1618-1-code_0002@163.com?part=1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
2026-07-21 14:21 [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng) code_0002
` (2 preceding siblings ...)
2026-07-21 14:49 ` sashiko-bot
@ 2026-07-21 15:22 ` Krzysztof Kozlowski
2026-07-21 15:34 ` [PATCH v6] " Tianyuan Jiang
2026-07-21 16:00 ` [PATCH v2] arm64: dts: qcom: sm8550: add xiaomi pad 6s pro (sheng) dts Tianyuan Jiang
5 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-21 15:22 UTC (permalink / raw)
To: code_0002, andersson
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel, map220v, code002-2
On 21/07/2026 16:21, code_0002@163.com wrote:
> From: map220v <map220v300@gmail.com>
>
> Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
>
> Signed-off-by: code002-2 <hiez832670@gmail.com>
We do not allow anonynomus contributions.
Please read carefully submitting patches document.
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../boot/dts/qcom/sm8550-xiaomi-sheng.dts | 1788 +++++++++++++++++
> 2 files changed, 1789 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 6f33c4e2f..d8e485521 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -386,6 +386,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8550-mtp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8550-qrd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8550-samsung-q5q.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8550-sony-xperia-yodo-pdx234.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += sm8550-xiaomi-sheng.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8650-ayaneo-pocket-s2.dtb
>
> sm8650-hdk-display-card-dtbs := sm8650-hdk.dtb sm8650-hdk-display-card.dtbo
> diff --git a/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
> new file mode 100644
> index 000000000..170a67b37
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
> @@ -0,0 +1,1788 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2024, map220v <map220v300@gmail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/arm/qcom,ids.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +#include "sm8550.dtsi"
> +#include "pm8010.dtsi"
> +#include "pm8550.dtsi"
> +#include "pm8550b.dtsi"
> +#define PMK8550VE_SID 5
> +#include "pm8550ve.dtsi"
> +#include "pm8550vs.dtsi"
> +#include "pmk8550.dtsi"
> +
> +/delete-node/ &rmtfs_mem;
> +/delete-node/ &adspslpi_mem;
> +/delete-node/ &xbl_dt_log_merged_mem;
> +/delete-node/ &hwfence_shbuf;
> +
> +/*
> + * Free unused regions, these regions don't exist in downstream
> + * dts, and they aren't removed from DDR Memory Map by UEFI.
> + */
> +/delete-node/ &hyp_tags_reserved_mem;
> +/delete-node/ &cdsp_secure_heap_mem;
> +/delete-node/ &trust_ui_vm_mem;
> +/delete-node/ &trust_ui_vm_dump;
> +/delete-node/ &trust_ui_vm_qrtr;
> +/delete-node/ &trust_ui_vm_vblk0_ring;
> +/delete-node/ &trust_ui_vm_vblk1_ring;
> +/delete-node/ &trust_ui_vm_swiotlb;
> +/delete-node/ &oem_vm_vblk0_ring;
> +/delete-node/ &oem_vm_swiotlb;
> +/delete-node/ &oem_vm_mem;
> +/delete-node/ &hyp_ext_tags_mem;
> +/delete-node/ &hyp_ext_reserved_mem;
> +
> +/* Xiaomi uses alternative gpio's for i2c8 */
> +/delete-node/ &qup_i2c8_data_clk;
> +
> +/* Xiaomi change for Nanosic WN803x */
> +/delete-node/ &qup_i2c9_data_clk;
> +
> +/* SM8550P doesn't have Modem DSP */
> +/delete-node/ &mpss_dsm_mem;
> +/delete-node/ &mpss_mem;
> +/delete-node/ &q6_mpss_dtb_mem;
> +/delete-node/ &remoteproc_mpss;
> +
> +/ {
> + model = "Xiaomi Pad 6S Pro 12.4";
> + compatible = "xiaomi,sheng", "qcom,sm8550";
Please run scripts/checkpatch.pl on the patches and fix reported
warnings. After that, run also 'scripts/checkpatch.pl --strict' on the
patches and (probably) fix more warnings. Some warnings can be ignored,
especially from --strict run, but the code here looks like it needs a
fix. Feel free to get in touch if the warning is not clear.
It does not look like you tested the DTS against bindings. Please run
`make dtbs_check W=1` (see
Documentation/devicetree/bindings/writing-schema.rst or
https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/
for instructions).
Maybe you need to update your dtschema and yamllint. Don't rely on
distro packages for dtschema and be sure you are using the latest
released dtschema.
> + chassis-type = "tablet";
> + qcom,msm-id = <536 0x20000>; /* SM8550P v2.0 */
NAK, not allowed.
And if you tested this, toolset would tell you that.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v6] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
2026-07-21 14:21 [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng) code_0002
` (3 preceding siblings ...)
2026-07-21 15:22 ` Krzysztof Kozlowski
@ 2026-07-21 15:34 ` Tianyuan Jiang
2026-07-21 15:46 ` Krzysztof Kozlowski
2026-07-21 15:52 ` sashiko-bot
2026-07-21 16:00 ` [PATCH v2] arm64: dts: qcom: sm8550: add xiaomi pad 6s pro (sheng) dts Tianyuan Jiang
5 siblings, 2 replies; 9+ messages in thread
From: Tianyuan Jiang @ 2026-07-21 15:34 UTC (permalink / raw)
To: krzk, konrad.dybcio, andersson
Cc: linux-arm-msm, devicetree, linux-kernel, code_0002,
Tianyuan Jiang
From: Tianyuan Jiang <hiez832670@gmail.com>
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
Signed-off-by: Tianyuan Jiang <code_0002@163.com>
---
v6: address Sashiko AI review on v4
- Fix cs35l43 reset-gpios polarity: use GPIO_ACTIVE_LOW
- Add "kinetic,ktz8866" fallback compatible for backlight
- Add map220v Signed-off-by (DCO chain fix)
- Add assigned-clocks alongside assigned-clock-parents in mdss_dsi1
v5: address additional Sashiko AI review on v3/v4
- Add assigned-clocks alongside assigned-clock-parents in mdss_dsi1
- Actually remove output-high from i2s1_default pinctrl (missed in v3)
v4: address Sashiko AI review comments
- Add GPIO_OPEN_DRAIN to shared cs35l43 reset-gpios to avoid -EBUSY
- Set Bluetooth local-bd-address to [ 00 00 00 00 00 00 ]
v3: address review comments from Konrad Dybcio
- SM8550P has no modem; confirmed on device (dmesg shows no mpss)
- Rename fingerprint_fpc -> fingerprint-reader, use interrupts-extended
- pmic-glink compatibles: one per line
- Sort DAI link subnodes alphabetically (codec before cpu)
- Reorder root-level nodes by name
- Place pinctrl-n properties before pinctrl-names
- Remove msm-id, board-id, Xiaomi-specific comments
- Remove output-low/output-high from TLMM pinctrl
- Remove udmabuf bootargs (confirmed not in use on device)
- Add "xiaomi-" prefix to firmware paths
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/sm8550-xiaomi-sheng.dts | 1761 +++++++++++++++++
2 files changed, 1762 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f33c4e2f..d8e485521 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -386,6 +386,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8550-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-samsung-q5q.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8550-sony-xperia-yodo-pdx234.dtb
+dtb-$(CONFIG_ARCH_QCOM) += sm8550-xiaomi-sheng.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8650-ayaneo-pocket-s2.dtb
sm8650-hdk-display-card-dtbs := sm8650-hdk.dtb sm8650-hdk-display-card.dtbo
diff --git a/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
new file mode 100644
index 000000000..fa24b1c1b
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
@@ -0,0 +1,1761 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024, map220v <map220v300@gmail.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/arm/qcom,ids.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8550.dtsi"
+#include "pm8010.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550b.dtsi"
+#define PMK8550VE_SID 5
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+
+/delete-node/ &rmtfs_mem;
+/delete-node/ &adspslpi_mem;
+/delete-node/ &xbl_dt_log_merged_mem;
+/delete-node/ &hwfence_shbuf;
+
+/* Free unused regions */
+/delete-node/ &hyp_tags_reserved_mem;
+/delete-node/ &cdsp_secure_heap_mem;
+/delete-node/ &trust_ui_vm_mem;
+/delete-node/ &trust_ui_vm_dump;
+/delete-node/ &trust_ui_vm_qrtr;
+/delete-node/ &trust_ui_vm_vblk0_ring;
+/delete-node/ &trust_ui_vm_vblk1_ring;
+/delete-node/ &trust_ui_vm_swiotlb;
+/delete-node/ &oem_vm_vblk0_ring;
+/delete-node/ &oem_vm_swiotlb;
+/delete-node/ &oem_vm_mem;
+/delete-node/ &hyp_ext_tags_mem;
+/delete-node/ &hyp_ext_reserved_mem;
+
+/delete-node/ &qup_i2c8_data_clk;
+
+/delete-node/ &qup_i2c9_data_clk;
+
+/delete-node/ &mpss_dsm_mem;
+/delete-node/ &mpss_mem;
+/delete-node/ &q6_mpss_dtb_mem;
+/delete-node/ &remoteproc_mpss;
+
+/ {
+ model = "Xiaomi Pad 6S Pro 12.4";
+ compatible = "xiaomi,sheng", "qcom,sm8550";
+ chassis-type = "tablet";
+ aliases {
+ serial0 = &uart7;
+ serial1 = &uart14;
+ };
+
+ chosen {
+ };
+
+ wcd938x: audio-codec {
+ compatible = "qcom,wcd9380-codec";
+
+ pinctrl-0 = <&wcd_default>;
+ pinctrl-names = "default";
+
+ qcom,micbias1-microvolt = <2750000>;
+ qcom,micbias2-microvolt = <2750000>;
+ qcom,micbias3-microvolt = <2750000>;
+ qcom,micbias4-microvolt = <2750000>;
+ qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
+ qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
+ qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
+ qcom,rx-device = <&wcd_rx>;
+ qcom,tx-device = <&wcd_tx>;
+
+ reset-gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+
+ vdd-buck-supply = <&vreg_l15b_1p8>;
+ vdd-rxtx-supply = <&vreg_l15b_1p8>;
+ vdd-io-supply = <&vreg_l15b_1p8>;
+ vdd-mic-bias-supply = <&vreg_bob1>;
+
+ #sound-dai-cells = <1>;
+ };
+
+ bl_vddneg_5p8: bl-vddneg-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "bl_vddneg_5p8";
+ regulator-min-microvolt = <5800000>;
+ regulator-max-microvolt = <5800000>;
+ regulator-enable-ramp-delay = <233>;
+ gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ bl_vddpos_5p8: bl-vddpos-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "bl_vddpos_5p8";
+ regulator-min-microvolt = <5800000>;
+ regulator-max-microvolt = <5800000>;
+ regulator-enable-ramp-delay = <233>;
+ gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ fingerprint-reader {
+ compatible = "fpc,fpc1020";
+ interrupts-extended = <&tlmm 40 IRQ_TYPE_EDGE_RISING>;
+ fpc,gpio_rst = <&tlmm 41 GPIO_ACTIVE_HIGH>;
+ fpc,gpio_irq = <&tlmm 40 GPIO_ACTIVE_HIGH>;
+ irq-gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
+ fp_vdd_vreg-supply = <&vreg_l9b_3p3>;
+
+ pinctrl-0 = <&fpc_reset_low>;
+ pinctrl-1 = <&fpc_reset_high>;
+ pinctrl-2 = <&fpc_irq_active>;
+ pinctrl-names = "fpc1020_reset_reset",
+ "fpc1020_reset_active",
+ "fpc1020_irq_active";
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&volume_up_n>, <&hall_sensor_default>;
+ pinctrl-names = "default";
+
+ key-volume-up {
+ label = "Volume Up";
+ linux,code = <KEY_VOLUMEUP>;
+ gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+
+ event-hall-sensor {
+ label = "Hall Effect Sensor";
+ gpios = <&tlmm 171 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+
+ event-tablet-mode {
+ label = "Tablet Mode Switch";
+ gpios = <&tlmm 172 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_TABLET_MODE>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+ };
+
+ pmic-glink {
+ compatible = "xiaomi,sm8550-pmic-glink",
+ "qcom,sm8550-pmic-glink",
+ "qcom,pmic-glink";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ orientation-gpios = <&tlmm 11 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_ss_in: endpoint {
+ remote-endpoint = <&redriver_ss_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_sbu: endpoint {
+ remote-endpoint = <&fsa4480_sbu_mux>;
+ };
+ };
+ };
+ };
+ };
+
+ reserved-memory {
+ xbl_ramdump_mem: xbl-ramdump-region@81200000 {
+ reg = <0 0x81200000 0 0x280000>;
+ no-map;
+ };
+
+ xbl_dt_log_mem: xbl-dt-log-region@81a00000 {
+ reg = <0 0x81a00000 0 0x40000>;
+ no-map;
+ };
+
+ aop_image_mem: aop-image-region@81c00000 {
+ reg = <0 0x81c00000 0 0x60000>;
+ no-map;
+ };
+
+ adspslpi_mem: adspslpi-region@9ea00000 {
+ reg = <0 0x9ea00000 0 0x4680000>;
+ no-map;
+ };
+
+ rmtfs_mem: rmtfs-region@ccd00000 {
+ compatible = "qcom,rmtfs-mem";
+ reg = <0x0 0xccd00000 0x0 0x280000>;
+ no-map;
+
+ qcom,client-id = <1>;
+ };
+
+ hwfence_shbuf: hwfence-shbuf-region@e6440000 {
+ reg = <0 0xe6440000 0 0x2dd000>;
+ no-map;
+ };
+
+ llcc_lpi_mem: llcc-lpi-region@ff800000 {
+ reg = <0 0xff800000 0 0x600000>;
+ no-map;
+ };
+
+ /* Required for libcamera to allocate buffers when cma is used. */
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x30000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
+
+ sound {
+ compatible = "qcom,sm8550-sndcard", "qcom,sm8450-sndcard";
+ pinctrl-0 = <&i2s1_default>;
+ pinctrl-names = "default";
+
+ model = "Xiaomi-Pad6SPro";
+ audio-routing = "IN1_HPHL", "HPHL_OUT",
+ "IN2_HPHR", "HPHR_OUT",
+ "AMIC1", "MIC BIAS1",
+ "AMIC2", "MIC BIAS2",
+ "AMIC3", "MIC BIAS3",
+ "AMIC4", "MIC BIAS3",
+ "AMIC5", "MIC BIAS4",
+ "TX SWR_INPUT0", "ADC1_OUTPUT",
+ "TX SWR_INPUT1", "ADC2_OUTPUT",
+ "TX SWR_INPUT0", "ADC3_OUTPUT",
+ "TX SWR_INPUT1", "ADC4_OUTPUT";
+
+ secondary-i2s-dai-link {
+ link-name = "Secondary MI2S Playback";
+
+ codec {
+ sound-dai = <&cs35l43_tll>, <&cs35l43_tlh>, <&cs35l43_trl>,
+ <&cs35l43_bll>, <&cs35l43_blh>, <&cs35l43_brl>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai SECONDARY_MI2S_RX>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wcd-playback-dai-link {
+ link-name = "WCD Playback";
+
+ codec {
+ sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ wcd-capture-dai-link {
+ link-name = "WCD Capture";
+
+ codec {
+ sound-dai = <&wcd938x 1>, <&swr2 0>, <&lpass_txmacro 0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+
+ displayport-dai-link {
+ link-name = "DisplayPort Playback";
+
+ codec {
+ sound-dai = <&mdss_dp0>;
+ };
+
+ cpu {
+ sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
+ };
+
+ platform {
+ sound-dai = <&q6apm>;
+ };
+ };
+ };
+
+ 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;
+ };
+
+ wcn7850-pmu {
+ compatible = "qcom,wcn7850-pmu";
+
+ pinctrl-0 = <&wlan_en>, <&bt_default>, <&pmk8550_sleep_clk>;
+ pinctrl-names = "default";
+
+ wlan-enable-gpios = <&tlmm 80 GPIO_ACTIVE_HIGH>;
+ bt-enable-gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
+
+ vdd-supply = <&vreg_s5g_0p8>;
+ vddio-supply = <&vreg_l15b_1p8>;
+ vddaon-supply = <&vreg_s2g_0p8>;
+ vdddig-supply = <&vreg_s4e_0p9>;
+ vddrfa1p2-supply = <&vreg_s4g_1p3>;
+ vddrfa1p8-supply = <&vreg_s6g_1p8>;
+
+ 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_1p8: ldo7 {
+ regulator-name = "vreg_pmu_rfa_1p8";
+ };
+
+ vreg_pmu_pcie_0p9: ldo8 {
+ regulator-name = "vreg_pmu_pcie_0p9";
+ };
+
+ vreg_pmu_pcie_1p8: ldo9 {
+ regulator-name = "vreg_pmu_pcie_1p8";
+ };
+ };
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm8550-rpmh-regulators";
+ qcom,pmic-id = "b";
+
+ vdd-bob1-supply = <&vph_pwr>;
+ vdd-bob2-supply = <&vph_pwr>;
+ vdd-l1-l4-l10-supply = <&vreg_s6g_1p8>;
+ vdd-l2-l13-l14-supply = <&vreg_bob1>;
+ vdd-l3-supply = <&vreg_s4g_1p3>;
+ vdd-l5-l16-supply = <&vreg_bob1>;
+ vdd-l6-l7-supply = <&vreg_bob1>;
+ vdd-l8-l9-supply = <&vreg_bob1>;
+ vdd-l11-supply = <&vreg_s4g_1p3>;
+ vdd-l12-supply = <&vreg_s6g_1p8>;
+ vdd-l15-supply = <&vreg_s6g_1p8>;
+ vdd-l17-supply = <&vreg_bob2>;
+
+ vreg_bob1: bob1 {
+ regulator-name = "vreg_bob1";
+ regulator-min-microvolt = <3296000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob2: bob2 {
+ regulator-name = "vreg_bob2";
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <3296000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1b_1p8: ldo1 {
+ regulator-name = "vreg_l1b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2b_3p0: ldo2 {
+ regulator-name = "vreg_l2b_3p0";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4b_1p8: ldo4 {
+ regulator-name = "vreg_l4b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5b_3p1: ldo5 {
+ regulator-name = "vreg_l5b_3p1";
+ regulator-min-microvolt = <3104000>;
+ regulator-max-microvolt = <3104000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6b_1p8: ldo6 {
+ regulator-name = "vreg_l6b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7b_1p8: ldo7 {
+ regulator-name = "vreg_l7b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8b_1p8: ldo8 {
+ regulator-name = "vreg_l8b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b_3p3: ldo9 {
+ regulator-name = "vreg_l9b_3p3";
+ regulator-min-microvolt = <3296000>;
+ regulator-max-microvolt = <3296000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10b_1p8: ldo10 {
+ regulator-name = "vreg_l10b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11b_1p2: ldo11 {
+ regulator-name = "vreg_l11b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b_1p8: ldo12 {
+ regulator-name = "vreg_l12b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13b_3p3: ldo13 {
+ regulator-name = "vreg_l13b_3p3";
+ regulator-min-microvolt = <3296000>;
+ regulator-max-microvolt = <3296000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14b_3p2: ldo14 {
+ regulator-name = "vreg_l14b_3p2";
+ regulator-min-microvolt = <3200000>;
+ regulator-max-microvolt = <3200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b_1p8: ldo15 {
+ regulator-name = "vreg_l15b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l16b_2p8: ldo16 {
+ regulator-name = "vreg_l16b_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17b_2p5: ldo17 {
+ regulator-name = "vreg_l17b_2p5";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <2504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ vdd-l3-supply = <&vreg_s4e_0p9>;
+
+ vreg_l3c_0p91: ldo3 {
+ regulator-name = "vreg_l3c_0p9";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "d";
+
+ vdd-l1-supply = <&vreg_s4e_0p9>;
+
+ vreg_l1d_0p88: ldo1 {
+ regulator-name = "vreg_l1d_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-3 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "e";
+
+ vdd-l1-supply = <&vreg_s4e_0p9>;
+ vdd-l2-supply = <&vreg_s4e_0p9>;
+ vdd-l3-supply = <&vreg_s4g_1p3>;
+ vdd-s4-supply = <&vph_pwr>;
+ vdd-s5-supply = <&vph_pwr>;
+
+ vreg_s4e_0p9: smps4 {
+ regulator-name = "vreg_s4e_0p9";
+ regulator-min-microvolt = <904000>;
+ regulator-max-microvolt = <984000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s5e_1p1: smps5 {
+ regulator-name = "vreg_s5e_1p1";
+ regulator-min-microvolt = <1080000>;
+ regulator-max-microvolt = <1120000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1e_0p88: ldo1 {
+ regulator-name = "vreg_l1e_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2e_0p9: ldo2 {
+ regulator-name = "vreg_l2e_0p9";
+ regulator-min-microvolt = <904000>;
+ regulator-max-microvolt = <970000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3e_1p2: ldo3 {
+ regulator-name = "vreg_l3e_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-4 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "f";
+
+ vdd-l1-supply = <&vreg_s4e_0p9>;
+ vdd-l2-supply = <&vreg_s4e_0p9>;
+ vdd-l3-supply = <&vreg_s4e_0p9>;
+ vdd-s4-supply = <&vph_pwr>;
+
+ vreg_s4f_0p5: smps4 {
+ regulator-name = "vreg_s4f_0p5";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <700000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1f_0p9: ldo1 {
+ regulator-name = "vreg_l1f_0p9";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2f_0p88: ldo2 {
+ regulator-name = "vreg_l2f_0p88";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3f_0p91: ldo3 {
+ regulator-name = "vreg_l3f_0p91";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-5 {
+ compatible = "qcom,pm8550vs-rpmh-regulators";
+ qcom,pmic-id = "g";
+
+ vdd-l1-supply = <&vreg_s4g_1p3>;
+ vdd-l2-supply = <&vreg_s4g_1p3>;
+ vdd-l3-supply = <&vreg_s4g_1p3>;
+ 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>;
+
+ vreg_s1g_1p2: smps1 {
+ regulator-name = "vreg_s1g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s2g_0p8: smps2 {
+ regulator-name = "vreg_s2g_0p8";
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s3g_0p7: smps3 {
+ regulator-name = "vreg_s3g_0p7";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <1900000>; //2004000
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s4g_1p3: smps4 {
+ regulator-name = "vreg_s4g_1p3";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1408000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s5g_0p8: smps5 {
+ regulator-name = "vreg_s5g_0p8";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1004000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s6g_1p8: smps6 {
+ regulator-name = "vreg_s6g_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1g_1p2: ldo1 {
+ regulator-name = "vreg_l1g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2g_1p2: ldo2 {
+ regulator-name = "vreg_l2g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3g_1p2: ldo3 {
+ regulator-name = "vreg_l3g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-6 {
+ compatible = "qcom,pm8010-rpmh-regulators";
+ qcom,pmic-id = "m";
+
+ vdd-l1-l2-supply = <&vreg_s4g_1p3>;
+ vdd-l3-l4-supply = <&vreg_bob2>;
+ vdd-l5-supply = <&vreg_s6g_1p8>;
+ vdd-l6-supply = <&vreg_bob2>;
+ vdd-l7-supply = <&vreg_bob2>;
+
+ vreg_l1m_1p2: ldo1 {
+ regulator-name = "vreg_l1m_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2m_1p08: ldo2 {
+ regulator-name = "vreg_l2m_1p08";
+ regulator-min-microvolt = <1080000>;
+ regulator-max-microvolt = <1080000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3m_2p8: ldo3 {
+ regulator-name = "vreg_l3m_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4m_2p8: ldo4 {
+ regulator-name = "vreg_l4m_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5m_1p8: ldo5 {
+ regulator-name = "vreg_l5m_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6m_2p8: ldo6 {
+ regulator-name = "vreg_l6m_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7m_2p85: ldo7 {
+ regulator-name = "vreg_l7m_2p85";
+ regulator-min-microvolt = <2856000>;
+ regulator-max-microvolt = <2856000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&camss {
+ vdda-phy-supply = <&vreg_l1e_0p88>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ csiphy1_ep: endpoint {
+ data-lanes = <0>;
+ remote-endpoint = <&ov02b1b_ep>;
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+
+ csiphy3_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&s5kjn1_ep>;
+ };
+ };
+
+ port@4 {
+ reg = <4>;
+
+ csiphy4_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&ov32d40_ep>;
+ };
+ };
+ };
+};
+
+&cci0 {
+ status = "okay";
+};
+
+&cci0_i2c1 {
+ clock-frequency = <1000000>;
+
+ camera@10 {
+ compatible = "samsung,s5kjn1";
+ reg = <0x10>;
+
+ reset-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>;
+ pinctrl-0 = <&cam2_default>, <&cam_rear_reset_default>;
+ pinctrl-names = "default";
+
+ clocks = <&camcc CAM_CC_MCLK2_CLK>;
+
+ orientation = <1>;
+ rotation = <0>;
+
+ lens-focus = <>9764>;
+
+ vddio-supply = <&vreg_l4b_1p8>;
+ vddd-supply = <&vreg_l2m_1p08>;
+ vdda-supply = <&vreg_l4m_2p8>;
+
+ port {
+ s5kjn1_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <857600000>;
+ remote-endpoint = <&csiphy3_ep>;
+ };
+ };
+ };
+
+ gt9764: camera-lens@c {
+ compatible = "giantec,gt9764";
+ reg = <0x0c>;
+
+ vin-supply = <&vreg_l4b_1p8>;
+ vdd-supply = <&vreg_l7m_2p85>;
+ dongwoon,clock-presc = <0>;
+ dongwoon,aac-timing = <0x6a>;
+ dongwoon,initial-focus = <0x200>;
+ dongwoon,move-delay-us = <7000>;
+ };
+};
+
+&cci1 {
+ status = "okay";
+};
+
+&cci1_i2c0 {
+ clock-frequency = <400000>;
+
+ camera@3c {
+ compatible = "ovti,ov02b1b";
+ reg = <0x3c>;
+
+ reset-gpios = <&tlmm 117 GPIO_ACTIVE_LOW>;
+ pinctrl-0 = <&cam1_default>, <&cam_depth_reset_default>;
+ pinctrl-names = "default";
+
+ clocks = <&camcc CAM_CC_MCLK1_CLK>;
+
+ orientation = <1>;
+ rotation = <0>;
+
+ vddio-supply = <&vreg_l10b_1p8>;
+ avdd-supply = <&vreg_l6m_2p8>;
+
+ port {
+ ov02b1b_ep: endpoint {
+ data-lanes = <0>;
+ link-frequencies = /bits/ 64 <332800000>;
+ remote-endpoint = <&csiphy1_ep>;
+ };
+ };
+ };
+};
+
+&cci1_i2c1 {
+ clock-frequency = <1000000>;
+
+ camera@10 {
+ compatible = "ovti,ov32d40";
+ reg = <0x10>;
+
+ reset-gpios = <&tlmm 120 GPIO_ACTIVE_LOW>;
+ pinctrl-0 = <&cam4_default>, <&cam_front_reset_default>;
+ pinctrl-names = "default";
+
+ clocks = <&camcc CAM_CC_MCLK4_CLK>;
+
+ orientation = <0>;
+ rotation = <0>;
+
+ vddio-supply = <&vreg_l5m_1p8>;
+ dvdd-supply = <&vreg_l1m_1p2>;
+ avdd-supply = <&vreg_l3m_2p8>;
+
+ port {
+ ov32d40_ep: endpoint {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <842400000>;
+ remote-endpoint = <&csiphy4_ep>;
+ };
+ };
+ };
+};
+
+&ipa {
+ qcom,gsi-loader = "self";
+ memory-region = <&ipa_fw_mem>;
+ firmware-name = "qcom/sm8550/xiaomi-sheng/ipa_fws.mbn";
+ status = "okay";
+};
+
+&gpi_dma1 {
+ status = "okay";
+};
+
+&gpi_dma2 {
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/sm8550/xiaomi-sheng/a740_zap.mbn";
+};
+
+&i2c0 {
+ clock-frequency = <400000>;
+ status = "okay";
+
+ typec-retimer@28 {
+ compatible = "parade,ps5169";
+ reg = <0x28>;
+
+ pinctrl-0 = <&ps5169_reset_default>;
+ pinctrl-names = "default";
+
+ reset-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
+
+ orientation-switch;
+ retimer-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ redriver_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ redriver_ss_in: endpoint {
+ data-lanes = <3 2 1 0>;
+ remote-endpoint = <&usb_dp_qmpphy_out>;
+ };
+ };
+ };
+ };
+};
+
+&i2c1 {
+ status = "okay";
+
+ backlight: backlight@11 {
+ compatible = "kinetic,ktz8866a", "kinetic,ktz8866";
+ reg = <0x11>;
+ vin-supply = <&vph_pwr>;
+ enable-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>;
+ current-num-sinks = <5>;
+ kinetic,current-ramp-delay-ms = <256>;
+ kinetic,led-enable-ramp-delay-ms = <8>;
+ kinetic,enable-lcd-bias;
+ };
+};
+
+&i2c5 {
+ clock-frequency = <1000000>;
+ status = "okay";
+
+ cs35l43_trl: cs35l43@40 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x40>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <98 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "TRL";
+ cirrus,dsp-part-name = "trl-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+
+ cs35l43_tlh: cs35l43@41 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x41>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <99 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "TLH";
+ cirrus,dsp-part-name = "tlh-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+
+ cs35l43_tll: cs35l43@42 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x42>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <119 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "TLL";
+ cirrus,dsp-part-name = "tll-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+};
+
+&i2c8 {
+ clock-frequency = <1000000>;
+ status = "okay";
+
+ cs35l43_blh: cs35l43@40 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x40>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "BLH";
+ cirrus,dsp-part-name = "blh-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+
+ cs35l43_bll: cs35l43@41 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x41>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "BLL";
+ cirrus,dsp-part-name = "bll-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+
+ cs35l43_brl: cs35l43@42 {
+ compatible = "cirrus,cs35l43";
+ reg = <0x42>;
+ interrupt-parent = <&tlmm>;
+ interrupts = <85 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&tlmm 90 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+ #sound-dai-cells = <0>;
+ sound-name-prefix = "BRL";
+ cirrus,dsp-part-name = "brl-cs35l43";
+ cirrus,vpbr-thld = <8>;
+ cirrus,vpbr-max-att = <3>;
+ cirrus,vpbr-atk-vol = <5>;
+ cirrus,vpbr-atk-rate = <0>;
+ cirrus,vpbr-wait = <0>;
+ cirrus,vpbr-rel-rate = <0>;
+ cirrus,vpbr-enable = <1>;
+ cirrus,gpio2-src-sel = <4>;
+ cirrus,asp-sdout-hiz = <3>;
+ cirrus,bst-ipk-ma = <4000>;
+ };
+};
+
+&i2c9 {
+ status = "okay";
+
+ nanosic_mcu@4c {
+ compatible = "nanosic,wn8030-sheng";
+ reg = <0x4c>;
+
+ pinctrl-0 = <&nanosic_mcu_default>;
+ pinctrl-names = "default";
+
+ interrupt-parent = <&tlmm>;
+ interrupts = <62 IRQ_TYPE_EDGE_RISING>;
+
+ reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
+ sleep-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>;
+ status-gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>;
+
+ vddio-supply = <&vreg_l12b_1p8>;
+ dvdd-supply = <&vreg_l13b_3p3>;
+ };
+};
+
+&i2c_master_hub_0 {
+ status = "okay";
+};
+
+&i2c_hub_2 {
+ status = "okay";
+
+ typec-mux@42 {
+ compatible = "fcs,fsa4480";
+ reg = <0x42>;
+
+ vcc-supply = <&vreg_bob1>;
+
+ mode-switch;
+ orientation-switch;
+
+ port {
+ fsa4480_sbu_mux: endpoint {
+ remote-endpoint = <&pmic_glink_sbu>;
+ };
+ };
+ };
+};
+
+&iris {
+ status = "okay";
+
+ firmware-name = "qcom/sm8550/xiaomi-sheng/vpu30_4v.mbn";
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ vdda-supply = <&vreg_l3e_1p2>;
+ qcom,dual-dsi-mode;
+ qcom,sync-dual-dsi;
+ qcom,master-dsi;
+ status = "okay";
+
+ display_panel: panel@0 {
+ compatible = "xiaomi,sheng-nt36532e", "novatek,nt36532e";
+ reg = <0>;
+
+ pinctrl-0 = <&sde_dsi_active>;
+ pinctrl-1 = <&sde_dsi_suspend>;
+ pinctrl-names = "default", "sleep";
+
+ vddio-supply = <&vreg_s3g_0p7>;
+ avdd-supply = <&bl_vddpos_5p8>;
+ avee-supply = <&bl_vddneg_5p8>;
+
+ reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+ backlight = <&backlight>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ panel_in_0: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ panel_in_1: endpoint {
+ remote-endpoint = <&mdss_dsi1_out>;
+ };
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel_in_0>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ vdds-supply = <&vreg_l1e_0p88>;
+ status = "okay";
+};
+
+&mdss_dsi1 {
+ vdda-supply = <&vreg_l3e_1p2>;
+ qcom,dual-dsi-mode;
+ qcom,sync-dual-dsi;
+ /* DSI1 is slave, so use DSI0 clocks */
+ assigned-clocks = <&mdss_dsi1_phy 0>, <&mdss_dsi1_phy 1>;
+ assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
+ status = "okay";
+};
+
+&mdss_dsi1_out {
+ remote-endpoint = <&panel_in_1>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi1_phy {
+ vdds-supply = <&vreg_l1e_0p88>;
+ status = "okay";
+};
+
+&mdss_dp0 {
+ status = "okay";
+};
+
+&mdss_dp0_out {
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&pcie0 {
+ wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+ perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&pcie0_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcieport0 {
+ wifi@0 {
+ compatible = "pci17cb,1107";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+ vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+ };
+};
+
+&pcie0_phy {
+ vdda-phy-supply = <&vreg_l1e_0p88>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&pm8010_n {
+ status = "disabled";
+};
+
+&pm8550_flash {
+ status = "okay";
+
+ led-0 {
+ function = LED_FUNCTION_FLASH;
+ color = <LED_COLOR_ID_WHITE>;
+ led-sources = <1>;
+ led-max-microamp = <400000>;
+ flash-max-microamp = <400000>;
+ flash-max-timeout-us = <300000>;
+ function-enumerator = <0>;
+ };
+};
+
+&pm8550_gpios {
+ volume_up_n: volume-up-n-state {
+ pins = "gpio6";
+ function = "normal";
+ power-source = <1>;
+ bias-pull-up;
+ input-enable;
+ };
+};
+
+&pm8550_pwm {
+ status = "okay";
+
+ multi-led {
+ color = <LED_COLOR_ID_RGB>;
+ function = LED_FUNCTION_STATUS;
+ max-brightness = <255>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ led@1 {
+ reg = <1>;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led@2 {
+ reg = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+
+ led@3 {
+ reg = <3>;
+ color = <LED_COLOR_ID_BLUE>;
+ };
+ };
+};
+
+&pm8550b_eusb2_repeater {
+ vdd18-supply = <&vreg_l15b_1p8>;
+ vdd3-supply = <&vreg_l5b_3p1>;
+};
+
+&pm8550vs_c {
+ status = "okay";
+};
+
+&pm8550vs_d {
+ status = "okay";
+};
+
+&pm8550vs_e {
+ status = "okay";
+};
+
+&pm8550vs_g {
+ status = "okay";
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&pmk8550_gpios {
+ pmk8550_sleep_clk: sleep-clk-state {
+ pins = "gpio3";
+ function = "func1";
+ input-disable;
+ output-enable;
+ bias-disable;
+ power-source = <0>;
+ };
+};
+
+&pmk8550_rtc {
+ nvmem-cells = <&rtc_offset>;
+ nvmem-cell-names = "offset";
+};
+
+&pmk8550_sdam_2 {
+ rtc_offset: rtc-offset@bc {
+ reg = <0xbc 0x4>;
+ };
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&qupv3_id_1 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/sm8550/xiaomi-sheng/adsp.mbn",
+ "qcom/sm8550/xiaomi-sheng/adsp_dtb.mbn";
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/sm8550/xiaomi-sheng/cdsp.mbn",
+ "qcom/sm8550/xiaomi-sheng/cdsp_dtb.mbn";
+ status = "okay";
+};
+
+&sleep_clk {
+ clock-frequency = <32764>;
+};
+
+&spi4 {
+ status = "okay";
+
+ touchscreen@0 {
+ compatible = "novatek,NVT-ts-spi";
+ reg = <0>;
+
+ spi-max-frequency = <19200000>;
+ novatek,irq-gpio = <&tlmm 25 GPIO_ACTIVE_LOW>;
+
+ panel = <&display_panel>;
+
+ firmware-name = "novatek/novatek_nt36532_n81a_fw_csot.bin";
+ };
+};
+
+&swr1 {
+ status = "okay";
+
+ /* WCD9380 RX */
+ wcd_rx: codec@0,4 {
+ compatible = "sdw20217010d00";
+ reg = <0 4>;
+ qcom,rx-port-mapping = <1 2 3 4 5>;
+ };
+};
+
+&swr2 {
+ status = "okay";
+
+ /* WCD9380 TX */
+ wcd_tx: codec@0,3 {
+ compatible = "sdw20217010d00";
+ reg = <0 3>;
+ qcom,tx-port-mapping = <2 2 3 4>;
+ };
+};
+
+&tlmm {
+ gpio-reserved-ranges = <36 4>;
+
+ fpc_reset_low: fpc-reset-low-state {
+ pins = "gpio41";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ fpc_reset_high: fpc-reset-high-state {
+ pins = "gpio41";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ fpc_irq_active: fpc-irq-active-state {
+ pins = "gpio40";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ sde_dsi_active: sde-dsi-active-state {
+ pins = "gpio133";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ sde_dsi_suspend: sde-dsi-suspend-state {
+ pins = "gpio133";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ bt_default: bt-default-state {
+ bt-en-pins {
+ pins = "gpio81";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ sw-ctrl-pins {
+ pins = "gpio82";
+ function = "gpio";
+ bias-pull-down;
+ };
+ };
+
+ wlan_en: wlan-en-state {
+ pins = "gpio80";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-down;
+ };
+
+ qup_i2c8_data_clk: qup-i2c8-data-clk-state {
+ scl-pins {
+ pins = "gpio1";
+ function = "qup2_se0_l1_mirb";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ sda-pins {
+ pins = "gpio0";
+ function = "qup2_se0_l0_mirb";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ hall_sensor_default: hall-sensor-default-state {
+ pins = "gpio171", "gpio172";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ input-enable;
+ };
+
+ wcd_default: wcd-reset-n-active-state {
+ pins = "gpio108";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ i2s1_default: i2s1-default-state {
+ sck-pins {
+ pins = "gpio121";
+ function = "i2s1_sck";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ data0-pins {
+ pins = "gpio122";
+ function = "i2s1_data0";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ ws-pins {
+ pins = "gpio123";
+ function = "i2s1_ws";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ data1-pins {
+ pins = "gpio124";
+ function = "i2s1_data1";
+ drive-strength = <8>;
+ bias-disable;
+ };
+ };
+
+ cam_rear_reset_default: cam-rear-reset-default-state {
+ pins = "gpio118";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam_depth_reset_default: cam-depth-reset-default-state {
+ pins = "gpio117";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam_front_reset_default: cam-front-reset-default-state {
+ pins = "gpio120";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ ps5169_reset_default: ps5169-reset-default-state {
+ pins = "gpio7";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ qup_i2c9_data_clk: qup-i2c9-data-clk-state {
+ /* SDA, SCL */
+ pins = "gpio60", "gpio61";
+ function = "qup2_se1";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ nanosic_mcu_default: nanosic-mcu-default-state {
+ status-pins {
+ pins = "gpio56";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ sleep-pins {
+ pins = "gpio57";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ reset-pins {
+ pins = "gpio58";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
+};
+
+&uart14 {
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn7850-bt";
+
+ local-bd-address = [ 00 00 00 00 00 00 ];
+
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+
+ max-speed = <3200000>;
+ };
+};
+
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
+ vcc-supply = <&vreg_l17b_2p5>;
+ vcc-max-microamp = <1300000>;
+ vccq-supply = <&vreg_l1g_1p2>;
+ vccq-max-microamp = <1200000>;
+ vdd-hba-supply = <&vreg_l3g_1p2>;
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l1d_0p88>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&usb_1 {
+ status = "okay";
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+ vdd-supply = <&vreg_l1e_0p88>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ phys = <&pm8550b_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_dp_qmpphy {
+ vdda-phy-supply = <&vreg_l3e_1p2>;
+ vdda-pll-supply = <&vreg_l3f_0p91>;
+
+ status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+ remote-endpoint = <&redriver_ss_in>;
+};
+
+&xo_board {
+ clock-frequency = <76800000>;
+};
--
2.54.0.windows.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v6] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
2026-07-21 15:34 ` [PATCH v6] " Tianyuan Jiang
@ 2026-07-21 15:46 ` Krzysztof Kozlowski
2026-07-21 15:52 ` sashiko-bot
1 sibling, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-21 15:46 UTC (permalink / raw)
To: Tianyuan Jiang, konrad.dybcio, andersson
Cc: linux-arm-msm, devicetree, linux-kernel, Tianyuan Jiang
On 21/07/2026 17:34, Tianyuan Jiang wrote:
> From: Tianyuan Jiang <hiez832670@gmail.com>
>
> Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
>
> Signed-off-by: Tianyuan Jiang <code_0002@163.com>
>
> ---
> v6: address Sashiko AI review on v4
What is happening here? v2 was sent 1 hour ago and immediately this?
AGAIN, read submitting patches.
> - Fix cs35l43 reset-gpios polarity: use GPIO_ACTIVE_LOW
> - Add "kinetic,ktz8866" fallback compatible for backlight
> - Add map220v Signed-off-by (DCO chain fix)
> - Add assigned-clocks alongside assigned-clock-parents in mdss_dsi1
>
> v5: address additional Sashiko AI review on v3/v4
> - Add assigned-clocks alongside assigned-clock-parents in mdss_dsi1
> - Actually remove output-high from i2s1_default pinctrl (missed in v3)
>
> v4: address Sashiko AI review comments
> - Add GPIO_OPEN_DRAIN to shared cs35l43 reset-gpios to avoid -EBUSY
> - Set Bluetooth local-bd-address to [ 00 00 00 00 00 00 ]
>
> v3: address review comments from Konrad Dybcio
> - SM8550P has no modem; confirmed on device (dmesg shows no mpss)
> - Rename fingerprint_fpc -> fingerprint-reader, use interrupts-extended
> - pmic-glink compatibles: one per line
> - Sort DAI link subnodes alphabetically (codec before cpu)
> - Reorder root-level nodes by name
> - Place pinctrl-n properties before pinctrl-names
> - Remove msm-id, board-id, Xiaomi-specific comments
> - Remove output-low/output-high from TLMM pinctrl
> - Remove udmabuf bootargs (confirmed not in use on device)
> - Add "xiaomi-" prefix to firmware paths
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../boot/dts/qcom/sm8550-xiaomi-sheng.dts | 1761 +++++++++++++++++
> 2 files changed, 1762 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 6f33c4e2f..d8e485521 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -386,6 +386,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8550-mtp.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8550-qrd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8550-samsung-q5q.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8550-sony-xperia-yodo-pdx234.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += sm8550-xiaomi-sheng.dtb
> dtb-$(CONFIG_ARCH_QCOM) += sm8650-ayaneo-pocket-s2.dtb
>
> sm8650-hdk-display-card-dtbs := sm8650-hdk.dtb sm8650-hdk-display-card.dtbo
> diff --git a/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
> new file mode 100644
> index 000000000..fa24b1c1b
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
> @@ -0,0 +1,1761 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2024, map220v <map220v300@gmail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/arm/qcom,ids.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +#include "sm8550.dtsi"
> +#include "pm8010.dtsi"
> +#include "pm8550.dtsi"
> +#include "pm8550b.dtsi"
> +#define PMK8550VE_SID 5
> +#include "pm8550ve.dtsi"
> +#include "pm8550vs.dtsi"
> +#include "pmk8550.dtsi"
> +
> +/delete-node/ &rmtfs_mem;
> +/delete-node/ &adspslpi_mem;
> +/delete-node/ &xbl_dt_log_merged_mem;
> +/delete-node/ &hwfence_shbuf;
> +
> +/* Free unused regions */
> +/delete-node/ &hyp_tags_reserved_mem;
> +/delete-node/ &cdsp_secure_heap_mem;
> +/delete-node/ &trust_ui_vm_mem;
> +/delete-node/ &trust_ui_vm_dump;
> +/delete-node/ &trust_ui_vm_qrtr;
> +/delete-node/ &trust_ui_vm_vblk0_ring;
> +/delete-node/ &trust_ui_vm_vblk1_ring;
> +/delete-node/ &trust_ui_vm_swiotlb;
> +/delete-node/ &oem_vm_vblk0_ring;
> +/delete-node/ &oem_vm_swiotlb;
> +/delete-node/ &oem_vm_mem;
> +/delete-node/ &hyp_ext_tags_mem;
> +/delete-node/ &hyp_ext_reserved_mem;
> +
> +/delete-node/ &qup_i2c8_data_clk;
> +
> +/delete-node/ &qup_i2c9_data_clk;
> +
> +/delete-node/ &mpss_dsm_mem;
> +/delete-node/ &mpss_mem;
> +/delete-node/ &q6_mpss_dtb_mem;
> +/delete-node/ &remoteproc_mpss;
> +
> +/ {
> + model = "Xiaomi Pad 6S Pro 12.4";
> + compatible = "xiaomi,sheng", "qcom,sm8550";
So you keep ignoring the problem and keep ignoring review. Not
responding, not fixing anything.
NAK
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v6] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
2026-07-21 15:34 ` [PATCH v6] " Tianyuan Jiang
2026-07-21 15:46 ` Krzysztof Kozlowski
@ 2026-07-21 15:52 ` sashiko-bot
1 sibling, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-07-21 15:52 UTC (permalink / raw)
To: Tianyuan Jiang; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Medium] The device tree heavily relies on undocumented downstream compatibles that lack mainline drivers or bindings.
- [Medium] Missing Developer Certificate of Origin (DCO) Sign-off promised in the changelog.
- [Low] Unidiomatic deletion and redefinition of a pinctrl node.
--
--- Patch [1]: [PATCH v6] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng) ---
commit 0ac17b1bf2e0cc5382a800a4519a79a941821b31
Author: Tianyuan Jiang <hiez832670@gmail.com>
arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
> Signed-off-by: Tianyuan Jiang <code_0002@163.com>
>
> ---
> v6: address Sashiko AI review on v4
> - Fix cs35l43 reset-gpios polarity: use GPIO_ACTIVE_LOW
> - Add "kinetic,ktz8866" fallback compatible for backlight
> - Add map220v Signed-off-by (DCO chain fix)
[Severity: Medium]
The changelog mentions adding a Signed-off-by tag for map220v to address a
DCO chain issue, but it appears to be missing from the commit trailers.
Should the original author's sign-off be included in the commit message?
> diff --git a/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
> new file mode 100644
> index 0000000000000..fa24b1c1b4e65
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts
> @@ -0,0 +1,1761 @@
[ ... ]
> +/delete-node/ &hyp_ext_tags_mem;
> +/delete-node/ &hyp_ext_reserved_mem;
> +
> +/delete-node/ &qup_i2c8_data_clk;
> +
> +/delete-node/ &qup_i2c9_data_clk;
[Severity: Low]
Is there a specific reason to delete these pinctrl nodes at the root level
and manually redefine them later in the file? It is usually more idiomatic
in device trees to override the properties directly using a reference
(for example, &qup_i2c8_data_clk { ... }) instead of fully deleting and
redefining them.
[ ... ]
> +&i2c5 {
> + clock-frequency = <1000000>;
> + status = "okay";
> +
> + cs35l43_trl: cs35l43@40 {
> + compatible = "cirrus,cs35l43";
[Severity: Medium]
Does this compatible string have a corresponding upstream binding or driver?
Using undocumented downstream compatibles, along with several others in this
patch (such as nanosic,wn8030-sheng, novatek,nt36532e, and fpc,fpc1020),
causes validation failures with dtbs_check since their custom properties
are not defined in any schema.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260721153444.423-1-code_0002@163.com?part=1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] arm64: dts: qcom: sm8550: add xiaomi pad 6s pro (sheng) dts
2026-07-21 14:21 [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng) code_0002
` (4 preceding siblings ...)
2026-07-21 15:34 ` [PATCH v6] " Tianyuan Jiang
@ 2026-07-21 16:00 ` Tianyuan Jiang
5 siblings, 0 replies; 9+ messages in thread
From: Tianyuan Jiang @ 2026-07-21 16:00 UTC (permalink / raw)
To: krzk
Cc: konrad.dybcio, robh, krzk+dt, conor+dt, andersson, linux-arm-msm,
devicetree, linux-kernel, Tianyuan Jiang
Hi Krzysztof,
I sincerely apologise for the rapid version spam (v2-v6 in one hour).
That was completely wrong and I understand your frustration. It happened
because of a misconfiguration in my automated workflow -- I was trying
to fix issues iteratively but each fix triggered a new send without
proper review. This will not happen again.
Here is the checkpatch.pl --strict output on the latest DTS (v6 fixes
applied):
total: 0 errors, 81 warnings, 0 checks, 1769 lines checked
The 81 warnings are all "DT compatible string appears un-documented".
Most are false positives because I'm on Windows without grep, so
checkpatch cannot search the bindings directory. Compatibles like
qcom,sm8550, regulator-fixed, gpio-keys, usb-c-connector etc. are
properly documented in the tree. In a normal Linux environment with grep
available, I expect the count to drop significantly.
Changes since v2 (based on review feedback from Konrad and others):
- Removed all output-low/output-high from TLMM pinctrl (Konrad)
- Reordered root-level nodes alphabetically (Konrad)
- pinctrl-n placed before pinctrl-names file-wide (Konrad)
- cs35l43 reset: GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN (Konrad)
- firmware-name paths: qcom/sm8550/xiaomi-sheng/ (Konrad)
- ktz8866a: add kinetic,ktz8866 fallback compatible
- assigned-clocks added to mdss_dsi1
- Removed msm-id, board-id, Xiaomi-specific comments
- Removed udmabuf bootargs (confirmed not in use)
- Fixed node sorting, alignment, and comment style
- Fixed From/Signed-off-by to use real name: Tianyuan Jiang
- Line length fixed (mbhc-buttons-vthreshold-microvolt)
Regarding the undocumented DT compatibles (fpc,fpc1020, gt9764, ps5169,
novatek,nt36532e, etc.), I am preparing separate bindings patches for
each and plan to submit them as a series. Would it be acceptable to you
to land the DTS first with these as follow-up patches, or do you prefer
all bindings to be merged before the DTS?
I will send one clean v7 once we align on the approach. No more version
spam. Thank you for your patience.
Regards,
Tianyuan Jiang
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-07-21 16:00 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-21 14:21 [PATCH v2] arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng) code_0002
2026-07-21 14:41 ` Konrad Dybcio
2026-07-21 14:41 ` Konrad Dybcio
2026-07-21 14:49 ` sashiko-bot
2026-07-21 15:22 ` Krzysztof Kozlowski
2026-07-21 15:34 ` [PATCH v6] " Tianyuan Jiang
2026-07-21 15:46 ` Krzysztof Kozlowski
2026-07-21 15:52 ` sashiko-bot
2026-07-21 16:00 ` [PATCH v2] arm64: dts: qcom: sm8550: add xiaomi pad 6s pro (sheng) dts Tianyuan Jiang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox