Devicetree
 help / color / mirror / Atom feed
* [PATCH 0/7] arm64: dts: qcom: IdeaCentre Mini 01Q8X10 Hamoa + Purwa
@ 2026-09-05  9:28 Jens Glathe via B4 Relay
  2026-09-05  9:28 ` [PATCH 1/7] dt-bindings: arm: qcom: Distinguish IdeaCentre Mini 01Q8X10 SKUs Jens Glathe via B4 Relay
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Jens Glathe via B4 Relay @ 2026-09-05  9:28 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Jens Glathe

The IdeaCentre Mini 01Q8X10 (board 91B6) ships with two SoCs: Hamoa
(X1E80100), already upstream, and Purwa (X1P42100 / X1-26-100). Same
chassis, different silicon. Stubble and the DTB loader need distinct
compatibles.

This series splits the board description into
x1-lenovo-ideacentre-mini-01q8x10.dtsi and adds thin leaves. Each SKU
keeps lenovo,ideacentre-mini-01q8x10 as fallback:

  lenovo,hamoa-ideacentre-mini-01q8x10, lenovo,ideacentre-mini-01q8x10,
  qcom,x1e80100

  lenovo,purwa-ideacentre-mini-01q8x10, lenovo,ideacentre-mini-01q8x10,
  qcom,x1p42100

No qcom_scm change; the fallback is already on the allowlist.

The remaining patches fix the common DTSI for both boxes:

- Build the Hamoa EL2 DTB like the other Hamoa boards.
- Second M.2 3V3 is PMC8380_3 GPIO5, not TLMM18. A 2 s startup delay
  is required or pcie3 fails to probe. always-on is a hack until there
  is a real M.2 power sequencer.
- sound-name-prefix on the three DP ports. Enable lpass_vamacro: no
  onboard mics, but it provides fsgen for tx_macro and rx_macro.
- usb_mp port 1 is not populated (no PTN3222 @ 0x4f). USB-C is
  usb_1_ss0; rear Type-A is usb_mp port 0 behind a Genesys hub.

The Genesys hub is left undescribed.

UCM [1] and AudioReach [2] topology for these devices are online, too.

Tested on:
- IdeaCentre Mini 01Q8X10, Purwa (X1-26-100), 91B6
- Hamoa: compile-tested only

[1]: https://github.com/alsa-project/alsa-ucm-conf/pull/843
[2]: https://github.com/linux-msm/audioreach-topology/pull/74

Assisted-by: Grok 4.5 (xAI)
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
Jens Glathe (7):
      dt-bindings: arm: qcom: Distinguish IdeaCentre Mini 01Q8X10 SKUs
      arm64: dts: qcom: Split IdeaCentre Mini into a common DTSI
      arm64: dts: qcom: Add Purwa IdeaCentre Mini 01Q8X10
      arm64: dts: qcom: ideacentre-mini: Build the Hamoa EL2 DTB
      arm64: dts: qcom: ideacentre-mini: Fix the second M.2 3V3 rail
      arm64: dts: qcom: ideacentre-mini: Wire up DP sound names and VA macro
      arm64: dts: qcom: ideacentre-mini: Drop the unused USB MP port

 Documentation/devicetree/bindings/arm/qcom.yaml    |   11 +-
 arch/arm64/boot/dts/qcom/Makefile                  |    8 +-
 .../qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts  | 1188 +-------------------
 .../qcom/purwa-lenovo-ideacentre-mini-01q8x10.dts  |   42 +
 .../qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi    | 1185 +++++++++++++++++++
 5 files changed, 1246 insertions(+), 1188 deletions(-)
---
base-commit: af5f12805e5cefa4fe68d6127c7e1fb78cd5535c
change-id: 20260905-x1-ideacentre-mini-prettify-a5d349d8954f

Best regards,
-- 
Jens Glathe <jens.glathe@oldschoolsolutions.biz>



^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/7] dt-bindings: arm: qcom: Distinguish IdeaCentre Mini 01Q8X10 SKUs
  2026-09-05  9:28 [PATCH 0/7] arm64: dts: qcom: IdeaCentre Mini 01Q8X10 Hamoa + Purwa Jens Glathe via B4 Relay
@ 2026-09-05  9:28 ` Jens Glathe via B4 Relay
  2026-09-05  9:28 ` [PATCH 2/7] arm64: dts: qcom: Split IdeaCentre Mini into a common DTSI Jens Glathe via B4 Relay
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Jens Glathe via B4 Relay @ 2026-09-05  9:28 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Jens Glathe

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

The Lenovo IdeaCentre Mini 01Q8X10 exists on both X1E80100 (Hamoa) and
X1P42100 (Purwa). A single two-entry compatible cannot tell those
device trees apart.

Move the board out of the generic X1E80100 enum and document two
three-entry lists:

  lenovo,hamoa-ideacentre-mini-01q8x10, lenovo,ideacentre-mini-01q8x10,
  qcom,x1e80100

  lenovo,purwa-ideacentre-mini-01q8x10, lenovo,ideacentre-mini-01q8x10,
  qcom,x1p42100

Assisted-by: Grok 4.5 (xAI)
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 Documentation/devicetree/bindings/arm/qcom.yaml | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 5ccb571520d1d..4d6f561a8cac0 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1180,6 +1180,11 @@ properties:
           - const: qcom,x1e001de
           - const: qcom,x1e80100
 
+      - items:
+          - const: lenovo,hamoa-ideacentre-mini-01q8x10
+          - const: lenovo,ideacentre-mini-01q8x10
+          - const: qcom,x1e80100
+
       - items:
           - enum:
               - lenovo,thinkpad-t14s-lcd
@@ -1211,7 +1216,6 @@ properties:
               - honor,magicbook-art-14-snapdragon
               - hp,elitebook-ultra-g1q
               - hp,omnibook-x14
-              - lenovo,ideacentre-mini-01q8x10
               - lenovo,yoga-slim7x
               - microsoft,romulus13
               - microsoft,romulus15
@@ -1230,6 +1234,11 @@ properties:
           - const: microsoft,denali
           - const: qcom,x1e80100
 
+      - items:
+          - const: lenovo,purwa-ideacentre-mini-01q8x10
+          - const: lenovo,ideacentre-mini-01q8x10
+          - const: qcom,x1p42100
+
       - items:
           - const: microsoft,surface-pro-12in
           - const: qcom,x1p42100

-- 
2.53.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/7] arm64: dts: qcom: Split IdeaCentre Mini into a common DTSI
  2026-09-05  9:28 [PATCH 0/7] arm64: dts: qcom: IdeaCentre Mini 01Q8X10 Hamoa + Purwa Jens Glathe via B4 Relay
  2026-09-05  9:28 ` [PATCH 1/7] dt-bindings: arm: qcom: Distinguish IdeaCentre Mini 01Q8X10 SKUs Jens Glathe via B4 Relay
@ 2026-09-05  9:28 ` Jens Glathe via B4 Relay
  2026-09-05  9:28 ` [PATCH 3/7] arm64: dts: qcom: Add Purwa IdeaCentre Mini 01Q8X10 Jens Glathe via B4 Relay
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Jens Glathe via B4 Relay @ 2026-09-05  9:28 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Jens Glathe

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

The IdeaCentre Mini 01Q8X10 chassis is shared by Hamoa (X1E80100) and
Purwa (X1P42100) SKUs. Move the board description into
x1-lenovo-ideacentre-mini-01q8x10.dtsi and leave
hamoa-lenovo-ideacentre-mini-01q8x10.dts as a thin wrapper that includes
the SoC DTSI and the common board file.

Assisted-by: Grok 4.5 (xAI)
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 .../qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts  | 1260 +-------------------
 ....dts => x1-lenovo-ideacentre-mini-01q8x10.dtsi} |   29 -
 2 files changed, 39 insertions(+), 1250 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts b/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts
dissimilarity index 97%
index 75ce8b0c94d2a..2c030c2d99685 100644
--- a/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts
+++ b/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts
@@ -1,1221 +1,39 @@
-// SPDX-License-Identifier: BSD-3-Clause
-/*
- * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
- */
-
-/dts-v1/;
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
-
-#include "hamoa.dtsi"
-#include "hamoa-pmics.dtsi"
-
-/ {
-	model = "Lenovo IdeaCentre Mini 01Q8X10";
-	compatible = "lenovo,ideacentre-mini-01q8x10", "qcom,x1e80100";
-	chassis-type = "desktop";
-
-	aliases {
-		serial0 = &uart14;
-	};
-
-	wcd938x: audio-codec {
-		compatible = "qcom,wcd9385-codec";
-
-		pinctrl-0 = <&wcd_default>;
-		pinctrl-names = "default";
-
-		qcom,micbias1-microvolt = <1800000>;
-		qcom,micbias2-microvolt = <1800000>;
-		qcom,micbias3-microvolt = <1800000>;
-		qcom,micbias4-microvolt = <1800000>;
-		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 191 GPIO_ACTIVE_LOW>;
-		mux-controls = <&us_euro_mux_ctrl>;
-
-		vdd-buck-supply = <&vreg_l15b>;
-		vdd-rxtx-supply = <&vreg_l15b>;
-		vdd-io-supply = <&vreg_l15b>;
-		vdd-mic-bias-supply = <&vreg_bob1>;
-
-		#sound-dai-cells = <1>;
-	};
-
-	dp-connector {
-		compatible = "dp-connector";
-		type = "full-size";
-
-		pinctrl-0 = <&usb1_dp_hot_plug_detect>;
-		pinctrl-names = "default";
-
-		port {
-			dp_port_in: endpoint {
-				remote-endpoint = <&usb_1_ss1_qmpphy_out_dp>;
-			};
-		};
-	};
-
-	hdmi-bridge {
-		compatible = "parade,ps185hdm";
-
-		pinctrl-0 = <&usb2_dp_hot_plug_detect>;
-		pinctrl-names = "default";
-
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			port@0 {
-				reg = <0>;
-
-				hdmi_bridge_in: endpoint {
-					remote-endpoint = <&usb_1_ss2_qmpphy_out_dp>;
-				};
-			};
-
-			port@1 {
-				reg = <1>;
-
-				hdmi_bridge_out: endpoint {
-					remote-endpoint = <&hdmi_con>;
-				};
-			};
-		};
-	};
-
-	hdmi-connector {
-		compatible = "hdmi-connector";
-		type = "a";
-
-		port {
-			hdmi_con: endpoint {
-				remote-endpoint = <&hdmi_bridge_out>;
-			};
-		};
-	};
-
-	us_euro_mux_ctrl: mux-controller {
-		compatible = "gpio-mux";
-		pinctrl-0 = <&us_euro_hs_sel>;
-		pinctrl-names = "default";
-		mux-supply = <&vreg_l16b>;
-		#mux-control-cells = <0>;
-		mux-gpios = <&tlmm 68 GPIO_ACTIVE_HIGH>;
-	};
-
-	pmic-glink {
-		compatible = "qcom,x1e80100-pmic-glink",
-			     "qcom,sm8550-pmic-glink",
-			     "qcom,pmic-glink";
-		orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>;
-
-		#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_port0_hs_in: endpoint {
-						remote-endpoint = <&usb_1_ss0_dwc3_hs>;
-					};
-				};
-
-				port@1 {
-					reg = <1>;
-
-					pmic_glink_port0_ss_in: endpoint {
-						remote-endpoint = <&usb0_retimer_out>;
-					};
-				};
-
-				port@2 {
-					reg = <2>;
-
-					pmic_glink_port0_sbu_in: endpoint {
-						remote-endpoint = <&usb0_retimer_sbu_out>;
-					};
-				};
-			};
-		};
-	};
-
-	vreg_nvme1_3p3: regulator-nvme1-3p3 {
-		compatible = "regulator-fixed";
-
-		regulator-name = "VREG_NVME1_3P3";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-
-		gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-
-		pinctrl-0 = <&nvme_reg_en>;
-		pinctrl-names = "default";
-
-		regulator-boot-on;
-	};
-
-	vreg_nvme2_3p3: regulator-nvme2-3p3 {
-		compatible = "regulator-fixed";
-
-		regulator-name = "VREG_NVME2_3P3";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-
-		gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-
-		pinctrl-0 = <&nvme_reg_en>;
-		pinctrl-names = "default";
-
-		regulator-boot-on;
-	};
-
-	vreg_v0p9: regulator-v0p9 {
-		compatible = "regulator-fixed";
-
-		regulator-name = "V0P9";
-		regulator-min-microvolt = <906000>;
-		regulator-max-microvolt = <906000>;
-
-		gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-
-		pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
-		pinctrl-names = "default";
-
-		regulator-boot-on;
-	};
-
-	vreg_vdd1v8: regulator-vdd1v8 {
-		compatible = "regulator-fixed";
-
-		regulator-name = "VDD1V8";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-
-		vin-supply = <&vreg_l15b>;
-
-		gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-
-		pinctrl-0 = <&usb0_1p8_reg_en>;
-		pinctrl-names = "default";
-
-		regulator-boot-on;
-	};
-
-	vreg_vdd33_rtmr: regulator-vdd33-rtmr {
-		compatible = "regulator-fixed";
-
-		regulator-name = "VDD33_RTMR";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-
-		gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-
-		pinctrl-0 = <&usb0_3p3_reg_en>;
-		pinctrl-names = "default";
-
-		regulator-boot-on;
-	};
-
-	vreg_wcn_0p95: regulator-wcn-0p95 {
-		compatible = "regulator-fixed";
-
-		regulator-name = "VREG_WCN_0P95";
-		regulator-min-microvolt = <950000>;
-		regulator-max-microvolt = <950000>;
-
-		vin-supply = <&vreg_wifi_3v3>;
-	};
-
-	vreg_wifi_3v3: regulator-wcn-3p3 {
-		compatible = "regulator-fixed";
-
-		regulator-name = "WIFI_3V3";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-
-		gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
-		enable-active-high;
-
-		pinctrl-0 = <&wcn_sw_en>;
-		pinctrl-names = "default";
-	};
-
-	vreg_wifi_1v8: regulator-wifi-1v8 {
-		compatible = "regulator-fixed";
-
-		regulator-name = "WIFI_1V8";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <1800000>;
-
-		vin-supply = <&vreg_l15b>;
-	};
-
-	reserved-memory {
-		linux,cma {
-			compatible = "shared-dma-pool";
-			size = <0x0 0x8000000>;
-			reusable;
-			linux,cma-default;
-		};
-	};
-
-	sound {
-		compatible = "qcom,x1e80100-sndcard";
-		model = "X1E80100-LENOVO-IdeaCentre-Mini";
-		audio-routing = "IN1_HPHL", "HPHL_OUT",
-				"IN2_HPHR", "HPHR_OUT",
-				"AMIC2", "MIC BIAS2",
-				"TX SWR_INPUT1", "ADC2_OUTPUT";
-
-		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 1>, <&lpass_txmacro 0>;
-			};
-
-			platform {
-				sound-dai = <&q6apm>;
-			};
-		};
-
-		displayport-0-dai-link {
-			link-name = "DisplayPort0 Playback";
-
-			codec {
-				sound-dai = <&mdss_dp0>;
-			};
-
-			cpu {
-				sound-dai = <&q6apmbedai DISPLAY_PORT_RX_0>;
-			};
-
-			platform {
-				sound-dai = <&q6apm>;
-			};
-		};
-
-		displayport-1-dai-link {
-			link-name = "DisplayPort1 Playback";
-
-			codec {
-				sound-dai = <&mdss_dp1>;
-			};
-
-			cpu {
-				sound-dai = <&q6apmbedai DISPLAY_PORT_RX_1>;
-			};
-
-			platform {
-				sound-dai = <&q6apm>;
-			};
-		};
-
-		displayport-2-dai-link {
-			link-name = "DisplayPort2 Playback";
-
-			codec {
-				sound-dai = <&mdss_dp2>;
-			};
-
-			cpu {
-				sound-dai = <&q6apmbedai DISPLAY_PORT_RX_2>;
-			};
-
-			platform {
-				sound-dai = <&q6apm>;
-			};
-		};
-	};
-
-	wcn7850-pmu {
-		compatible = "qcom,wcn7850-pmu";
-
-		vdd-supply = <&vreg_wcn_0p95>;
-		vddio-supply = <&vreg_l15b>;
-		vddaon-supply = <&vreg_wcn_0p95>;
-		vdddig-supply = <&vreg_wcn_0p95>;
-		vddrfa1p2-supply = <&vreg_wifi_1v8>;
-		vddrfa1p8-supply = <&vreg_wifi_1v8>;
-
-		wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
-		bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
-
-		pinctrl-0 = <&wcn_wlan_bt_en>;
-		pinctrl-names = "default";
-
-		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";
-
-		vreg_bob1: bob1 {
-			regulator-name = "vreg_bob1";
-			regulator-min-microvolt = <3008000>;
-			regulator-max-microvolt = <3960000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-
-		vreg_l2b: ldo2 {
-			regulator-name = "VREG_L2B";
-			regulator-min-microvolt = <3072000>;
-			regulator-max-microvolt = <3072000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-
-		vreg_l4b: ldo4 {
-			regulator-name = "VREG_L4B";
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-
-		vreg_l13b: ldo13 {
-			regulator-name = "VREG_L13B";
-			regulator-min-microvolt = <3072000>;
-			regulator-max-microvolt = <3072000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-
-		vreg_l15b: ldo15 {
-			regulator-name = "VREG_L15B";
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-			regulator-always-on;
-		};
-
-		vreg_l16b: ldo16 {
-			regulator-name = "VREG_L16B";
-			regulator-min-microvolt = <2504000>;
-			regulator-max-microvolt = <2504000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-
-	};
-
-	regulators-1 {
-		compatible = "qcom,pm8550ve-rpmh-regulators";
-		qcom,pmic-id = "c";
-
-		vreg_l3c: ldo3 {
-			regulator-name = "VREG_L3C";
-			regulator-min-microvolt = <912000>;
-			regulator-max-microvolt = <912000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-	};
-
-	regulators-2 {
-		compatible = "qcom,pmc8380-rpmh-regulators";
-		qcom,pmic-id = "d";
-
-		vreg_l1d: ldo1 {
-			regulator-name = "VREG_L1D";
-			regulator-min-microvolt = <880000>;
-			regulator-max-microvolt = <920000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-
-		vreg_l2d: ldo2 {
-			regulator-name = "VREG_L2D";
-			regulator-min-microvolt = <912000>;
-			regulator-max-microvolt = <912000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-
-		vreg_l3d: ldo3 {
-			regulator-name = "VREG_L3D";
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-	};
-
-	regulators-3 {
-		compatible = "qcom,pmc8380-rpmh-regulators";
-		qcom,pmic-id = "e";
-
-		vreg_l2e: ldo2 {
-			regulator-name = "VREG_L2E";
-			regulator-min-microvolt = <880000>;
-			regulator-max-microvolt = <880000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-
-		vreg_l3e: ldo3 {
-			regulator-name = "VREG_L3E";
-			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 = "i";
-
-		vreg_l3i: ldo3 {
-			regulator-name = "VREG_L3I";
-			regulator-min-microvolt = <880000>;
-			regulator-max-microvolt = <920000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-	};
-
-	regulators-5 {
-		compatible = "qcom,pm8550ve-rpmh-regulators";
-		qcom,pmic-id = "j";
-
-		vreg_l1j: ldo1 {
-			regulator-name = "VREG_L1J";
-			regulator-min-microvolt = <912000>;
-			regulator-max-microvolt = <912000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-
-		vreg_l2j: ldo2 {
-			regulator-name = "VREG_L2J";
-			regulator-min-microvolt = <1256000>;
-			regulator-max-microvolt = <1256000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-
-		vreg_l3j: ldo3 {
-			regulator-name = "VREG_L3J";
-			regulator-min-microvolt = <880000>;
-			regulator-max-microvolt = <880000>;
-			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-		};
-	};
-};
-
-&i2c3 {
-	clock-frequency = <400000>;
-
-	status = "okay";
-
-	typec-mux@8 {
-		compatible = "parade,ps8833", "parade,ps8830";
-		reg = <0x08>;
-
-		clocks = <&rpmhcc RPMH_RF_CLK3>;
-
-		vdd-supply = <&vreg_v0p9>;
-		vdd33-supply = <&vreg_vdd33_rtmr>;
-		vdd33-cap-supply = <&vreg_vdd33_rtmr>;
-		vddar-supply = <&vreg_v0p9>;
-		vddat-supply = <&vreg_v0p9>;
-		vddio-supply = <&vreg_vdd1v8>;
-
-		reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
-
-		pinctrl-0 = <&usb0_reset_n>;
-		pinctrl-names = "default";
-
-		retimer-switch;
-		orientation-switch;
-
-		ports {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			port@0 {
-				reg = <0>;
-
-				usb0_retimer_out: endpoint {
-					remote-endpoint = <&pmic_glink_port0_ss_in>;
-				};
-			};
-
-			port@1 {
-				reg = <1>;
-
-				usb0_retimer_in: endpoint {
-					remote-endpoint = <&usb_1_ss0_qmpphy_out>;
-				};
-			};
-
-			port@2 {
-				reg = <2>;
-
-				usb0_retimer_sbu_out: endpoint {
-					remote-endpoint = <&pmic_glink_port0_sbu_in>;
-				};
-			};
-		};
-	};
-};
-
-&i2c5 {
-	clock-frequency = <400000>;
-
-	status = "okay";
-
-	eusb3_repeater: redriver@47 {
-		compatible = "nxp,ptn3222";
-		reg = <0x47>;
-		#phy-cells = <0>;
-
-		vdd3v3-supply = <&vreg_l13b>;
-		vdd1v8-supply = <&vreg_l4b>;
-
-		reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
-
-		pinctrl-0 = <&eusb3_reset_n>;
-		pinctrl-names = "default";
-	};
-
-	eusb6_repeater: redriver@4f {
-		compatible = "nxp,ptn3222";
-		reg = <0x4f>;
-		#phy-cells = <0>;
-
-		vdd3v3-supply = <&vreg_l13b>;
-		vdd1v8-supply = <&vreg_l4b>;
-
-		reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
-
-		pinctrl-0 = <&eusb6_reset_n>;
-		pinctrl-names = "default";
-	};
-};
-
-&iris {
-	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcvss8380.mbn";
-
-	status = "okay";
-};
-
-&gpu {
-	status = "okay";
-};
-
-&gpu_zap_shader {
-	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcdxkmsuc8380.mbn";
-};
-
-&mdss {
-	status = "okay";
-};
-
-&mdss_dp0 {
-	status = "okay";
-};
-
-&mdss_dp0_out {
-	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
-};
-
-&mdss_dp1 {
-	status = "okay";
-};
-
-&mdss_dp1_out {
-	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
-};
-
-&mdss_dp2 {
-	status = "okay";
-};
-
-&mdss_dp2_out {
-	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
-};
-
-&pcie3 {
-	pinctrl-0 = <&pcie3_default>;
-	pinctrl-names = "default";
-
-	vddpe-3v3-supply = <&vreg_nvme2_3p3>;
-
-	status = "okay";
-};
-
-&pcie3_phy {
-	vdda-phy-supply = <&vreg_l3c>;
-	vdda-pll-supply = <&vreg_l3e>;
-
-	status = "okay";
-};
-
-&pcie3_port0 {
-	reset-gpios = <&tlmm 143 GPIO_ACTIVE_LOW>;
-	wake-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
-};
-
-&pcie4 {
-	pinctrl-0 = <&pcie4_default>;
-	pinctrl-names = "default";
-
-	status = "okay";
-};
-
-&pcie4_phy {
-	vdda-phy-supply = <&vreg_l3i>;
-	vdda-pll-supply = <&vreg_l3e>;
-
-	status = "okay";
-};
-
-&pcie4_port0 {
-	reset-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
-	wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
-
-	wifi@0 {
-		compatible = "pci17cb,1107";
-		reg = <0x10000 0x0 0x0 0x0 0x0>;
-
-		vddaon-supply = <&vreg_pmu_aon_0p59>;
-		vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
-		vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
-		vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
-		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>;
-	};
-};
-
-&pcie5 {
-	pinctrl-0 = <&pcie5_default>;
-	pinctrl-names = "default";
-
-	status = "okay";
-};
-
-&pcie5_phy {
-	vdda-phy-supply = <&vreg_l3i>;
-	vdda-pll-supply = <&vreg_l3e>;
-
-	status = "okay";
-};
-
-&pcie5_port0 {
-	reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
-	wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
-};
-
-&pcie6a {
-	vddpe-3v3-supply = <&vreg_nvme1_3p3>;
-
-	pinctrl-0 = <&pcie6a_default>;
-	pinctrl-names = "default";
-
-	status = "okay";
-};
-
-&pcie6a_phy {
-	vdda-phy-supply = <&vreg_l1d>;
-	vdda-pll-supply = <&vreg_l2j>;
-
-	status = "okay";
-};
-
-&pcie6a_port0 {
-	reset-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
-	wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
-};
-
-&pmc8380_5_gpios {
-	usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
-		pins = "gpio8";
-		function = "normal";
-		power-source = <1>;
-		bias-disable;
-		input-disable;
-		output-enable;
-	};
-};
-
-&pm8550_gpios {
-	usb0_reset_n: usb0-reset-n-state {
-		pins = "gpio10";
-		function = "normal";
-		power-source = <1>;
-		bias-disable;
-		input-disable;
-		output-enable;
-	};
-
-	usb0_3p3_reg_en: usb0-3p3-reg-en-state {
-		pins = "gpio11";
-		function = "normal";
-		power-source = <1>;
-		bias-disable;
-		input-disable;
-		output-enable;
-	};
-};
-
-&pm8550ve_9_gpios {
-	usb0_1p8_reg_en: usb0-1p8-reg-en-state {
-		pins = "gpio8";
-		function = "normal";
-		power-source = <1>;
-		bias-disable;
-		input-disable;
-		output-enable;
-	};
-};
-
-&qupv3_0 {
-	status = "okay";
-};
-
-&qupv3_1 {
-	status = "okay";
-};
-
-&qupv3_2 {
-	status = "okay";
-};
-
-&remoteproc_adsp {
-	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcadsp8380.mbn",
-			"qcom/x1e80100/LENOVO/91B6/adsp_dtbs.elf";
-
-	status = "okay";
-};
-
-&remoteproc_cdsp {
-	firmware-name = "qcom/x1e80100/LENOVO/91B6/qccdsp8380.mbn",
-			"qcom/x1e80100/LENOVO/91B6/cdsp_dtbs.elf";
-
-	status = "okay";
-};
-
-&smb2360_0 {
-	status = "okay";
-};
-
-&smb2360_0_eusb2_repeater {
-	vdd18-supply = <&vreg_l3d>;
-	vdd3-supply = <&vreg_l2b>;
-};
-
-&swr1 {
-	status = "okay";
-
-	/* WCD9385 RX */
-	wcd_rx: codec@0,4 {
-		compatible = "sdw20217010d00";
-		reg = <0 4>;
-		qcom,rx-port-mapping = <1 2 3 4 5>;
-	};
-};
-
-&swr2 {
-	status = "okay";
-
-	/* WCD9385 TX */
-	wcd_tx: codec@0,3 {
-		compatible = "sdw20217010d00";
-		reg = <0 3>;
-		qcom,tx-port-mapping = <2 2 3 4>;
-	};
-};
-
-&tcsr {
-	vdda-qrefrpt0-0p9-supply = <&vreg_l3c>;
-	vdda-qrefrpt1-0p9-supply = <&vreg_l3i>;
-	vdda-qrefrpt2-0p9-supply = <&vreg_l3i>;
-	vdda-qrefrpt3-0p9-supply = <&vreg_l3j>;
-	vdda-qrefrpt4-0p9-supply = <&vreg_l1d>;
-	vdda-qrefrx0-0p9-supply = <&vreg_l3c>;
-	vdda-qrefrx1-0p9-supply = <&vreg_l3i>;
-	vdda-qrefrx2-0p9-supply = <&vreg_l3i>;
-	vdda-qrefrx3-0p9-supply = <&vreg_l3j>;
-	vdda-qrefrx4-0p9-supply = <&vreg_l1d>;
-	vdda-qreftx0-0p9-supply = <&vreg_l3j>;
-	vdda-qreftx0-1p2-supply = <&vreg_l2j>;
-	vdda-qreftx1-0p9-supply = <&vreg_l3j>;
-	vdda-qreftx1-1p2-supply = <&vreg_l3e>;
-	vdda-refgen0-0p9-supply = <&vreg_l3i>;
-	vdda-refgen0-1p2-supply = <&vreg_l3e>;
-	vdda-refgen2-0p9-supply = <&vreg_l3j>;
-	vdda-refgen2-1p2-supply = <&vreg_l2j>;
-};
-
-&tlmm {
-	gpio-reserved-ranges = <44 4>,  /* SPI11 (TPM) */
-			       <76 4>,  /* SPI19 (TZ Protected) */
-			       <238 1>; /* UFS Reset */
-
-	eusb3_reset_n: eusb3-reset-n-state {
-		pins = "gpio6";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-		output-low;
-	};
-
-	nvme_reg_en: nvme-reg-en-state {
-		pins = "gpio18";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-	};
-
-	us_euro_hs_sel: us-euro-hs-sel-state {
-		pins = "gpio68";
-		function = "gpio";
-		bias-pull-down;
-		drive-strength = <2>;
-	};
-
-	wcn_wlan_bt_en: wcn-wlan-bt-en-state {
-		pins = "gpio116", "gpio117";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-	};
-
-	usb1_dp_hot_plug_detect: ub1-dp-hot-plug-detect-state {
-		pins = "gpio124";
-		function = "usb1_dp";
-		bias-disable;
-	};
-
-	usb2_dp_hot_plug_detect: usb2-dp-hot-plug-detect-state {
-		pins = "gpio126";
-		function = "usb2_dp";
-		bias-disable;
-	};
-
-	pcie3_default: pcie3-default-state {
-		clkreq-n-pins {
-			pins = "gpio144";
-			function = "pcie3_clk";
-			drive-strength = <2>;
-			bias-pull-up;
-		};
-
-		perst-n-pins {
-			pins = "gpio143";
-			function = "gpio";
-			drive-strength = <2>;
-			bias-pull-down;
-		};
-
-		wake-n-pins {
-			pins = "gpio145";
-			function = "gpio";
-			drive-strength = <2>;
-			bias-pull-up;
-		};
-	};
-
-	pcie4_default: pcie4-default-state {
-		clkreq-n-pins {
-			pins = "gpio147";
-			function = "pcie4_clk";
-			drive-strength = <2>;
-			bias-pull-up;
-		};
-
-		perst-n-pins {
-			pins = "gpio146";
-			function = "gpio";
-			drive-strength = <2>;
-			bias-disable;
-		};
-
-		wake-n-pins {
-			pins = "gpio148";
-			function = "gpio";
-			drive-strength = <2>;
-			bias-pull-up;
-		};
-	};
-
-	pcie5_default: pcie5-default-state {
-		clkreq-n-pins {
-			pins = "gpio150";
-			function = "pcie5_clk";
-			drive-strength = <2>;
-			bias-pull-up;
-		};
-
-		perst-n-pins {
-			pins = "gpio149";
-			function = "gpio";
-			drive-strength = <2>;
-			bias-disable;
-		};
-
-		wake-n-pins {
-			pins = "gpio151";
-			function = "gpio";
-			drive-strength = <2>;
-			bias-pull-up;
-		};
-	};
-
-	pcie6a_default: pcie6a-default-state {
-		clkreq-n-pins {
-			pins = "gpio153";
-			function = "pcie6a_clk";
-			drive-strength = <2>;
-			bias-pull-up;
-		};
-
-		perst-n-pins {
-			pins = "gpio152";
-			function = "gpio";
-			drive-strength = <2>;
-			bias-disable;
-		};
-
-		wake-n-pins {
-			pins = "gpio154";
-			function = "gpio";
-			drive-strength = <2>;
-			bias-pull-up;
-		};
-	};
-
-	eusb6_reset_n: eusb6-reset-n-state {
-		pins = "gpio184";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-		output-low;
-	};
-
-	wcd_default: wcd-reset-n-active-state {
-		pins = "gpio191";
-		function = "gpio";
-		drive-strength = <16>;
-		bias-disable;
-		output-low;
-	};
-
-	wcn_sw_en: wcn-sw-en-state {
-		pins = "gpio214";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-	};
-};
-
-&uart14 {
-	status = "okay";
-
-	bluetooth {
-		compatible = "qcom,wcn7850-bt";
-		max-speed = <3200000>;
-
-		vddaon-supply = <&vreg_pmu_aon_0p59>;
-		vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
-		vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
-		vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
-		vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
-		vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
-		vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
-	};
-};
-
-&usb_1_ss0 {
-	dr_mode = "host";
-
-	status = "okay";
-};
-
-&usb_1_ss0_dwc3_hs {
-	remote-endpoint = <&pmic_glink_port0_hs_in>;
-};
-
-&usb_1_ss0_hsphy {
-	vdd-supply = <&vreg_l3j>;
-	vdda12-supply = <&vreg_l2j>;
-
-	phys = <&smb2360_0_eusb2_repeater>;
-
-	status = "okay";
-};
-
-&usb_1_ss0_qmpphy {
-	vdda-phy-supply = <&vreg_l1j>;
-	vdda-pll-supply = <&vreg_l2j>;
-
-	status = "okay";
-};
-
-&usb_1_ss0_qmpphy_out {
-	remote-endpoint = <&usb0_retimer_in>;
-};
-
-&usb_1_ss1_qmpphy {
-	vdda-phy-supply = <&vreg_l2d>;
-	vdda-pll-supply = <&vreg_l2j>;
-
-	/delete-property/ mode-switch;
-	/delete-property/ orientation-switch;
-
-	status = "okay";
-
-	ports {
-		port@0 {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			/delete-node/ endpoint;
-
-			usb_1_ss1_qmpphy_out_dp: endpoint@0 {
-				reg = <0>;
-
-				data-lanes = <3 2 1 0>;
-				remote-endpoint = <&dp_port_in>;
-			};
-		};
-	};
-};
-
-&usb_1_ss2_qmpphy {
-	vdda-phy-supply = <&vreg_l2d>;
-	vdda-pll-supply = <&vreg_l2j>;
-
-	/delete-property/ mode-switch;
-	/delete-property/ orientation-switch;
-
-	status = "okay";
-
-	ports {
-		port@0 {
-			#address-cells = <1>;
-			#size-cells = <0>;
-
-			/delete-node/ endpoint;
-
-			usb_1_ss2_qmpphy_out_dp: endpoint@0 {
-				reg = <0>;
-
-				data-lanes = <3 2 1 0>;
-				remote-endpoint = <&hdmi_bridge_in>;
-			};
-		};
-	};
-};
-
-&usb_mp {
-	status = "okay";
-};
-
-&usb_mp_hsphy0 {
-	vdd-supply = <&vreg_l2e>;
-	vdda12-supply = <&vreg_l3e>;
-
-	phys = <&eusb3_repeater>;
-
-	status = "okay";
-};
-
-&usb_mp_hsphy1 {
-	vdd-supply = <&vreg_l2e>;
-	vdda12-supply = <&vreg_l3e>;
-
-	phys = <&eusb6_repeater>;
-
-	status = "okay";
-};
-
-&usb_mp_qmpphy0 {
-	vdda-phy-supply = <&vreg_l3c>;
-	vdda-pll-supply = <&vreg_l3e>;
-
-	status = "okay";
-};
-
-&usb_mp_qmpphy1 {
-	vdda-phy-supply = <&vreg_l3c>;
-	vdda-pll-supply = <&vreg_l3e>;
-
-	status = "okay";
-};
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+
+#include "hamoa.dtsi"
+#include "x1-lenovo-ideacentre-mini-01q8x10.dtsi"
+
+/ {
+	model = "Lenovo IdeaCentre Mini 01Q8X10 (Hamoa)";
+	compatible = "lenovo,hamoa-ideacentre-mini-01q8x10", "lenovo,ideacentre-mini-01q8x10", "qcom,x1e80100";
+};
+
+&iris {
+	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcvss8380.mbn";
+
+	status = "okay";
+};
+
+&gpu_zap_shader {
+	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcdxkmsuc8380.mbn";
+};
+
+&remoteproc_adsp {
+	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcadsp8380.mbn",
+			"qcom/x1e80100/LENOVO/91B6/adsp_dtbs.elf";
+
+	status = "okay";
+};
+
+&remoteproc_cdsp {
+	firmware-name = "qcom/x1e80100/LENOVO/91B6/qccdsp8380.mbn",
+			"qcom/x1e80100/LENOVO/91B6/cdsp_dtbs.elf";
+
+	status = "okay";
+};
+
diff --git a/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
similarity index 97%
copy from arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts
copy to arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
index 75ce8b0c94d2a..1af97c5f86fd3 100644
--- a/arch/arm64/boot/dts/qcom/hamoa-lenovo-ideacentre-mini-01q8x10.dts
+++ b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
@@ -3,17 +3,12 @@
  * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
  */
 
-/dts-v1/;
-
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
-#include "hamoa.dtsi"
 #include "hamoa-pmics.dtsi"
 
 / {
-	model = "Lenovo IdeaCentre Mini 01Q8X10";
-	compatible = "lenovo,ideacentre-mini-01q8x10", "qcom,x1e80100";
 	chassis-type = "desktop";
 
 	aliases {
@@ -666,20 +661,10 @@ eusb6_repeater: redriver@4f {
 	};
 };
 
-&iris {
-	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcvss8380.mbn";
-
-	status = "okay";
-};
-
 &gpu {
 	status = "okay";
 };
 
-&gpu_zap_shader {
-	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcdxkmsuc8380.mbn";
-};
-
 &mdss {
 	status = "okay";
 };
@@ -857,20 +842,6 @@ &qupv3_2 {
 	status = "okay";
 };
 
-&remoteproc_adsp {
-	firmware-name = "qcom/x1e80100/LENOVO/91B6/qcadsp8380.mbn",
-			"qcom/x1e80100/LENOVO/91B6/adsp_dtbs.elf";
-
-	status = "okay";
-};
-
-&remoteproc_cdsp {
-	firmware-name = "qcom/x1e80100/LENOVO/91B6/qccdsp8380.mbn",
-			"qcom/x1e80100/LENOVO/91B6/cdsp_dtbs.elf";
-
-	status = "okay";
-};
-
 &smb2360_0 {
 	status = "okay";
 };

-- 
2.53.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/7] arm64: dts: qcom: Add Purwa IdeaCentre Mini 01Q8X10
  2026-09-05  9:28 [PATCH 0/7] arm64: dts: qcom: IdeaCentre Mini 01Q8X10 Hamoa + Purwa Jens Glathe via B4 Relay
  2026-09-05  9:28 ` [PATCH 1/7] dt-bindings: arm: qcom: Distinguish IdeaCentre Mini 01Q8X10 SKUs Jens Glathe via B4 Relay
  2026-09-05  9:28 ` [PATCH 2/7] arm64: dts: qcom: Split IdeaCentre Mini into a common DTSI Jens Glathe via B4 Relay
@ 2026-09-05  9:28 ` Jens Glathe via B4 Relay
  2026-09-05  9:42   ` sashiko-bot
  2026-09-05  9:28 ` [PATCH 4/7] arm64: dts: qcom: ideacentre-mini: Build the Hamoa EL2 DTB Jens Glathe via B4 Relay
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: Jens Glathe via B4 Relay @ 2026-09-05  9:28 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Jens Glathe

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

Add the Purwa SKU of the Lenovo IdeaCentre Mini 01Q8X10. The chassis is
the common x1-lenovo-ideacentre-mini-01q8x10DTSI; this file supplies the
Purwa SoC include, firmware paths, and the PMC8380_6 nodes that are
absent on this board.

Assisted-by: Grok 4.5 (xAI)
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 arch/arm64/boot/dts/qcom/Makefile                  |  3 +-
 .../qcom/purwa-lenovo-ideacentre-mini-01q8x10.dts  | 42 ++++++++++++++++++++++
 2 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6c2ac11133ca7..e6105e5790954 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -167,7 +167,8 @@ dtb-$(CONFIG_ARCH_QCOM)	+= msm8998-sony-xperia-yoshino-poplar.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= msm8998-xiaomi-sagit.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= purwa-iot-evk.dtb
 
-purwa-iot-evk-el2-dtbs	:= purwa-iot-evk.dtb x1-el2.dtbo
+purwa-lenovo-ideacentre-mini-01q8x10-el2-dtbs := purwa-lenovo-ideacentre-mini-01q8x10.dtb x1-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM)	+= purwa-lenovo-ideacentre-mini-01q8x10.dtb purwa-lenovo-ideacentre-mini-01q8x10-el2.dtb
 
 dtb-$(CONFIG_ARCH_QCOM)	+= purwa-iot-evk-el2.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= qcm6490-fairphone-fp5.dtb
diff --git a/arch/arm64/boot/dts/qcom/purwa-lenovo-ideacentre-mini-01q8x10.dts b/arch/arm64/boot/dts/qcom/purwa-lenovo-ideacentre-mini-01q8x10.dts
new file mode 100644
index 0000000000000..9813a570cf690
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/purwa-lenovo-ideacentre-mini-01q8x10.dts
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ * Copyright (c) Jens Glathe
+ */
+
+/dts-v1/;
+
+#include "purwa.dtsi"
+#include "x1-lenovo-ideacentre-mini-01q8x10.dtsi"
+
+/delete-node/ &pmc8380_6;
+/delete-node/ &pmc8380_6_thermal;
+
+/ {
+	model = "Lenovo IdeaCentre Mini 01Q8X10 (Purwa)";
+	compatible = "lenovo,purwa-ideacentre-mini-01q8x10", "lenovo,ideacentre-mini-01q8x10", "qcom,x1p42100";
+};
+
+&iris {
+	firmware-name = "qcom/x1p42100/LENOVO/91B6/qcvss8380_pa.mbn";
+
+	status = "okay";
+};
+
+&gpu_zap_shader {
+	firmware-name = "qcom/x1p42100/LENOVO/91B6/qcdxkmsucpurwa.mbn";
+};
+
+&remoteproc_adsp {
+	firmware-name = "qcom/x1p42100/LENOVO/91B6/qcadsp8380.mbn",
+			"qcom/x1p42100/LENOVO/91B6/adsp_dtbs.elf";
+
+	status = "okay";
+};
+
+&remoteproc_cdsp {
+	firmware-name = "qcom/x1p42100/LENOVO/91B6/qccdsp8380.mbn",
+			"qcom/x1p42100/LENOVO/91B6/cdsp_dtbs.elf";
+
+	status = "okay";
+};

-- 
2.53.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/7] arm64: dts: qcom: ideacentre-mini: Build the Hamoa EL2 DTB
  2026-09-05  9:28 [PATCH 0/7] arm64: dts: qcom: IdeaCentre Mini 01Q8X10 Hamoa + Purwa Jens Glathe via B4 Relay
                   ` (2 preceding siblings ...)
  2026-09-05  9:28 ` [PATCH 3/7] arm64: dts: qcom: Add Purwa IdeaCentre Mini 01Q8X10 Jens Glathe via B4 Relay
@ 2026-09-05  9:28 ` Jens Glathe via B4 Relay
  2026-09-05  9:29 ` [PATCH 5/7] arm64: dts: qcom: ideacentre-mini: Fix the second M.2 3V3 rail Jens Glathe via B4 Relay
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Jens Glathe via B4 Relay @ 2026-09-05  9:28 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Jens Glathe

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

Other Hamoa boards combine the board DTB with x1-el2.dtbo. Do the same
for the IdeaCentre Mini so the EL2 overlay is produced alongside the
normal image.

Assisted-by: Grok 4.5 (xAI)
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 arch/arm64/boot/dts/qcom/Makefile | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index e6105e5790954..0cfbf3018a7be 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -24,7 +24,10 @@ dtb-$(CONFIG_ARCH_QCOM)	+= hamoa-iot-evk.dtb
 hamoa-iot-evk-el2-dtbs	:= hamoa-iot-evk.dtb x1-el2.dtbo
 
 dtb-$(CONFIG_ARCH_QCOM)	+= hamoa-iot-evk-el2.dtb
-dtb-$(CONFIG_ARCH_QCOM)	+= hamoa-lenovo-ideacentre-mini-01q8x10.dtb
+
+hamoa-lenovo-ideacentre-mini-01q8x10-el2-dtbs := hamoa-lenovo-ideacentre-mini-01q8x10.dtb x1-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM)	+= hamoa-lenovo-ideacentre-mini-01q8x10.dtb hamoa-lenovo-ideacentre-mini-01q8x10-el2.dtb
+
 dtb-$(CONFIG_ARCH_QCOM)	+= ipq5018-rdp432-c2.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= ipq5018-tplink-archer-ax55-v1.dtb
 dtb-$(CONFIG_ARCH_QCOM)	+= ipq5210-rdp504.dtb

-- 
2.53.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5/7] arm64: dts: qcom: ideacentre-mini: Fix the second M.2 3V3 rail
  2026-09-05  9:28 [PATCH 0/7] arm64: dts: qcom: IdeaCentre Mini 01Q8X10 Hamoa + Purwa Jens Glathe via B4 Relay
                   ` (3 preceding siblings ...)
  2026-09-05  9:28 ` [PATCH 4/7] arm64: dts: qcom: ideacentre-mini: Build the Hamoa EL2 DTB Jens Glathe via B4 Relay
@ 2026-09-05  9:29 ` Jens Glathe via B4 Relay
  2026-09-05  9:36   ` sashiko-bot
  2026-09-05  9:29 ` [PATCH 6/7] arm64: dts: qcom: ideacentre-mini: Wire up DP sound names and VA macro Jens Glathe via B4 Relay
  2026-09-05  9:29 ` [PATCH 7/7] arm64: dts: qcom: ideacentre-mini: Drop the unused USB MP port Jens Glathe via B4 Relay
  6 siblings, 1 reply; 12+ messages in thread
From: Jens Glathe via B4 Relay @ 2026-09-05  9:29 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Jens Glathe

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

TLMM18 only enables M.2-1 on pcie6a. The second slot (pcie3) is gated
by PMC8380_3 GPIO5; both regulators previously pointed at the same
TLMM pin, so the DT had no effect on that rail.

Switch vreg_nvme2_3p3 to the PMIC GPIO, add its pinctrl state, and
keep a 2 s startup delay plus always-on. Without the delay the pcie3
slot fails to probe; always-on is a stand-in until an M.2 power
sequencer exists. Both slots work on Purwa with NVMe SSDs.

Tested-on: IdeaCentre Mini 01Q8X10, Purwa (X1-26-100)

Assisted-by: Grok 4.5 (xAI)
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 .../dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
index 1af97c5f86fd3..76a9f745b279d 100644
--- a/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
@@ -4,6 +4,7 @@
  */
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "hamoa-pmics.dtsi"
@@ -173,13 +174,16 @@ vreg_nvme2_3p3: regulator-nvme2-3p3 {
 		regulator-min-microvolt = <3300000>;
 		regulator-max-microvolt = <3300000>;
 
-		gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+		gpio = <&pmc8380_3_gpios 5 GPIO_ACTIVE_HIGH>;
 		enable-active-high;
 
-		pinctrl-0 = <&nvme_reg_en>;
+		pinctrl-0 = <&nvme2_reg_en>;
 		pinctrl-names = "default";
 
+		startup-delay-us = <2000000>;
+
 		regulator-boot-on;
+		regulator-always-on;
 	};
 
 	vreg_v0p9: regulator-v0p9 {
@@ -788,6 +792,19 @@ &pcie6a_port0 {
 	wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
 };
 
+&pmc8380_3_gpios {
+	nvme2_reg_en: nvme2-reg-en-state {
+		pins = "gpio5";
+		function = "normal";
+		power-source = <0>;
+		input-disable;
+		output-enable;
+		drive-push-pull;
+		bias-disable;
+		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+	};
+};
+
 &pmc8380_5_gpios {
 	usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
 		pins = "gpio8";

-- 
2.53.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 6/7] arm64: dts: qcom: ideacentre-mini: Wire up DP sound names and VA macro
  2026-09-05  9:28 [PATCH 0/7] arm64: dts: qcom: IdeaCentre Mini 01Q8X10 Hamoa + Purwa Jens Glathe via B4 Relay
                   ` (4 preceding siblings ...)
  2026-09-05  9:29 ` [PATCH 5/7] arm64: dts: qcom: ideacentre-mini: Fix the second M.2 3V3 rail Jens Glathe via B4 Relay
@ 2026-09-05  9:29 ` Jens Glathe via B4 Relay
  2026-09-05  9:29 ` [PATCH 7/7] arm64: dts: qcom: ideacentre-mini: Drop the unused USB MP port Jens Glathe via B4 Relay
  6 siblings, 0 replies; 12+ messages in thread
From: Jens Glathe via B4 Relay @ 2026-09-05  9:29 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Jens Glathe

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

mdss_dp0/1/2 had no sound-name-prefix, so the three DisplayPort
backends were not distinct DAIs on the card. Add the prefixes.

Enable the LPASS VA macro with the 2.4 MHz rate. This chassis has no
onboard DMICs; the node still provides the fsgen clock to tx_macro and
rx_macro. Without it both codecs fail to probe (-ENOENT).

Tested-on: IdeaCentre Mini 01Q8X10, Purwa (X1-26-100)

Assisted-by: Grok 4.5 (xAI)
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 .../arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
index 76a9f745b279d..5a2db91d5e587 100644
--- a/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
@@ -665,6 +665,10 @@ eusb6_repeater: redriver@4f {
 	};
 };
 
+&lpass_vamacro {
+	qcom,dmic-sample-rate = <2400000>;
+};
+
 &gpu {
 	status = "okay";
 };
@@ -674,6 +678,8 @@ &mdss {
 };
 
 &mdss_dp0 {
+	sound-name-prefix = "DisplayPort0";
+
 	status = "okay";
 };
 
@@ -682,6 +688,8 @@ &mdss_dp0_out {
 };
 
 &mdss_dp1 {
+	sound-name-prefix = "DisplayPort1";
+
 	status = "okay";
 };
 
@@ -690,6 +698,8 @@ &mdss_dp1_out {
 };
 
 &mdss_dp2 {
+	sound-name-prefix = "DisplayPort2";
+
 	status = "okay";
 };
 

-- 
2.53.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 7/7] arm64: dts: qcom: ideacentre-mini: Drop the unused USB MP port
  2026-09-05  9:28 [PATCH 0/7] arm64: dts: qcom: IdeaCentre Mini 01Q8X10 Hamoa + Purwa Jens Glathe via B4 Relay
                   ` (5 preceding siblings ...)
  2026-09-05  9:29 ` [PATCH 6/7] arm64: dts: qcom: ideacentre-mini: Wire up DP sound names and VA macro Jens Glathe via B4 Relay
@ 2026-09-05  9:29 ` Jens Glathe via B4 Relay
  2026-09-05  9:39   ` sashiko-bot
  6 siblings, 1 reply; 12+ messages in thread
From: Jens Glathe via B4 Relay @ 2026-09-05  9:29 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, Jens Glathe

From: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

usb_mp port 1 (hsphy1, qmpphy1, PTN3222 @ 0x4f, TLMM 184) is not
populated. lsusb only shows two xHCI controllers: USB-C on usb_1_ss0
and the rear ports behind a Genesys hub on usb_mp port 0.

Remove that repeater, its reset pin, and the second MP PHYs. Pin
usb_mp to usb2-0 / usb3-0 so the controller does not claim empty
PHYs.

Tested-on: IdeaCentre Mini 01Q8X10, Purwa (X1-26-100)

Assisted-by: Grok 4.5 (xAI)
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
---
 .../qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi    | 40 ++--------------------
 1 file changed, 3 insertions(+), 37 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
index 5a2db91d5e587..b720622c5d90e 100644
--- a/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
@@ -650,19 +650,6 @@ eusb3_repeater: redriver@47 {
 		pinctrl-names = "default";
 	};
 
-	eusb6_repeater: redriver@4f {
-		compatible = "nxp,ptn3222";
-		reg = <0x4f>;
-		#phy-cells = <0>;
-
-		vdd3v3-supply = <&vreg_l13b>;
-		vdd1v8-supply = <&vreg_l4b>;
-
-		reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
-
-		pinctrl-0 = <&eusb6_reset_n>;
-		pinctrl-names = "default";
-	};
 };
 
 &lpass_vamacro {
@@ -1059,14 +1046,6 @@ wake-n-pins {
 		};
 	};
 
-	eusb6_reset_n: eusb6-reset-n-state {
-		pins = "gpio184";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-		output-low;
-	};
-
 	wcd_default: wcd-reset-n-active-state {
 		pins = "gpio191";
 		function = "gpio";
@@ -1184,6 +1163,9 @@ usb_1_ss2_qmpphy_out_dp: endpoint@0 {
 
 &usb_mp {
 	status = "okay";
+
+	phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>;
+	phy-names = "usb2-0", "usb3-0";
 };
 
 &usb_mp_hsphy0 {
@@ -1195,25 +1177,9 @@ &usb_mp_hsphy0 {
 	status = "okay";
 };
 
-&usb_mp_hsphy1 {
-	vdd-supply = <&vreg_l2e>;
-	vdda12-supply = <&vreg_l3e>;
-
-	phys = <&eusb6_repeater>;
-
-	status = "okay";
-};
-
 &usb_mp_qmpphy0 {
 	vdda-phy-supply = <&vreg_l3c>;
 	vdda-pll-supply = <&vreg_l3e>;
 
 	status = "okay";
 };
-
-&usb_mp_qmpphy1 {
-	vdda-phy-supply = <&vreg_l3c>;
-	vdda-pll-supply = <&vreg_l3e>;
-
-	status = "okay";
-};

-- 
2.53.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 5/7] arm64: dts: qcom: ideacentre-mini: Fix the second M.2 3V3 rail
  2026-09-05  9:29 ` [PATCH 5/7] arm64: dts: qcom: ideacentre-mini: Fix the second M.2 3V3 rail Jens Glathe via B4 Relay
@ 2026-09-05  9:36   ` sashiko-bot
  0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-09-05  9:36 UTC (permalink / raw)
  To: Jens Glathe; +Cc: conor+dt, devicetree, robh

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Encoding a consumer (M.2 NVMe) power-up delay into the provider (regulator) DT node as 'startup-delay-us' violates Device Tree design principles.
--

commit 74fe38037d977753f0083d520b231c28126f164d
Author: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

arm64: dts: qcom: ideacentre-mini: Fix the second M.2 3V3 rail

This commit switches the vreg_nvme2_3p3 regulator to the PMIC GPIO and adds a
2-second startup delay along with an always-on property to work around M.2
probing failures.

> diff --git a/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
> --- a/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
> +++ b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
[ ... ]
> @@ -173,13 +174,16 @@ vreg_nvme2_3p3: regulator-nvme2-3p3 {
>  		regulator-min-microvolt = <3300000>;
>  		regulator-max-microvolt = <3300000>;
>  
> -		gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
> +		gpio = <&pmc8380_3_gpios 5 GPIO_ACTIVE_HIGH>;
>  		enable-active-high;
>  
> -		pinctrl-0 = <&nvme_reg_en>;
> +		pinctrl-0 = <&nvme2_reg_en>;
>  		pinctrl-names = "default";
>  
> +		startup-delay-us = <2000000>;

[Severity: Medium]
Does adding startup-delay-us to the regulator node violate Device Tree design
principles by encoding a software workaround for the consumer's (M.2 NVMe)
initialization time?

Device Tree serves as a hardware description and stable ABI. Encoding a
2,000,000 us (2 seconds) delay here describes the consumer's initialization
time, rather than the physical stabilization time of the regulator hardware.

Once a proper M.2 PCIe power sequencer driver is introduced, will this node
continue to force the regulator framework to needlessly block for 2 seconds
whenever the regulator is enabled?

> +
>  		regulator-boot-on;
> +		regulator-always-on;
>  	};
>  
>  	vreg_v0p9: regulator-v0p9 {

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260905-x1-ideacentre-mini-prettify-v1-0-9a87882973bb@oldschoolsolutions.biz?part=5

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 7/7] arm64: dts: qcom: ideacentre-mini: Drop the unused USB MP port
  2026-09-05  9:29 ` [PATCH 7/7] arm64: dts: qcom: ideacentre-mini: Drop the unused USB MP port Jens Glathe via B4 Relay
@ 2026-09-05  9:39   ` sashiko-bot
  0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-09-05  9:39 UTC (permalink / raw)
  To: Jens Glathe; +Cc: conor+dt, devicetree, robh

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Incomplete removal of the second USB MP port leaves unused interrupts in the device tree, causing dwc3-qcom to incorrectly detect 2 ports.
--

commit 60ea82fd4a9cce2b2f56bfccffd8337ca1f4e46b
Author: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

arm64: dts: qcom: ideacentre-mini: Drop the unused USB MP port

This commit drops the unused USB MP port by removing its repeater, reset
pin, and second MP PHYs from the device tree. It also pins the controller
to only use the first set of PHYs to avoid claiming empty PHYs.

> diff --git a/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
> index 5a2db91d5e587..b720622c5d90e 100644
> --- a/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
> +++ b/arch/arm64/boot/dts/qcom/x1-lenovo-ideacentre-mini-01q8x10.dtsi
[ ... ]
> @@ -1184,6 +1163,9 @@ usb_1_ss2_qmpphy_out_dp: endpoint@0 {
>  
>  &usb_mp {
>  	status = "okay";
> +
> +	phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>;
> +	phy-names = "usb2-0", "usb3-0";

[Severity: Medium]
Since the dwc3-qcom driver determines the number of active ports by counting
the dp_hs_phy_%d interrupts defined in the device tree, will this incomplete
override cause the driver to still detect two ports?

Because the interrupts-extended and interrupt-names properties inherited from
the base SoC dtsi are not overridden here, dp_hs_phy_2 and the other
second-port interrupts remain present.

During system suspend, could this lead to dwc3_qcom_suspend() polling the
unpopulated PHY and mistakenly enabling wakeup interrupts for the missing
port's floating lines? This might cause spurious wakeups or interrupt storms
that prevent deep sleep. Should the interrupt properties be overridden here
as well to drop the second port's interrupts?

>  };
>  
>  &usb_mp_hsphy0 {
[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260905-x1-ideacentre-mini-prettify-v1-0-9a87882973bb@oldschoolsolutions.biz?part=7

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/7] arm64: dts: qcom: Add Purwa IdeaCentre Mini 01Q8X10
  2026-09-05  9:28 ` [PATCH 3/7] arm64: dts: qcom: Add Purwa IdeaCentre Mini 01Q8X10 Jens Glathe via B4 Relay
@ 2026-09-05  9:42   ` sashiko-bot
  2026-09-05 10:46     ` Jens Glathe
  0 siblings, 1 reply; 12+ messages in thread
From: sashiko-bot @ 2026-09-05  9:42 UTC (permalink / raw)
  To: Jens Glathe; +Cc: devicetree, conor+dt, robh

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] The device tree leaves the `pmc8380_6_die_temp` ADC channel enabled despite physically removing the corresponding `pmc8380_6` PMIC.
- [Low] The patch inadvertently replaces the composite dtbs rule for `purwa-iot-evk-el2-dtbs` instead of adding the new board's rule alongside it, causing a build failure.
--

commit a1fbbf4379b4719283a1891d22cc069dc0b2dda9
Author: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

arm64: dts: qcom: Add Purwa IdeaCentre Mini 01Q8X10

This patch adds the Purwa SKU of the Lenovo IdeaCentre Mini 01Q8X10. It
provides the Purwa SoC include, firmware paths, and removes the pmc8380_6
nodes that are not physically present on this board.

> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 6c2ac11133ca7..e6105e5790954 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -167,7 +167,8 @@ dtb-$(CONFIG_ARCH_QCOM)	+= msm8998-sony-xperia-yoshino-poplar.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= msm8998-xiaomi-sagit.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= purwa-iot-evk.dtb
>  
> -purwa-iot-evk-el2-dtbs	:= purwa-iot-evk.dtb x1-el2.dtbo
> +purwa-lenovo-ideacentre-mini-01q8x10-el2-dtbs := purwa-lenovo-ideacentre-mini-01q8x10.dtb x1-el2.dtbo

[Severity: Low]
Does this unintentionally remove the composite rule for the existing
purwa-iot-evk-el2 board?

Kbuild will fail with a 'No rule to make target' error when building because
dtb-$(CONFIG_ARCH_QCOM) += purwa-iot-evk-el2.dtb remains slightly further down
in this Makefile, but its underlying composite dtbs definition has been
overwritten here instead of being preserved.

> +dtb-$(CONFIG_ARCH_QCOM)	+= purwa-lenovo-ideacentre-mini-01q8x10.dtb purwa-lenovo-ideacentre-mini-01q8x10-el2.dtb
>  
>  dtb-$(CONFIG_ARCH_QCOM)	+= purwa-iot-evk-el2.dtb
>  dtb-$(CONFIG_ARCH_QCOM)	+= qcm6490-fairphone-fp5.dtb
> diff --git a/arch/arm64/boot/dts/qcom/purwa-lenovo-ideacentre-mini-01q8x10.dts b/arch/arm64/boot/dts/qcom/purwa-lenovo-ideacentre-mini-01q8x10.dts
> new file mode 100644
> index 0000000000000..9813a570cf690
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/purwa-lenovo-ideacentre-mini-01q8x10.dts
> @@ -0,0 +1,42 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + * Copyright (c) Jens Glathe
> + */
> +
> +/dts-v1/;
> +
> +#include "purwa.dtsi"
> +#include "x1-lenovo-ideacentre-mini-01q8x10.dtsi"
> +
> +/delete-node/ &pmc8380_6;
> +/delete-node/ &pmc8380_6_thermal;

[Severity: Medium]
Since the physical pmc8380_6 PMIC is declared absent and its main nodes are
deleted, does the associated ADC channel pmc8380_6_die_temp also need to be
deleted here?

If the SPMI ADC driver (qcom-spmi-adc5) probes the pre-defined channel and
tries to configure it on a non-existent PMIC, it can lead to SPMI bus
communication timeouts and invalid hwmon reads. Should there be a
/delete-node/ &pmc8380_6_die_temp; added to this block?

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260905-x1-ideacentre-mini-prettify-v1-0-9a87882973bb@oldschoolsolutions.biz?part=3

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/7] arm64: dts: qcom: Add Purwa IdeaCentre Mini 01Q8X10
  2026-09-05  9:42   ` sashiko-bot
@ 2026-09-05 10:46     ` Jens Glathe
  0 siblings, 0 replies; 12+ messages in thread
From: Jens Glathe @ 2026-09-05 10:46 UTC (permalink / raw)
  To: sashiko-reviews; +Cc: devicetree, conor+dt, robh

Hi Sashiko-bot,

On 05.09.26 11:42, sashiko-bot@kernel.org wrote:
>> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
>> index 6c2ac11133ca7..e6105e5790954 100644
>> --- a/arch/arm64/boot/dts/qcom/Makefile
>> +++ b/arch/arm64/boot/dts/qcom/Makefile
>> @@ -167,7 +167,8 @@ dtb-$(CONFIG_ARCH_QCOM)	+= msm8998-sony-xperia-yoshino-poplar.dtb
>>   dtb-$(CONFIG_ARCH_QCOM)	+= msm8998-xiaomi-sagit.dtb
>>   dtb-$(CONFIG_ARCH_QCOM)	+= purwa-iot-evk.dtb
>>   
>> -purwa-iot-evk-el2-dtbs	:= purwa-iot-evk.dtb x1-el2.dtbo
>> +purwa-lenovo-ideacentre-mini-01q8x10-el2-dtbs := purwa-lenovo-ideacentre-mini-01q8x10.dtb x1-el2.dtbo
> [Severity: Low]
> Does this unintentionally remove the composite rule for the existing
> purwa-iot-evk-el2 board?
>
> Kbuild will fail with a 'No rule to make target' error when building because
> dtb-$(CONFIG_ARCH_QCOM) += purwa-iot-evk-el2.dtb remains slightly further down
> in this Makefile, but its underlying composite dtbs definition has been
> overwritten here instead of being preserved.
>
Oops, that was not intended. Will be fixed in v2.

with best regards,

Jens


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-09-05 11:00 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-05  9:28 [PATCH 0/7] arm64: dts: qcom: IdeaCentre Mini 01Q8X10 Hamoa + Purwa Jens Glathe via B4 Relay
2026-09-05  9:28 ` [PATCH 1/7] dt-bindings: arm: qcom: Distinguish IdeaCentre Mini 01Q8X10 SKUs Jens Glathe via B4 Relay
2026-09-05  9:28 ` [PATCH 2/7] arm64: dts: qcom: Split IdeaCentre Mini into a common DTSI Jens Glathe via B4 Relay
2026-09-05  9:28 ` [PATCH 3/7] arm64: dts: qcom: Add Purwa IdeaCentre Mini 01Q8X10 Jens Glathe via B4 Relay
2026-09-05  9:42   ` sashiko-bot
2026-09-05 10:46     ` Jens Glathe
2026-09-05  9:28 ` [PATCH 4/7] arm64: dts: qcom: ideacentre-mini: Build the Hamoa EL2 DTB Jens Glathe via B4 Relay
2026-09-05  9:29 ` [PATCH 5/7] arm64: dts: qcom: ideacentre-mini: Fix the second M.2 3V3 rail Jens Glathe via B4 Relay
2026-09-05  9:36   ` sashiko-bot
2026-09-05  9:29 ` [PATCH 6/7] arm64: dts: qcom: ideacentre-mini: Wire up DP sound names and VA macro Jens Glathe via B4 Relay
2026-09-05  9:29 ` [PATCH 7/7] arm64: dts: qcom: ideacentre-mini: Drop the unused USB MP port Jens Glathe via B4 Relay
2026-09-05  9:39   ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox