* [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* 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
* [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* 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
* [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 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