Devicetree
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Harrison Vanderbyl" <harrison.vanderbyl@gmail.com>
Cc: robh@kernel.org, devicetree@vger.kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org
Subject: Re: [PATCH v1 8/8] arm64: dts: qcom: Add Microsoft Surface Pro 12in
Date: Tue, 12 May 2026 21:23:50 +0000	[thread overview]
Message-ID: <20260512212350.EA05FC2BCB0@smtp.kernel.org> (raw)
In-Reply-To: <67c50d27e133774e0a4edc17403e4218ddd86efd.1778498477.git.harrison.vanderbyl@gmail.com>

Thank you for your contribution! Sashiko AI review found 6 potential issue(s) to consider:
- [High] Touchscreen reset pin is statically driven high before power is applied.
- [Medium] Audio routing specifies 4 DMICs but pinctrl only configures pins for DMIC0 and DMIC1.
- [Medium] Regulator enable pin statically forced high by pinctrl.
- [Medium] Inconsistent regulator assignment for USB QMP PHYs.
- [Medium] Missing pinctrl configurations for volume keys.
- [Low] Unused `panel_pins` pinctrl state defined in device tree.
--

commit bfa1ccc215b18064216c44242bb8398931a0520f
Author: Harrison Vanderbyl <harrison.vanderbyl@gmail.com>

arm64: dts: qcom: Add Microsoft Surface Pro 12in

This commit adds the initial device tree for the Microsoft Surface
Pro 12in, enabling various peripherals such as UFS, touchscreen,
audio, and USB.

> diff --git a/arch/arm64/boot/dts/qcom/x1p42100-microsoft-sp12in.dts b/arch/arm64/boot/dts/qcom/x1p42100-microsoft-sp12in.dts
> new file mode 100644
> index 0000000000000..3a754179a8481
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/x1p42100-microsoft-sp12in.dts
> @@ -0,0 +1,1160 @@
[ ... ]
> +		key-vol-up {
> +			gpios = <&pm8550_gpios 8 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEUP>;
> +			debounce-interval = <15>;
> +			linux,can-disable;
> +			wakeup-source;
> +		};
> +
> +		key-vol-down {
> +			gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_VOLUMEDOWN>;
> +			debounce-interval = <15>;
> +			linux,can-disable;
> +			wakeup-source;
> +		};

Will these volume keys be prone to spurious interrupts? These nodes map
to pm8550_gpios as GPIO_ACTIVE_LOW, but do not specify any pinctrl to
configure internal pull-ups on the physical pads. Unless external
pull-ups are present on the board, floating pins could trigger unwanted
wakeups.

