[PATCH] arm64: dts: qcom: mahua-lenovo-thinkpad-t14s-gen7: Add Elan touchpad at 0x15

From: Luke Macken

Date: Wed Oct 14 2026 - 19:50:45 EST


Like the T14s Gen 6, the Gen 7 ships with either a Synaptics touchpad at
I2C address 0x2c or an Elan one at 0x15. The dts only describes the
Synaptics part, so on Elan units (e.g. 22A7000VUS) the touchpad@2c probe
fails silently (nothing answers at that address) and there is no
touchpad, while an I2C scan finds the device at 0x15.

Describe both, as x1e78100-lenovo-thinkpad-t14s.dtsi does; the absent one
fails probe harmlessly. Both share the interrupt GPIO, so move the
tpad_default pinctrl state from the Synaptics node to the i2c0 bus node
rather than have two nodes claim the same pin.

Assisted-by: LLM
Signed-off-by: Luke Macken <luke@xxxxxxxxxx>
---
.../mahua-lenovo-thinkpad-t14s-gen7-lcd.dts | 21 ++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7-lcd.dts b/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7-lcd.dts
index 26d6d8285..4c805e486 100644
--- a/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7-lcd.dts
+++ b/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7-lcd.dts
@@ -646,8 +646,26 @@ &gpu {
&i2c0 {
clock-frequency = <400000>;

+ pinctrl-0 = <&qup_i2c0_data_clk>, <&tpad_default>;
+ pinctrl-names = "default";
+
status = "okay";

+ /* ELAN06B4 */
+ touchpad@15 {
+ compatible = "hid-over-i2c";
+ reg = <0x15>;
+
+ hid-descr-addr = <0x1>;
+ interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+
+ vdd-supply = <&vreg_misc_3p3>;
+ vddl-supply = <&vreg_l15b_e0_1p8>;
+
+ wakeup-source;
+ };
+
+ /* Synaptics */
touchpad@2c {
compatible = "hid-over-i2c";
reg = <0x2c>;
@@ -658,9 +676,6 @@ touchpad@2c {
vdd-supply = <&vreg_misc_3p3>;
vddl-supply = <&vreg_l15b_e0_1p8>;

- pinctrl-0 = <&tpad_default>;
- pinctrl-names = "default";
-
wakeup-source;
};

--
2.43.0