Notice GenericUSBXHCI.kext won't even load on OS X 10.11+, you can remove it.
SSCN & FMCN can be added anywhere, as long as they are within the matching I2C scope (I2C1 in this case). You can add those via an SSDT instead of patching the DSDT
About the GPIO controller enable patch, you can patch the original _STA to XSTA (Via Clover renames, use TgtBridge) and add a new _STA method (Which returns 0x0F) within that SSDT.
Make sure you really need VoodooI2CELAN.kext, on newer hardware it's much more common to use just VoodooI2CHID, as most devices conform to the precision trackpad protocol. If you're losing multitouch on one/both device(s), just install it back.
As it's a Whiskey Lake device, I assume it has a Cannon Point GPIO controller. Are you sure you're using GPIO interrupts for your I2C devices? It's only supported in VoodooI2C v2.2+, and you're using v2.1.6.
Sure it's not using polling currently? May you attach an IOReg and a kernel log?
(We really want to see Cannon Point GPIO interrupts functioning correctly)
So yeah, you have a Cannon Point-LP GPIO controller. Looking at the kernel log, you can see this:Thanks for your suggestion. I will try it later. And here are the files you want to see.
Cheer!
VoodooI2CControllerDriver::VoodooI2CDeviceNub Warning: Incompatible APIC interrupt pin (0x33 > 0x2f) and no GPIO interrupts found; if your chosen satellite implements polling then VoodooI2CDeviceNub will run in polling mode.
Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
Happy to work on this projectthanks your works on VoodooI2C
I Have difficult in SSDT patches, Can you explain it to me , Thanks! And I found that the DSDT.aml already hadSo yeah, you have a Cannon Point-LP GPIO controller. Looking at the kernel log, you can see this:
Currently TPD0._CRS gives the APIC pin 0x33. Only APIC pins <= 0x2F are supported in macOS, so VoodooI2CHID falls back to polling - which is what you're currently using.Bash:VoodooI2CControllerDriver::VoodooI2CDeviceNub Warning: Incompatible APIC interrupt pin (0x33 > 0x2f) and no GPIO interrupts found; if your chosen satellite implements polling then VoodooI2CDeviceNub will run in polling mode.
Looking at the origin DSDT in post #1, you already have a GPIO pin declared for your trackpad, it's just not used.
You can quite simply patch _CRS to have just this inside:
(Can be also easily done with an SSDT. Rename original to XCRS, add this patched method via an SSDT. As most of your setup is based on hotpatching, it's really nice to just not patch the DSDT with a little effort)C-like:Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
Of course - make sure you update the kexts to v2.2. VoodooI2CHID is used for both your trackpad and touchscreen, so VoodooI2CELAN can be safely removed
Happy to work on this project
Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
Read here about hotpatching (SSDTs + renames):I Have difficult in SSDT patches, Can you explain it to me , Thanks! And I found that the DSDT.aml already hadCode:Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
I give it a try with the following patches, however the trackpad act like a mouse and jerky and lost 2, 3 fingers gesture. occasionally I can roll up and down but in a clumsy way.Read here about hotpatching (SSDTs + renames):
[Guide] Using Clover to "hotpatch" ACPI
Introduction Patching ACPI is always necessary to enable (near) full functionality when installing OS X on non-Apple hardware. There is a complete guide here: http://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/ That guide uses what is known as "static patching". In...www.tonymacx86.com
The suggested code should be the only code in _CRS. You have more than just it inside currently.
Please use gen_debug.sh to provide the debug files.I give it a try with the following patches, however the trackpad act like a mouse and jerky and lost 2, 3 fingers gesture. occasionally I can roll up and down but in a clumsy way.
Try disabling ACPIBatteryManager seems to be not help. Here is the debug files debug_27910.zip is under original post condition, and debug_9335.zip is the one I try to use PGIO pin.Please use gen_debug.sh to provide the debug files.
Try disabling ACPIBatteryManager, see if it's helping. If it does, use SMCBatteryManager instead.
IOReg is not attached to either. Make sure you give Terminal accessibility access in SysPrefs>Security & Privacy>Privacy>Accessibility, before running the script.Try disabling ACPIBatteryManager seems to be not help. Here is the debug files debug_27910.zip is under original post condition, and debug_9335.zip is the one I try to use PGIO pin.