Contribute
Register

VoodooI2C Help and Support

Joined
Sep 24, 2012
Messages
173
Motherboard
ASUS ZenBook Pro Duo 15 UX582
CPU
i9-10980HK
Graphics
UHD 630 + RTX 3070
@sqlsec Could you check whether your screenpad is in polling mode? My trackpad (ELAN1406, ETPD) shows these:
Code:
[   49.864579]: VoodooI2CDeviceNub::ETPD Found valid resources from _CRS method
[   49.864658]: VoodooI2CDeviceNub::ETPD Returned index 0x0 from _DSM or XDSM method is not supported
[   49.864666]: VoodooI2CDeviceNub::ETPD Could not retrieve resources from _DSM or XDSM method
[   49.864678]: VoodooI2CDeviceNub::ETPD Found valid GPIO interrupts
[   49.864839]: VoodooI2CDeviceNub::ETPD Got GPIO Controller! VoodooGPIOCannonLakeH
[  50.366579]: VoodooGPIOCannonLakeH::Failed getting hardware pin for GPIO pin 279VoodooI2CHIDDevice::ELAN1406 Warning: Could not get interrupt event source, using polling instead
 
Joined
Nov 8, 2021
Messages
7
Motherboard
Asus Zenbook 14
CPU
i7-10510U
Graphics
UHD630
Mac
  1. MacBook Pro
@sqlsec Could you check whether your screenpad is in polling mode? My trackpad (ELAN1406, ETPD) shows these:
Code:
[   49.864579]: VoodooI2CDeviceNub::ETPD Found valid resources from _CRS method
[   49.864658]: VoodooI2CDeviceNub::ETPD Returned index 0x0 from _DSM or XDSM method is not supported
[   49.864666]: VoodooI2CDeviceNub::ETPD Could not retrieve resources from _DSM or XDSM method
[   49.864678]: VoodooI2CDeviceNub::ETPD Found valid GPIO interrupts
[   49.864839]: VoodooI2CDeviceNub::ETPD Got GPIO Controller! VoodooGPIOCannonLakeH
[  50.366579]: VoodooGPIOCannonLakeH::Failed getting hardware pin for GPIO pin 279VoodooI2CHIDDevice::ELAN1406 Warning: Could not get interrupt event source, using polling instead
this is my GDX1515 dmesg log
INI:
[   44.313108]: VoodooI2CControllerDriver::pci8086,2e9 Found I2C device: GDX1515
[   44.313178]: VoodooI2CDeviceNub::ETPD Found valid resources from _CRS method
[   44.313182]: VoodooI2CControllerDriver::pci8086,2e8 Got bus configuration values
[   44.313231]: VoodooI2CDeviceNub::ETPD Returned index 0x0 from _DSM or XDSM method is not supported
[   44.313235]: VoodooI2CDeviceNub::ETPD Could not retrieve resources from _DSM or XDSM method
[   44.313244]: VoodooI2CDeviceNub::ETPD Found valid GPIO interrupts
[   44.313344]: VoodooI2CControllerDriver::pci8086,2e8 Publishing device nubs
[   44.313347]: VoodooI2CDeviceNub::ETPD Got GPIO Controller! VoodooGPIOCannonLakeLP
[   44.816012]: VoodooI2CHIDDevice:0x100000738 start
[   44.919729]: VoodooI2CHIDDevice::GDX1515 Device initiated reset accomplished
[   45.050029]: VoodooI2CHIDDevice:0x100000738 creating interfaces
[   45.051068]: VoodooI2CHIDDevice:0x100000738 Matching has vendor DeviceUsagePage : ff0c bundleIdentifier com.apple.AppleUserHIDDrivers ioclass AppleUserHIDEventService but transport and vendorID is missing
[   45.053582]: VoodooI2CPrecisionTouchpadHIDEventDriver:0x10000073d start
[   45.059693]: open by VoodooI2CPrecisionTouchpadHIDEventDriver 0x10000073d (0x0)
[   45.059739]: VoodooI2CPrecisionTouchpadHIDEventDriver::GDX1515 Putting device into Precision Touchpad Mode
 
Joined
Sep 24, 2012
Messages
173
Motherboard
ASUS ZenBook Pro Duo 15 UX582
CPU
i9-10980HK
Graphics
UHD 630 + RTX 3070
@sqlsec Thank you. It looks like yours is working in GPIO mode. If @sqlsec's GDX1515 and 10510U are in GPIO mode, @gvkt, I assume maybe the problem is not on GDX1515 but the GPIO PIN number with our CPU? Maybe we have to use another equation to calculate for our 10750H and 10980HK? Maybe we can split the work through trail and error; I'm bringing @atrslb in, hoping we could split the work (0x0 to maybe 0x130) into three parts to find the right GPIO pin lol.
 
