* [PATCH 0/2] arm64: dts: qcom: Add support for the Xiaomi 17 Ultra series of devices
@ 2026-10-16 20:03 Igor Belwon
2026-10-16 20:03 ` [PATCH 1/2] dt-bindings: arm: qcom: Document Xiaomi 17 Ultra devices Igor Belwon
2026-10-16 20:03 ` [PATCH 2/2] arm64: dts: qcom: Add support for Xiaomi 17 Ultra phones Igor Belwon
0 siblings, 2 replies; 6+ messages in thread
From: Igor Belwon @ 2026-10-16 20:03 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Igor Belwon
Hi,
This series adds support for the Xiaomi 17 Ultra series of devices,
consisting of the Chinese domestic region version of the device as well
as the EEA version. The only real difference in the devices is the
battery capacity.
Currently only basic devicetree support is added, with driver support
for the display panel as well as other hardware blocks to be added in
future patch series.
Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
---
Igor Belwon (2):
dt-bindings: arm: qcom: Document Xiaomi 17 Ultra devices
arm64: dts: qcom: Add support for Xiaomi 17 Ultra phones
Documentation/devicetree/bindings/arm/qcom.yaml | 9 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/kaanapali-xiaomi-nezha-cn.dts | 20 +
.../dts/qcom/kaanapali-xiaomi-nezha-common.dtsi | 899 +++++++++++++++++++++
.../boot/dts/qcom/kaanapali-xiaomi-nezha-eea.dts | 20 +
5 files changed, 949 insertions(+)
---
base-commit: 2efb7a11f1aa4d2dc285fe2680cca22cb9f72f64
change-id: 20261016-nezha-00e9b93521f2
Best regards,
--
Igor Belwon <igor.belwon@mentallysanemainliners.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] dt-bindings: arm: qcom: Document Xiaomi 17 Ultra devices
2026-10-16 20:03 [PATCH 0/2] arm64: dts: qcom: Add support for the Xiaomi 17 Ultra series of devices Igor Belwon
@ 2026-10-16 20:03 ` Igor Belwon
2026-10-16 20:08 ` sashiko-bot
2026-10-16 20:03 ` [PATCH 2/2] arm64: dts: qcom: Add support for Xiaomi 17 Ultra phones Igor Belwon
1 sibling, 1 reply; 6+ messages in thread
From: Igor Belwon @ 2026-10-16 20:03 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Igor Belwon
Add compatibles for the Xiaomi 17 Ultra devices, consisting of the
EU model with a smaller capacity battery and the CN model.
Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 121ca557ce1e..b0eb7c912b91 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -173,10 +173,19 @@ properties:
- qcom,hawi-mtp
- const: qcom,hawi
+ - description: Xiaomi 17 Ultra
+ items:
+ - enum:
+ - xiaomi,nezha-cn
+ - xiaomi,nezha-eea
+ - const: xiaomi,nezha
+ - const: qcom,kaanapali
+
- items:
- enum:
- qcom,kaanapali-mtp
- qcom,kaanapali-qrd
+ - xiaomi,nezha
- const: qcom,kaanapali
- items:
--
2.56.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] arm64: dts: qcom: Add support for Xiaomi 17 Ultra phones
2026-10-16 20:03 [PATCH 0/2] arm64: dts: qcom: Add support for the Xiaomi 17 Ultra series of devices Igor Belwon
2026-10-16 20:03 ` [PATCH 1/2] dt-bindings: arm: qcom: Document Xiaomi 17 Ultra devices Igor Belwon
@ 2026-10-16 20:03 ` Igor Belwon
2026-10-16 20:19 ` sashiko-bot
1 sibling, 1 reply; 6+ messages in thread
From: Igor Belwon @ 2026-10-16 20:03 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Igor Belwon
The Xiaomi 17 Ultra device, codenamed 'nezha', is a flagship mobile
phone released by Xiaomi in 2025 (China)/2026 (EEA). It uses the
Qualcomm Kaanapali SoC.
This device's configuration is based on the 'MTP' from Qualcomm,
as is also referenced in the downstream sources. Apart from the
usual differences (i.e. codecs, panel), it also uses the newer
WCN7860 (peach) connectivity chip, which is why WiFi/BT are not
brought up.
The difference between the EEA and the Chinese model is the battery
capacity, notably, the EEA model has a smaller 6000 mAh battery when
compared to the CN 6800 mAh SiC battery.
Currently implemented features are:
- Booting
- Power and volume keys
- Storage (UFS)
- USB-C Peripheral and Host modes
- GPU
- Fuel gauge
- ADSP, CDSP, SoCCP remote processors
Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../boot/dts/qcom/kaanapali-xiaomi-nezha-cn.dts | 20 +
.../dts/qcom/kaanapali-xiaomi-nezha-common.dtsi | 899 +++++++++++++++++++++
.../boot/dts/qcom/kaanapali-xiaomi-nezha-eea.dts | 20 +
4 files changed, 940 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 88230c4e00ea..a00871781c8f 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -50,6 +50,7 @@ dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp454.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq9650-rdp488.dtb
dtb-$(CONFIG_ARCH_QCOM) += kaanapali-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += kaanapali-qrd.dtb
+dtb-$(CONFIG_ARCH_QCOM) += kaanapali-xiaomi-nezha-cn.dtb kaanapali-xiaomi-nezha-eea.dtb
dtb-$(CONFIG_ARCH_QCOM) += lemans-evk.dtb
lemans-evk-camera-csi1-imx577-dtbs := lemans-evk.dtb lemans-evk-camera-csi1-imx577.dtbo
diff --git a/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-cn.dts b/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-cn.dts
new file mode 100644
index 000000000000..564f22bff203
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-cn.dts
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2026, Igor Belwon <igor.belwon@mentallysanemainliners.org>
+ */
+
+/dts-v1/;
+
+#include "kaanapali-xiaomi-nezha-common.dtsi"
+
+/ {
+ model = "Xiaomi 17 Ultra (China)";
+ compatible = "xiaomi,nezha-cn", "xiaomi,nezha", "qcom,kaanapali";
+};
+
+// Battery model: BM6N
+&battery {
+ voltage-min-design-microvolt = <3200000>;
+ energy-full-design-microwatt-hours = <25840000>;
+ charge-full-design-microamp-hours = <6800000>;
+};
diff --git a/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-common.dtsi b/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-common.dtsi
new file mode 100644
index 000000000000..fce2d9e0f8b2
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-common.dtsi
@@ -0,0 +1,899 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ * Copyright (c) 2026, Igor Belwon <igor.belwon@mentallysanemainliners.org>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "kaanapali.dtsi"
+
+#include "pm8010-kaanapali.dtsi" /* SPMI1: SID-12/13 */
+#include "pmd8028-kaanapali.dtsi" /* SPMI1: SID-4 */
+#include "pmh0101.dtsi" /* SPMI0: SID-1 */
+#include "pmh0104-kaanapali.dtsi" /* SPMI1: SID-9 */
+#include "pmh0110-kaanapali.dtsi" /* SPMI0: SID-3/5/6/8 */
+#include "pmih0108-kaanapali.dtsi" /* SPMI1: SID-7 */
+#include "pmk8850.dtsi" /* SPMI0: SID-0 */
+#include "pmr735d-kaanapali.dtsi" /* SPMI1: SID-10 */
+
+/ {
+ chassis-type = "handset";
+
+ battery: battery {
+ compatible = "simple-battery";
+ };
+
+ // Without this node, the bootloader will get mad and reject our dtb.
+ chosen {};
+
+ clocks {
+ xo_board: xo-board {
+ compatible = "fixed-clock";
+ clock-frequency = <76800000>;
+ #clock-cells = <0>;
+ };
+
+ sleep_clk: sleep-clk {
+ compatible = "fixed-clock";
+ clock-frequency = <32000>;
+ #clock-cells = <0>;
+ };
+
+ bi_tcxo_div2: bi-tcxo-div2-clk {
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+
+ clocks = <&rpmhcc RPMH_CXO_CLK>;
+ clock-mult = <1>;
+ clock-div = <2>;
+ };
+
+ bi_tcxo_ao_div2: bi-tcxo-ao-div2-clk {
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+
+ clocks = <&rpmhcc RPMH_CXO_CLK_A>;
+ clock-mult = <1>;
+ clock-div = <2>;
+ };
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&key_vol_up_default>;
+ pinctrl-names = "default";
+
+ key-volume-up {
+ label = "Volume Up";
+ linux,code = <KEY_VOLUMEUP>;
+ gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
+ debounce-interval = <15>;
+ linux,can-disable;
+ wakeup-source;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,kaanapali-pmic-glink",
+ "qcom,pmic-glink";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ 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_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss_in: endpoint {
+ remote-endpoint = <&usb_dp_qmpphy_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_sbu: endpoint {
+ };
+ };
+ };
+ };
+ };
+
+ reserved-memory {
+ /*
+ * If we do not have this exact region with this exact name
+ * present, the bootloader disables the display panel and
+ * for some reason it cannot be re-enabled.
+ */
+ splashmem: splash_region {
+ reg = <0x0 0xfc800000 0x0 0x2b00000>;
+ no-map;
+ };
+
+ /delete-node/ pdp@81300000;
+ pdp_mem: pdp@81300000 {
+ reg = <0x0 0x81200000 0x0 0x200000>;
+ no-map;
+ };
+
+ /delete-node/ adspslpi@a1400000;
+ adspslpi_mem: adspslpi@a1400000 {
+ reg = <0x0 0xa1400000 0x0 0x5580000>;
+ no-map;
+ };
+ };
+
+ ts_vdd_regulator: regulator-tsvdd {
+ compatible = "regulator-fixed";
+ regulator-name = "ts_vdd";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+
+ gpio = <&tlmm 215 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pmh0101-rpmh-regulators";
+ qcom,pmic-id = "B_E0";
+
+ vreg_bob1: bob1 {
+ regulator-name = "vreg_bob1";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <4000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob2: bob2 {
+ regulator-name = "vreg_bob2";
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <3552000>;
+ 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_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l2b_3p0: ldo2 {
+ regulator-name = "vreg_l2b_3p0";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3048000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l4b_1p8: ldo4 {
+ regulator-name = "vreg_l4b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l5b_3p1: ldo5 {
+ regulator-name = "vreg_l5b_3p1";
+ regulator-min-microvolt = <3100000>;
+ regulator-max-microvolt = <3148000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l6b_1p8: ldo6 {
+ regulator-name = "vreg_l6b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l7b_1p8: ldo7 {
+ regulator-name = "vreg_l7b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l8b_1p8: ldo8 {
+ regulator-name = "vreg_l8b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l9b_3p3: ldo9 {
+ regulator-name = "vreg_l9b_3p3";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ 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_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l11b_1p0: ldo11 {
+ regulator-name = "vreg_l11b_1p0";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1292000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l12b_1p8: ldo12 {
+ regulator-name = "vreg_l12b_1p8";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l13b_3p0: ldo13 {
+ regulator-name = "vreg_l13b_3p0";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l14b_3p2: ldo14 {
+ regulator-name = "vreg_l14b_3p2";
+ regulator-min-microvolt = <3200000>;
+ regulator-max-microvolt = <3200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l15b_1p8: ldo15 {
+ regulator-name = "vreg_l15b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l17b_2p5: ldo17 {
+ regulator-name = "vreg_l17b_2p5";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <2504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l18b_1p2: ldo18 {
+ regulator-name = "vreg_l18b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pmh0110-rpmh-regulators";
+ qcom,pmic-id = "D_E0";
+
+ vreg_s10d_1p0: smps10 {
+ regulator-name = "vreg_s10d_1p0";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1d_1p2: ldo1 {
+ regulator-name = "vreg_l1d_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1256000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l2d_0p9: ldo2 {
+ regulator-name = "vreg_l2d_0p9";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <958000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l3d_0p8: ldo3 {
+ regulator-name = "vreg_l3d_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l4d_1p2: ldo4 {
+ regulator-name = "vreg_l4d_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pmh0110-rpmh-regulators";
+ qcom,pmic-id = "F_E0";
+
+ vreg_s6f_0p5: smps6 {
+ regulator-name = "vreg_s6f_0p5";
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <570000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s7f_1p2: smps7 {
+ regulator-name = "vreg_s7f_1p2";
+ regulator-min-microvolt = <1224000>;
+ regulator-max-microvolt = <1372000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s8f_1p8: smps8 {
+ regulator-name = "vreg_s8f_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1f_1p2: ldo1 {
+ regulator-name = "vreg_l1f_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l2f_1p2: ldo2 {
+ regulator-name = "vreg_l2f_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l3f_0p8: ldo3 {
+ regulator-name = "vreg_l3f_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <936000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l4f_0p8: ldo4 {
+ regulator-name = "vreg_l4f_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+ };
+
+ regulators-3 {
+ compatible = "qcom,pmh0110-rpmh-regulators";
+ qcom,pmic-id = "G_E0";
+
+ vreg_s7g_0p9: smps7 {
+ regulator-name = "vreg_s7g_0p9";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s9g_1p0: smps9 {
+ regulator-name = "vreg_s9g_1p0";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1100000>;
+ 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_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l2g_1p8: ldo2 {
+ regulator-name = "vreg_l2g_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l3g_1p2: ldo3 {
+ regulator-name = "vreg_l3g_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l4g_0p9: ldo4 {
+ regulator-name = "vreg_l4g_0p9";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+ };
+
+ regulators-4 {
+ compatible = "qcom,pmh0110-rpmh-regulators";
+ qcom,pmic-id = "I_E0";
+
+ vreg_s7i_0p9: smps7 {
+ regulator-name = "vreg_s7i_0p9";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <972000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2i_1p2: ldo2 {
+ regulator-name = "vreg_l2i_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l3i_0p8: ldo3 {
+ regulator-name = "vreg_l3i_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+
+ vreg_l4i_1p8: ldo4 {
+ regulator-name = "vreg_l4i_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_AUTO>;
+ };
+ };
+
+ regulators-5 {
+ compatible = "qcom,pmh0104-rpmh-regulators";
+ qcom,pmic-id = "J_E1";
+
+ vreg_s1j_0p8: smps1 {
+ regulator-name = "vreg_s1j_0p8";
+ regulator-min-microvolt = <400000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s2j_0p8: smps2 {
+ regulator-name = "vreg_s2j_0p8";
+ regulator-min-microvolt = <500000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s3j_1p2: smps3 {
+ regulator-name = "vreg_s3j_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1300000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s4j_0p7: smps4 {
+ regulator-name = "vreg_s4j_0p7";
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-6 {
+ compatible = "qcom,pmr735d-rpmh-regulators";
+ qcom,pmic-id = "K_E1";
+
+ vreg_l1k_0p8: ldo1 {
+ regulator-name = "vreg_l1k_0p8";
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2k_0p7: ldo2 {
+ regulator-name = "vreg_l2k_0p7";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3k_1p2: ldo3 {
+ regulator-name = "vreg_l3k_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4k_1p0: ldo4 {
+ regulator-name = "vreg_l4k_1p0";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5k_0p7: ldo5 {
+ regulator-name = "vreg_l5k_0p7";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6k_1p7: ldo6 {
+ regulator-name = "vreg_l6k_1p7";
+ regulator-min-microvolt = <1700000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7k_0p7: ldo7 {
+ regulator-name = "vreg_l7k_0p7";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <848000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-7 {
+ compatible = "qcom,pm8010-rpmh-regulators";
+ qcom,pmic-id = "M_E1";
+
+ vreg_l1m_1p0: ldo1 {
+ regulator-name = "vreg_l1m_1p0";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2m_1p0: ldo2 {
+ regulator-name = "vreg_l2m_1p0";
+ regulator-min-microvolt = <1096000>;
+ regulator-max-microvolt = <1104000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3m_2p8: ldo3 {
+ regulator-name = "vreg_l3m_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2900000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4m_2p2: ldo4 {
+ regulator-name = "vreg_l4m_2p2";
+ regulator-min-microvolt = <2200000>;
+ regulator-max-microvolt = <2200000>;
+ 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_2p8: ldo7 {
+ regulator-name = "vreg_l7m_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-8 {
+ compatible = "qcom,pm8010-rpmh-regulators";
+ qcom,pmic-id = "N_E1";
+
+ vreg_l1n_1p1: ldo1 {
+ regulator-name = "vreg_l1n_1p1";
+ regulator-min-microvolt = <1096000>;
+ regulator-max-microvolt = <1104000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2n_1p2: ldo2 {
+ regulator-name = "vreg_l2n_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3n_1p8: ldo3 {
+ regulator-name = "vreg_l3n_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4n_1p8: ldo4 {
+ regulator-name = "vreg_l4n_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5n_2p8: ldo5 {
+ regulator-name = "vreg_l5n_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6n_2p8: ldo6 {
+ regulator-name = "vreg_l6n_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7n_3p3: ldo7 {
+ regulator-name = "vreg_l7n_3p3";
+ regulator-min-microvolt = <3304000>;
+ regulator-max-microvolt = <3304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/kaanapali/xiaomi/nezha/gen80200_zap.mbn";
+};
+
+&i2c5 {
+ status = "okay";
+
+ bq27z561: fuel-gauge@55 {
+ compatible = "ti,bq27z561";
+ reg = <0x55>;
+ monitored-battery = <&battery>;
+ };
+};
+
+&spi19 {
+ status = "okay";
+
+ /* Synaptics TCM touch screen */
+};
+
+&pmih0108_e1_eusb2_repeater {
+ qcom,tune-usb2-amplitude = /bits/ 8 <0x1>;
+ qcom,tune-usb2-disc-thres = /bits/ 8 <0x3>;
+ qcom,tune-usb2-preem = /bits/ 8 <0x2>;
+ qcom,tune-res-fsdif = /bits/ 8 <0x7>;
+ qcom,squelch-detector-bp = <(0)>;
+
+ vdd18-supply = <&vreg_l15b_1p8>;
+ vdd3-supply = <&vreg_l5b_3p1>;
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/kaanapali/Xiaomi/nezha/adsp.mbn",
+ "qcom/kaanapali/Xiaomi/nezha/adsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/kaanapali/Xiaomi/nezha/cdsp.mbn",
+ "qcom/kaanapali/Xiaomi/nezha/cdsp_dtb.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_soccp {
+ firmware-name = "qcom/kaanapali/Xiaomi/nezha/soccp.mbn",
+ "qcom/kaanapali/Xiaomi/nezha/soccp_dtb.mbn";
+};
+
+&tlmm {
+ gpio-reserved-ranges = <28 4>, /* Unknown */
+ <36 8>, /* Secure NFC */
+ <74 1>, /* eSE */
+ <119 1>, /* SoCCP */
+ <144 4>; /* CXM UART */
+
+ key_vol_up_default: key-vol-up-default-state {
+ pins = "gpio101";
+ function = "gpio";
+ output-disable;
+ bias-pull-up;
+ };
+};
+
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 217 GPIO_ACTIVE_LOW>;
+
+ vcc-supply = <&vreg_l17b_2p5>;
+ vcc-max-microamp = <1200000>;
+ vccq-supply = <&vreg_l4d_1p2>;
+ vccq-max-microamp = <1200000>;
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l4g_0p9>;
+ vdda-pll-supply = <&vreg_l1d_1p2>;
+
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+};
+
+&usb_hsphy {
+ vdd-supply = <&vreg_l4f_0p8>;
+ vdda12-supply = <&vreg_l1d_1p2>;
+
+ phys = <&pmih0108_e1_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_dp_qmpphy {
+ vdda-phy-supply = <&vreg_l4f_0p8>;
+ vdda-pll-supply = <&vreg_l1d_1p2>;
+
+ status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+ remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&usb_dwc3_hs {
+ remote-endpoint = <&pmic_glink_hs_in>;
+};
diff --git a/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-eea.dts b/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-eea.dts
new file mode 100644
index 000000000000..996bb52c37be
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-eea.dts
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2026, Igor Belwon <igor.belwon@mentallysanemainliners.org>
+ */
+
+/dts-v1/;
+
+#include "kaanapali-xiaomi-nezha-common.dtsi"
+
+/ {
+ model = "Xiaomi 17 Ultra (EU)";
+ compatible = "xiaomi,nezha-eea", "xiaomi,nezha", "qcom,kaanapali";
+};
+
+// Battery model: BM6P
+&battery {
+ voltage-min-design-microvolt = <3200000>;
+ energy-full-design-microwatt-hours = <22860000>;
+ charge-full-design-microamp-hours = <6000000>;
+};
--
2.56.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: qcom: Document Xiaomi 17 Ultra devices
2026-10-16 20:03 ` [PATCH 1/2] dt-bindings: arm: qcom: Document Xiaomi 17 Ultra devices Igor Belwon
@ 2026-10-16 20:08 ` sashiko-bot
2026-10-16 20:10 ` Igor Belwon
0 siblings, 1 reply; 6+ messages in thread
From: sashiko-bot @ 2026-10-16 20:08 UTC (permalink / raw)
To: Igor Belwon; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] dt-bindings: arm: qcom: redundant xiaomi,nezha in 2-item kaanapali enum
--
commit 48f6e1cb0f2052f10bc7093b9567a5e4e0437429
Author: Igor Belwon <igor.belwon@mentallysanemainliners.org>
dt-bindings: arm: qcom: Document Xiaomi 17 Ultra devices
This commit adds compatible strings for the Xiaomi 17 Ultra EU and CN
device variants to the Qualcomm arm board bindings.
> diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
> index 121ca557ce1ef..b0eb7c912b913 100644
> --- a/Documentation/devicetree/bindings/arm/qcom.yaml
> +++ b/Documentation/devicetree/bindings/arm/qcom.yaml
> @@ -173,10 +173,19 @@ properties:
> - qcom,hawi-mtp
> - const: qcom,hawi
>
> + - description: Xiaomi 17 Ultra
> + items:
> + - enum:
> + - xiaomi,nezha-cn
> + - xiaomi,nezha-eea
> + - const: xiaomi,nezha
> + - const: qcom,kaanapali
> +
> - items:
> - enum:
> - qcom,kaanapali-mtp
> - qcom,kaanapali-qrd
> + - xiaomi,nezha
> - const: qcom,kaanapali
[Severity: Low]
Should xiaomi,nezha be omitted from this two-item qcom,kaanapali enum in
properties:compatible:oneOf?
The Xiaomi 17 Ultra block right above already defines xiaomi,nezha as the
intermediate base compatible beneath xiaomi,nezha-cn and xiaomi,nezha-eea.
Adding xiaomi,nezha to the two-item enum as well allows a device tree root
node with only compatible = "xiaomi,nezha", "qcom,kaanapali" (missing the
required -cn or -eea regional variant compatible) to pass dtbs_check. Other
multi-variant devices in this file (such as xiaomi,beryllium) only list the
shared base compatible as a const in the three-item entry.
>
> - items:
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261016-nezha-v1-0-a39900dfaadd@mentallysanemainliners.org?part=1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: qcom: Document Xiaomi 17 Ultra devices
2026-10-16 20:08 ` sashiko-bot
@ 2026-10-16 20:10 ` Igor Belwon
0 siblings, 0 replies; 6+ messages in thread
From: Igor Belwon @ 2026-10-16 20:10 UTC (permalink / raw)
To: sashiko-reviews, Igor Belwon; +Cc: devicetree, robh, conor+dt
On Fri Oct 16, 2026 at 10:08 PM CEST, sashiko-bot wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Low] dt-bindings: arm: qcom: redundant xiaomi,nezha in 2-item kaanapali enum
> --
>
> commit 48f6e1cb0f2052f10bc7093b9567a5e4e0437429
> Author: Igor Belwon <igor.belwon@mentallysanemainliners.org>
>
> dt-bindings: arm: qcom: Document Xiaomi 17 Ultra devices
>
> This commit adds compatible strings for the Xiaomi 17 Ultra EU and CN
> device variants to the Qualcomm arm board bindings.
>
>> diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
>> index 121ca557ce1ef..b0eb7c912b913 100644
>> --- a/Documentation/devicetree/bindings/arm/qcom.yaml
>> +++ b/Documentation/devicetree/bindings/arm/qcom.yaml
>> @@ -173,10 +173,19 @@ properties:
>> - qcom,hawi-mtp
>> - const: qcom,hawi
>>
>> + - description: Xiaomi 17 Ultra
>> + items:
>> + - enum:
>> + - xiaomi,nezha-cn
>> + - xiaomi,nezha-eea
>> + - const: xiaomi,nezha
>> + - const: qcom,kaanapali
>> +
>> - items:
>> - enum:
>> - qcom,kaanapali-mtp
>> - qcom,kaanapali-qrd
>> + - xiaomi,nezha
>> - const: qcom,kaanapali
>
> [Severity: Low]
> Should xiaomi,nezha be omitted from this two-item qcom,kaanapali enum in
> properties:compatible:oneOf?
>
> The Xiaomi 17 Ultra block right above already defines xiaomi,nezha as the
> intermediate base compatible beneath xiaomi,nezha-cn and xiaomi,nezha-eea.
>
> Adding xiaomi,nezha to the two-item enum as well allows a device tree root
> node with only compatible = "xiaomi,nezha", "qcom,kaanapali" (missing the
> required -cn or -eea regional variant compatible) to pass dtbs_check. Other
> multi-variant devices in this file (such as xiaomi,beryllium) only list the
> shared base compatible as a const in the three-item entry.
Acked, my mistake. Will be fixed in a v2.
Warm regards,
Igor
>
>>
>> - items:
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] arm64: dts: qcom: Add support for Xiaomi 17 Ultra phones
2026-10-16 20:03 ` [PATCH 2/2] arm64: dts: qcom: Add support for Xiaomi 17 Ultra phones Igor Belwon
@ 2026-10-16 20:19 ` sashiko-bot
0 siblings, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-10-16 20:19 UTC (permalink / raw)
To: Igor Belwon; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Medium] arm64: dts: qcom: inconsistent xiaomi vendor casing in nezha firmware-name
- [Low] arm64: dts: qcom: mismatched unit-address on pdp@81300000 reserved-memory node
- [Low] arm64: dts: qcom: unused ts_vdd_regulator and empty spi19 node enabled
--
commit b1cf4bc0135ad608aeddecedf111fee0057493b2
Author: Igor Belwon <igor.belwon@mentallysanemainliners.org>
arm64: dts: qcom: Add support for Xiaomi 17 Ultra phones
This commit adds device tree files for the Xiaomi 17 Ultra phones (China and
EEA variants), which are based on the Qualcomm Kaanapali SoC.
> diff --git a/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-common.dtsi b/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-common.dtsi
> new file mode 100644
> index 0000000000000..fce2d9e0f8b2f
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/kaanapali-xiaomi-nezha-common.dtsi
> @@ -0,0 +1,899 @@
[ ... ]
> + reserved-memory {
> + /*
> + * If we do not have this exact region with this exact name
> + * present, the bootloader disables the display panel and
> + * for some reason it cannot be re-enabled.
> + */
> + splashmem: splash_region {
> + reg = <0x0 0xfc800000 0x0 0x2b00000>;
> + no-map;
> + };
> +
> + /delete-node/ pdp@81300000;
> + pdp_mem: pdp@81300000 {
> + reg = <0x0 0x81200000 0x0 0x200000>;
> + no-map;
> + };
[Severity: Low]
Since pdp_mem moves the base address in reg to 0x81200000 after deleting
pdp@81300000, should the node name be updated to pdp@81200000 so the unit
address matches reg and avoids a dtc warning?
> +
> + /delete-node/ adspslpi@a1400000;
> + adspslpi_mem: adspslpi@a1400000 {
> + reg = <0x0 0xa1400000 0x0 0x5580000>;
> + no-map;
> + };
> + };
> +
> + ts_vdd_regulator: regulator-tsvdd {
> + compatible = "regulator-fixed";
> + regulator-name = "ts_vdd";
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3000000>;
> +
> + gpio = <&tlmm 215 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +};
[ ... ]
> +&gpu {
> + status = "okay";
> +};
> +
> +&gpu_zap_shader {
> + firmware-name = "qcom/kaanapali/xiaomi/nezha/gen80200_zap.mbn";
> +};
> +
> +&i2c5 {
> + status = "okay";
> +
> + bq27z561: fuel-gauge@55 {
> + compatible = "ti,bq27z561";
> + reg = <0x55>;
> + monitored-battery = <&battery>;
> + };
> +};
> +
> +&spi19 {
> + status = "okay";
> +
> + /* Synaptics TCM touch screen */
> +};
[Severity: Low]
With the Synaptics TCM touch screen child node not yet populated in spi19,
should spi19 and ts_vdd_regulator be dropped or left disabled until the touch
screen node is added?
Currently spi19 probes an empty controller and ts_vdd_regulator registers an
unreferenced GPIO regulator on tlmm 215 that regulator_late_cleanup()
Subsequently disables.
[ ... ]
> +&remoteproc_adsp {
> + firmware-name = "qcom/kaanapali/Xiaomi/nezha/adsp.mbn",
> + "qcom/kaanapali/Xiaomi/nezha/adsp_dtb.mbn";
> +
> + status = "okay";
> +};
> +
> +&remoteproc_cdsp {
> + firmware-name = "qcom/kaanapali/Xiaomi/nezha/cdsp.mbn",
> + "qcom/kaanapali/Xiaomi/nezha/cdsp_dtb.mbn";
> +
> + status = "okay";
> +};
> +
> +&remoteproc_soccp {
> + firmware-name = "qcom/kaanapali/Xiaomi/nezha/soccp.mbn",
> + "qcom/kaanapali/Xiaomi/nezha/soccp_dtb.mbn";
> +};
[Severity: Medium]
Will firmware loading fail with -ENOENT on case-sensitive filesystems for
either the GPU or the remote processors?
Above, gpu_zap_shader uses lowercase "xiaomi" in its path:
firmware-name = "qcom/kaanapali/xiaomi/nezha/gen80200_zap.mbn";
whereas remoteproc_adsp, remoteproc_cdsp, and remoteproc_soccp use capitalized
"Xiaomi":
firmware-name = "qcom/kaanapali/Xiaomi/nezha/adsp.mbn",
"qcom/kaanapali/Xiaomi/nezha/adsp_dtb.mbn";
Should these all use the same vendor directory casing?
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261016-nezha-v1-0-a39900dfaadd@mentallysanemainliners.org?part=2
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-10-16 20:19 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-16 20:03 [PATCH 0/2] arm64: dts: qcom: Add support for the Xiaomi 17 Ultra series of devices Igor Belwon
2026-10-16 20:03 ` [PATCH 1/2] dt-bindings: arm: qcom: Document Xiaomi 17 Ultra devices Igor Belwon
2026-10-16 20:08 ` sashiko-bot
2026-10-16 20:10 ` Igor Belwon
2026-10-16 20:03 ` [PATCH 2/2] arm64: dts: qcom: Add support for Xiaomi 17 Ultra phones Igor Belwon
2026-10-16 20:19 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox