Hardware: Lenovo Yoga 7 2-in-1 14AGP11 (83TD), AMD Ryzen AI 7 445 (Krackan/Gorgon Point)
OS: Fedora 44
Kernel: 7.0.4-200.fc44.x86_64
Touchscreen controller: Wacom WACF2200 + ELAN06FA (both on AMDI0010:02)
On my device, the Wacom WACF2200 touchscreen/pen controller and ELAN06FA are completely dead on Linux. The I2C bus they share (AMDI0010:02) fails with repeated lost arbitration errors at boot, before any driver can probe either device. The touchpad (Goodix, on AMDI0010:03) is working fine, however.
The touchscreen works correctly in UEFI and Windows — so the hardware is functional.
[ 2.286838] i2c_designware AMDI0010:02: i2c_dw_handle_tx_abort: lost arbitration
[ 2.286887] i2c_designware AMDI0010:02: i2c_dw_handle_tx_abort: lost arbitration
[ 2.286923] i2c_designware AMDI0010:02: i2c_dw_handle_tx_abort: lost arbitration
[ 2.286964] i2c_designware AMDI0010:02: i2c_dw_handle_tx_abort: lost arbitration
Manual bind attempt:
echo -n "i2c-WACF2200:00" > /sys/bus/i2c/drivers/i2c_hid_acpi/bind
# Result: No such device or address
I have tried the i2c_designware.slow_mode=1 argument to no effect.
What I’ve investigated so far
This is identical to Bug (221454) on the upstream kernel bugzilla (Lenovo Yoga 7a, FocalTech controller, same AMDI0010:02 failure).
I have also filed a kernel Bugzilla report (221494) with full diagnostics (dmesg, acpidump, dmidecode, udevadm) and am actively investigating.
I have created a public repo with diagnostic notes: GitHub - hardikprakash/yoga7-14agp11-linux · GitHub
I am interested if anyone has found a workaround.
I had exactly the same issue, on the same laptop with one difference, I am using Debian 13.
I will provide you my workaround in case it might help you or anybody else.
My kernel: Linux debian 7.1.3+deb13-amd64
The problem is timing, not a missing driver. i2c_designware probes AMDI0010:02 too early in boot, before the EC and the ACPI power domains have settled.
Reloading the module isn’t possible on Debian — it’s (builtin), so modprobe -r fails. But i2c_designware is a platform driver, so you can unbind and rebind the single device through sysfs instead. This works whether the driver is =y or =m, and it leaves the touchpad bus untouched:
echo -n "AMDI0010:02" | sudo tee /sys/bus/platform/drivers/i2c_designware/unbind
sleep 2
echo -n "AMDI0010:02" | sudo tee /sys/bus/platform/drivers/i2c_designware/bind
The digitizer came up immediately. To do it automatically at every boot I created a service /etc/systemd/system/i2c-reset-touchscreen.service:
[Unit]
Description=Rebind i2c_designware AMDI0010:02 for Wacom digitizer
After=multi-user.target
[Service]
Type=oneshot
ExecStartPre=/usr/bin/sleep 15
ExecStart=/bin/sh -c 'echo -n AMDI0010:02 > /sys/bus/platform/drivers/i2c_designware/unbind; sleep 2; echo -n AMDI0010:02 > /sys/bus/platform/drivers/i2c_designware/bind'
[Install]
WantedBy=multi-user.target
and I enabled it with:
sudo systemctl daemon-reload
sudo systemctl enable i2c-reset-touchscreen.service
The delay is the whole point — rebinding early just reproduces the original failure. 15s is conservative but reliable here.
[ 23.669] input: WACF2200:00 056A:5442 Touchscreen
[ 23.672] input: WACF2200:00 056A:5442 Stylus
[ 24.000] wacom 0018:056A:5442.0003: hidraw2
[ 24.000] input: Wacom HID 5442 Pen
[ 24.001] input: Wacom HID 5442 Finger
After reboot the touchscreen was working successfully.