Last edited:
Joined
Mar 8, 2015
Messages
70
Motherboard
MSI Z370m Mortar; ASUS Zenbook Pro UX535LI
CPU
i5-9600k; i7-10750H
Graphics
UHD 630
Mac
  1. iMac
  2. MacBook Pro
The problem is in the BIOS firmware. I have verified with Linux that the APIC interrupt 0x5F is firing for the trackpad. In Linux you can see this interrupt tied to pin 74. Have run Linux with noapic to force GPIO but no GPIO interrupts come in on the pin because the firmware seems to be bypassing GPIO subsystem for the interrupt and/or it is not setting the GPIO interrupt status bit which is not required for APIC. Note that both Voodoo and Linux without mods prevent 74 from being used for interrupts at all as it is owned by APIC for this very reason.

So, it seems like a different BIOS issue than a chip or pinning issue. The only hope might be that there is a DSDT patch that will fix it for our machines.

I still would like to know how @sqlsec arrived at his pin number.

If @sqlsec can run a live linux CD or USB on his machine, he can also help us see the difference doing

cat /proc/interrupts

and

mount -t debugfs none /sys/kernel/debug
cat /sys/kernel/debug/pinctrl/<controller id>/pins

after booting.
 
Joined
Sep 24, 2012
Messages
173
Motherboard
ASUS ZenBook Pro Duo 15 UX582
CPU
i9-10980HK
Graphics
UHD 630 + RTX 3070
@gvkt Would it be possible to change this setting via BIOS menu options? I discovered these hidden BIOS menu options in my UX582 before:
- Force unlock on all GPIO pads
- Kernel Debug Serial Port
- Touch Pad Interrupt Mode
- Touch Panel Interrupt Mode

It's in section 1.4 Setup the Hidden BIOS Settings: https://www.tonymacx86.com/threads/...uo-15-oled-ux582-opencore.315661/post-2274269

However, your BIOS may have different addresses. I use ifrextract to check the hidden BIOS options.

Update: This is from VoodooI2V Gitter chat:
Frtsnts10 Jan 17 16:24
hi, can anyone help me ? i have Legion y530 i5 laptop and now running big sur 11.1 and my touchpad is i2c hid (checked on device manager). and before i made this message, i tried @chilledHamza 's efi i found from google, and i tried to copy the ssdt-tpd0(which is for touchpad), but after restart, it can read my touchpad but it moved not smooth.
now i tried to remove 3 kext (AppleHPM.kext, AppleIntelLpssI2C.kext and AppleIntelLpssI2CController.kext) from S/L/E to check if it works. but it didn't. so now i just have installed voodooi2c and voodooi2chid but still my touchpad cannot readable. i can attach my efi folder if needed. please help me, thanks.

Hamza Jan 17 20:30
@Frtsnts10 Attach problem reporting archive (VoodooI2C logs, IOReg, ACPI and OC)
For Y530/Y7000 you need to set Force unlock on all GPIO pads to Enabled in BIOS (Advanced Menu), Use SSDT-TPD0 to inject SSCN and FMCN values. After these two steps Trackpad should work with VoodooI2C + VoodooI2CHID (latest v2.6.3)
 
Last edited:
Joined
Mar 8, 2015
Messages
70
Motherboard
MSI Z370m Mortar; ASUS Zenbook Pro UX535LI
CPU
i5-9600k; i7-10750H
Graphics
UHD 630
Mac
  1. iMac
  2. MacBook Pro
Interesting. You could try changing those values especially the first one as a hidden setting using offsets. Pin 74 is locked full. IF (and a big IF) the problem is with Voodoo not being able to configure the pin correctly to get interrupts because it is set wrongly by the BIOS, then unlocking if possible MIGHT make Voodoo be able to set it up for providing interrupts. A very long shot though.

The other options won't matter. The touchpad is already in GPIO mode which I checked in Linux.

I am done fighting this BIOS for GPIO pinning and will live with polling.

I will leave debug versions of the two Voodoo kexts here (includes my patch to enable multi-touch and also proceeds to use the pin even if the ownership is set to APIC). It has more debug output than the release versions to get a positive proof of GPIO interrupts working when the trackpad is used and to detect where it fails. Use it if you wish only for debugging, not for anything else as it will introduce some delays in processing.
 

Attachments

  • VoodooTP_debug_kexts.zip
    208.9 KB · Views: 25
Joined
Sep 20, 2011
Messages
105
Motherboard
Gigabyte Z370M D3H
CPU
i5-8600K
Graphics
RX 580
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
Hello,
I am trying to set up VoodooI2C on a HP EliteBook 830 G5 (Kaby Lake). I use OC 7,5 and I have just set it up with Monterey 12,1. It seems that 95% is working. However this zoom function on the trackpad would be a really great thing to get to work. After reading endless pages how to go about it I still get kernel panic just as the machine starts up.

To start with I can not see the connection of GPI0 as of this guide https://dortania.github.io/Getting-...ps/trackpad-methods/manual.html#checking-gpi0

But my DSDT says I have the function. Am not sure how to go about this problem. As I said I have been working on this laptop for some days now, so there might be some errors that I am not aware off. Since am not an expert its not so easy with laptops. The SSDT-GPI0 is a little edited to mirror what I see in the DSDT.

Any suggestions is greatly appreciated

I2C.png
 

Attachments

  • DSDT.aml
    137.4 KB · Views: 26
Last edited:

Feartech

Moderator
Joined
Aug 3, 2013
Messages
25,930
Motherboard
Asus N752VX-OpenCore
CPU
i7-6700HQ / HM170
Graphics
HD 530 1920 x 1080
Mac
  1. iMac
Mobile Phone
  1. iOS
Hello,
I am trying to set up VoodooI2C on a HP EliteBook 830 G5 (Kaby Lake). I use OC 7,5 and I have just set it up with Monterey 12,1. It seems that 95% is working. However this zoom function on the trackpad would be a really great thing to get to work. After reading endless pages how to go about it I still get kernel panic just as the machine starts up.

To start with I can not see the connection of GPI0 as of this guide https://dortania.github.io/Getting-...ps/trackpad-methods/manual.html#checking-gpi0

But my DSDT says I have the function. Am not sure how to go about this problem. As I said I have been working on this laptop for some days now, so there might be some errors that I am not aware off. Since am not an expert its not so easy with laptops. The SSDT-GPI0 is a little edited to mirror what I see in the DSDT.

Any suggestions is greatly appreciated

View attachment 539777
you haven't installed the VoodooI2C kexts

also make sure you have working battery status
 
Joined
Sep 20, 2011
Messages
105
Motherboard
Gigabyte Z370M D3H
CPU
i5-8600K
Graphics
RX 580
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
you haven't installed the VoodooI2C kexts

also make sure you have working battery status
Thanks for answer. I know, no kext yet because then I can't boot at all. The guide says I need to have a connection in IOREG at GPI0 first ,but I can not make that work yet. Maybe I have made some misstake with the SSDT-GPI0-test file in the APCI folder? But as I look at my DSDT I can't see what. For now, even if the SSDT´s are not fine-tuned things seems to work with battery etc.

That means I can't boot with the kexts Voodoo2C-2.6.5. How can I continue you think?
 

Attachments

  • Battery etc..png
    Battery etc..png
    108.2 KB · Views: 29
  • IOREG-GPI0.png
    IOREG-GPI0.png
    95.9 KB · Views: 28
  • EFI.zip
    25 MB · Views: 31
  • DSDT.aml.zip
    52.5 KB · Views: 25
Joined
Mar 8, 2015
Messages
70
Motherboard
MSI Z370m Mortar; ASUS Zenbook Pro UX535LI
CPU
i5-9600k; i7-10750H
Graphics
UHD 630
Mac
  1. iMac
  2. MacBook Pro
The GPIO controller to attach to your GPI0 is in VoodooI2C.kext. So, without it you are not going to get anything attaching. You need to solve why it is not booting with Voodoo kexts. Do a verbose boot and see where it hangs or if you get any messages. Do the same without the kexts and see where it diverges. Make sure your config.plist is getting updated correctly after adding or removing kexts.

Also try with just VoodooI2C.kext and not any of the Voodoo plugins. The trackpad won‘t work but you might get error messages from VoodooI2C. To see the messages, add debugenhancer.kext and if it boots, you can do ‘sudo dmesg | grep Voodoo’.

It is not clear from your original post if the trackpad is working without the Voodoo kexts but with no multi-touch or it is not working at all.
 
Top