RaptorLake touchpad driver problem #1
Sorry for the slow answer, and nice work getting it running on interrupts.
In case it saves you a custom build: VoodooI2C merged Tiger Lake, Alder Lake and Raptor Lake I2C and GPIO support on 2026-10-25 (VoodooI2C/VoodooI2C#586), including the VoodooGPIO pin data. There's no release with it yet (the last one is 2.9.1), so it's a build from source for now. It might replace your step 2.
If you're willing to share the _CRS rewrite for TPD0 and the device ID you added, I'd like to link it from the README for other Y9000P IRX8 owners. Arrow Lake isn't in that PR, so this repo stays for the 15IAX10.
I found the _CRS method does not need to be rewritten,the original ACPI sheet can provide the interrupt resource. That just is AI's overfitting. So the modified VoodooI2C.kext, which includes your I2C controller id and VoodooGPIO.kext, which compiles your GPIO pin info and interrupt num are enough to drive the touchpad. https://github.com/bafcz/Hackintosh_LegionY9000P-IRX8_RaptorLake-HX
Arrow lake can also use this solution. The codex can help you filling the pin info by reading linux kernel, other missing data groups are from your ACPI data.
Thanks, and good to know the _CRS rewrite wasn't needed.
Arrow Lake is where I'd like to try this next, so two questions to line your setup up with ours.
- Which VoodooI2C did you test: your own build, or master with PR #586? If you can link just the diff of your community and pad tables, I'll read it next to Linux. Your repo is GPL-3.0, so I'll use it as a reference and take the numbers from Linux myself.
- I'm not sure the pin data is the same on Arrow Lake. In Linux, INTC105E and INTC1083 use the Meteor Lake-P table and INTC1082 the Meteor Lake-S one, but INTC1084 is a separate table with five communities in pinctrl-meteorpoint.c. Our DSDT reports INTC1084 for the PCH GPIO device that TPD0's GpioInt points at, so I would start from that table. Which HID does the GPIO device behind your TPD0 report?
Nothing is decided on our side yet. The touchpad works in polling mode today, and interrupts would only save some idle wakeups.
My own build has been tested successfully on my Raptor lake platform. The official repo(just merged) should also work(I have not tested it). You can refer to https://github.com/bafcz/VoodooGPIO/tree/RaptorLakeFix
Other details are from codex and doubao. I did not take any time on manual coding.
Thanks for the link. I see VoodooGPIO merged Alder Lake and Raptor Lake support on 2026-10-25 (PR #20), so your Raptor Lake route is upstream now. For Arrow Lake I'll start from the INTC1084 table in Linux and compare with your branch; I'll post here when I have something to test. Polling stays the default until then.





