If you’re experiencing issues with your Elan touchpad on a Linux system, particularly with messages like “supply vcc not found”, you’re not alone. This was happening with my Lenovo ThinkPad L490, but it no longer happens after following Arch wiki guide to fix it.
Journal logs from my system:
Feb 19 20:34:40 L490 kernel: elan_i2c 9-0015: supply vcc not found, using dummy regulator
Feb 19 20:34:40 L490 kernel: elan_i2c 9-0015: unexpected iap version 0x00 (ic type: 0x35), firmware update will not work
Feb 19 20:34:40 L490 kernel: elan_i2c 9-0015: Elan Touchpad: Module ID: 0x0035, Firmware: 0x0056, Sample: 0x0000, IAP: 0x0000
Feb 20 15:26:28 L490 kernel: elan_i2c 9-0015: supply vcc not found, using dummy regulator
Feb 20 15:26:28 L490 kernel: elan_i2c 9-0015: unexpected iap version 0x00 (ic type: 0x35), firmware update will not work
Feb 20 15:26:28 L490 kernel: elan_i2c 9-0015: Elan Touchpad: Module ID: 0x0035, Firmware: 0x0056, Sample: 0x0000, IAP: 0x0000
The errors you’re seeing in the journal logs suggest that the elan_i2c driver is unable to find the necessary power supply (vcc) and is defaulting to a dummy regulator.
This problem often arises when the psmouse module attempts to use a secondary bus for the touchpad device, causing conflicts with the elan_i2c driver. To resolve this, we can force the psmouse module to use the primary bus.
Follow these steps to create a configuration file that will help resolve the issue:
Open a terminal on your Linux system.
Use your preferred text editor to create a new configuration file for the psmouse module. You can use nano, vim, or any other text editor. Here’s how to do it with nano:
sudo nano /etc/modprobe.d/psmouse.conf
In the text editor, add the following line to the file:
options psmouse elantech_smbus=0
Save the file and exit the text editor. In nano, you can do this by pressing CTRL + X, then Y to confirm changes, and Enter to exit.
To apply the changes, you need to reload the psmouse module. You can do this by running the following command:
sudo modprobe -r psmouse
sudo modprobe psmouse
Alternatively, you can reboot your system to apply the changes.
After reloading the module or rebooting, check the system logs again to ensure that the errors related to elan_i2c are resolved. You can do this by running:
sudo journalctl --no-pager | grep elan_i2c
You should no longer see the previous error messages, indicating that the touchpad is now functioning correctly.
By following these steps, you should be able to resolve the issues with your Elan touchpad. This fix forces the psmouse module to use the primary bus, allowing the elan_i2c driver to function properly without conflicts.