[ ... ]
> +	sound {
> +		compatible = "qcom,x1e80100-sndcard";
> +		model = "X1P42100-Microsoft-Surface-Pro-12in";
> +		audio-routing = "SpkrLeft IN", "WSA WSA_SPK1 OUT",
> +				"SpkrRight IN", "WSA WSA_SPK2 OUT",
> +				"VA DMIC0", "vdd-micb",
> +				"VA DMIC1", "vdd-micb",
> +				"VA DMIC2", "vdd-micb",
> +				"VA DMIC3", "vdd-micb";
[ ... ]
> +&lpass_vamacro {
> +	qcom,dmic-sample-rate = <4800000>;
> +
> +	vdd-micb-supply = <&vreg_l1b_1p8>;
> +
> +	pinctrl-0 = <&dmic01_default>;
> +	pinctrl-names = "default";
> +};

Will audio capture from DMIC2 and DMIC3 fail with this configuration?
The audio-routing maps 4 DMICs, but only the dmic01_default pins are
configured in pinctrl, leaving the data and clock pins for DMIC2 and
DMIC3 unconfigured. Should <&dmic23_default> be included here?

[ ... ]
> +	touchscreen@16 {
> +		compatible = "hid-over-i2c";
> +		reg = <0x16>;
> +
> +		hid-descr-addr = <0x1>;
> +		interrupts-extended = <&tlmm 38 IRQ_TYPE_LEVEL_LOW>;
> +		wakeup-source;
> +
> +		vddl-supply = <&vreg_l15b_1p8>;
> +
> +		pinctrl-0 = <&ts0_default>;
> +		pinctrl-names = "default";
> +	};

Could this damage the touchscreen IC? The touchscreen node omits a
reset-gpios property, but relies on ts0_default which hardcodes
output-high on the reset pin.

Because pinctrl states are applied prior to the driver probe (which
enables vddl-supply), driving logic high into the unpowered IC violates
power sequencing and risks back-powering via ESD diodes.

Would it be better to provide reset-gpios in the touchscreen node so
the driver can manage the line dynamically after regulators stabilize?

[ ... ]
> +&tlmm {
> +	gpio-reserved-ranges = <34 2>, /* Unused */
> +				   <44 4>; /* SPI (TPM) */
> +
> +	edp_reg_en: edp-reg-en-state {
> +		pins = "gpio70";
> +		function = "gpio";
> +		drive-strength = <2>;
> +		bias-disable;
> +		output-high;
> +	};

Does this prevent the regulator framework from turning off vreg_edp_3p3?
Hardcoding output-high in the pinctrl state overrides the regulator's
ability to autonomously pull the line low when the supply is disabled,
such as during system suspend.

[ ... ]
> +	panel_pins: panel-pins-state {
> +		pins = "gpio29";
> +		function = "gpio";
> +		drive-strength = <2>;
> +		bias-disable;
> +		output-low;
> +	};

This isn't a bug, but panel_pins is defined here yet never referenced
by the panel node or any other component. Is it dead code, or is a
reference to it missing elsewhere to properly enable the display?

[ ... ]
> +	 ts0_default: ts0-default-state {
> +		int-n-pins {
> +			pins = "gpio38";
> +			function = "gpio";
> +			bias-disable;
> +		};
> +
> +		reset-n-pins {
> +			pins = "gpio48";
> +			function = "gpio";
> +			output-high;
> +			drive-strength = <16>;
> +		};
> +	 };

(This is where output-high is currently defined for the touchscreen reset,
as mentioned above.)

[ ... ]
> +&usb_1_ss0_qmpphy {
> +	vdda-phy-supply = <&vreg_l3e_1p2>;
> +	vdda-pll-supply = <&vreg_l1j_0p8>;
> +
> +	status = "okay";
> +};

Should this use vreg_l2j_1p2 for the vdda-phy-supply instead?

Mixing a PHY supply from PMIC 'e' with a PLL supply from PMIC 'j' on
the same node differs from usb_1_ss1_qmpphy, which consistently uses
vreg_l2j_1p2. Using vreg_l3e_1p2 here looks similar to the pcie4_phy
configuration, which could be a copy-paste error resulting in improper
voltage scaling for this USB PHY.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/cover.1778498477.git.harrison.vanderbyl@gmail.com?part=8

  parent reply	other threads:[~2026-05-12 21:23 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1778498477.git.harrison.vanderbyl@gmail.com>
2026-05-11 14:40 ` [PATCH v1 1/8] dt-bindings: arm: qcom: Add Microsoft Surface Pro 12in Harrison Vanderbyl
2026-05-11 14:40 ` [PATCH v1 2/8] dt-bindings: crypto: Add x1e80100 inline crypto Harrison Vanderbyl
2026-05-11 14:40 ` [PATCH v1 7/8] arm64: dts: qcom: hamoa: Add inline crypto for UFS Harrison Vanderbyl
2026-05-12 17:54   ` Dmitry Baryshkov
2026-05-11 14:40 ` [PATCH v1 8/8] arm64: dts: qcom: Add Microsoft Surface Pro 12in Harrison Vanderbyl
2026-05-12 18:44   ` Dmitry Baryshkov
2026-05-12 21:23   ` sashiko-bot [this message]
2026-05-13 15:09   ` Konrad Dybcio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260512212350.EA05FC2BCB0@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=harrison.vanderbyl@gmail.com \
    --cc=krzk+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=sashiko@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox