arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
PATCH v2 1/1 arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
From: map220v <[email protected]>
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
--- 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
arch/arm64/boot/dts/qcom/Makefile +1 -0
@@ -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
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +1788 -0
1,788 lines not on this page · raw message
Signature · 1 line
2.54.0.windows.1
Quoted 6 lines · On 7/21/26 4:21 PM, [email protected] wrote:
From: map220v <[email protected]>
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
Signed-off-by code002-2 <[email protected]>---
You sent a v2 with no context and no changelog. Please follow:
https://docs.kernel.org/process/submitting-patches.html
Quoted 1,811 lines
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.dtsarch/arm64/boot/dts/qcom/Makefile +1
-0@@ -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.dtboarch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +1788
-0@@ -0,0 +1,1788 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024, map220v <[email protected]> + */ + +/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>; +};
Quoted 6 lines · On 7/21/26 4:21 PM, [email protected] wrote:
From: map220v <[email protected]>
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
Signed-off-by code002-2 <[email protected]>---
You sent a v2 with no context and no changelog. Please follow:
https://docs.kernel.org/process/submitting-patches.html
Konrad
[email protected]
AI reviewThank 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…
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 <[email protected]>
arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
Quoted 5 lines
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +0
-0
[ ... ]
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 1046
Quoted 8 lines
+&i2c1 {
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +7
-0+ 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.
[ ... ]
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 1063
Quoted 10 lines
+&i2c5 {
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +9
-0+ 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?
[ ... ]
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 1726
Quoted 7 lines
+&uart14 {
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +6
-0+ 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.
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
Quoted 5 lines · On 21/07/2026 16:21, [email protected] wrote:
From: map220v <[email protected]>
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
Signed-off-by code002-2 <[email protected]>
We do not allow anonynomus contributions.
Please read carefully submitting patches document.
Quoted 73 lines
--- 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.dtsarch/arm64/boot/dts/qcom/Makefile +1
-0@@ -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.dtboarch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +49
-0@@ -0,0 +1,1788 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024, map220v <[email protected]> + */ + +/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;
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 59
Quoted 10 lines
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +10
-0+ +/* 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.
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 61
Quoted 2 lines
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +2
-0+ 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
PATCH v6 1/1 arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
In reply to [email protected]From: Tianyuan Jiang <[email protected]>
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
---
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
arch/arm64/boot/dts/qcom/Makefile +1 -0
@@ -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
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +1761 -0
1,761 lines not on this page · raw message
Signature · 1 line
2.54.0.windows.1
Quoted 8 lines · Tianyuan Jiang
From: Tianyuan Jiang <[email protected]>
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
Signed-off-by Tianyuan Jiang <[email protected]>---
v6: address Sashiko AI review on v4
What is happening here? v2 was sent 1 hour ago and immediately this?
AGAIN, read submitting patches.
Quoted 91 lines
- 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 inmdss_dsi1v5: address additional Sashiko AI review on v3/v4
- Add assigned-clocks alongside assigned-clock-parents inmdss_dsi1
- Actually remove output-high fromi2s1_defaultpinctrl (missed in v3)v4: address Sashiko AI review comments
- AddGPIO_OPEN_DRAINto 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)
- Renamefingerprint_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.dtsarch/arm64/boot/dts/qcom/Makefile +1
-0@@ -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.dtboarch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +43
-0@@ -0,0 +1,1761 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024, map220v <[email protected]> + */ + +/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; +
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 53
Quoted 10 lines
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +10
-0+/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
[email protected]
AI reviewThank 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…
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 <[email protected]>
arm64: dts: qcom: sm8550: add Xiaomi Pad 6S Pro (sheng)
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
Quoted 7 lines
Signed-off-by: Tianyuan Jiang <[email protected]>---
v6: address Sashiko AI review on v4
- Fix cs35l43 reset-gpios polarity: useGPIO_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?
Quoted 6 lines
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +0
-0@@ -0,0 +1,1761 @@
[ ... ]
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 44
Quoted 6 lines
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +6
-0+/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.
[ ... ]
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 1037
Quoted 6 lines
+&i2c5 {
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +5
-0+ 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.
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
Quoted 5 lines · Tianyuan Jiang
From: Tianyuan Jiang <[email protected]>
Add device tree for Xiaomi Pad 6S Pro (sheng) based on SM8550.
Signed-off-by Tianyuan Jiang <[email protected]>
[...]
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 251
Quoted 7 lines
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +7
-0+ /* Required for libcamera to allocate buffers when cma is used. */ + linux,cma { + compatible = "shared-dma-pool"; + size = <0x0 0x30000000>; + reusable; + linux,cma-default; + };
If you update libcamera and enable DMABUFS in the kernel, is this still necessary?
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 958
Quoted 5 lines
+&ipa {
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +4
-0+ qcom,gsi-loader = "self"; + memory-region = <&ipa_fw_mem>; + firmware-name = "qcom/sm8550/xiaomi-sheng/ipa_fws.mbn"; + status = "okay";
nit: please keep a \n before 'status' consistently, file-wide
[...]
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 1171
Quoted 1 line
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +1
-0+ nanosic_mcu@4c {
Node names must not contain underscores
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 1172
Quoted 1 line
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +1
-0+ compatible = "nanosic,wn8030-sheng";
This compatible is not documented and I see no references in your message
[...]
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 1478
Quoted 5 lines
+&spi4 {
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +4
-0+ status = "okay"; + + touchscreen@0 { + compatible = "novatek,NVT-ts-spi";
Likewise
[...]
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts line 1699
Quoted 7 lines
+&uart14 {
arch/arm64/boot/dts/qcom/sm8550-xiaomi-sheng.dts new file +6
-0+ status = "okay"; + + bluetooth { + compatible = "qcom,wcn7850-bt"; + + local-bd-address = [ 00 00 00 00 00 00 ];
I assume the bootloader doesn't update this, in which case I don't think there's a good reason to keep this property here
Konrad
Re: [PATCH v2] arm64: dts: qcom: sm8550: add xiaomi pad 6s pro (sheng) dts
In reply to [email protected]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