Contribute
Register

VoodooI2C Help and Support

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
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.
Hi thanks for reply. I use VoodooPS2Controller.kext and with that trackpad and keyboard works good. As soon as I ad VoodooI2C.kext I get kernel panic direct at boot. But thanks a lot you gave me an idé. I disabled VoodooPS2 totally and booted with VoodooI2C+I2CHID kext and guess, it booted, and I could now see that GPI0 was connected!
Then I went the other way around and found that I could enable all, but the VoodooPS2inputkext (then there is the kernel panic).
It is good I found out that, but I2C gives no gestures or zoom possibilities yet. I feel totally stupid now, what do I miss? (I update between restarts, that I don't miss :))

Edit: I start with reading the manual again
 

Attachments

  • GPI0 working!.png
    GPI0 working!.png
    108.2 KB · Views: 44
  • Voodoo boots ok.png
    Voodoo boots ok.png
    1.6 MB · Views: 39
Last edited:

Feartech

Moderator
Joined
Aug 3, 2013
Messages
25,953
Motherboard
Asus N752VX-OpenCore
CPU
i7-6700HQ / HM170
Graphics
HD 530 1920 x 1080
Mac
  1. iMac
Mobile Phone
  1. iOS
Hi thanks for reply. I use VoodooPS2Controller.kext and with that trackpad and keyboard works good. As soon as I ad VoodooI2C.kext I get kernel panic direct at boot. But thanks a lot you gave me an idé. I disabled VoodooPS2 totally and booted with VoodooI2C+I2CHID kext and guess, it booted, and I could now see that GPI0 was connected!
Then I went the other way around and found that I could enable all, but the VoodooPS2inputkext (then there is the kernel panic).
It is good I found out that, but I2C gives no gestures or zoom possibilities yet. I feel totally stupid now, what do I miss? (I update between restarts, that I don't miss :))
if VoodooPS2Controller.kext works for your trackpad then you do not need VoodooI2C.kext?
 
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
if VoodooPS2Controller.kext works for your trackpad then you do not need VoodooI2C.kext?
No, but am just curious to see if I can get the gestures and zoom function working. For my eyes it is quite nice on a small screen like that, and it works in windows...this laptop is just on the wrong side of having windows 11 also, but still quite nice. But you are right its not 100% necessary.
 

Feartech

Moderator
Joined
Aug 3, 2013
Messages
25,953
Motherboard
Asus N752VX-OpenCore
CPU
i7-6700HQ / HM170
Graphics
HD 530 1920 x 1080
Mac
  1. iMac
Mobile Phone
  1. iOS
No, but am just curious to see if I can get the gestures and zoom function working. For my eyes it is quite nice on a small screen like that, and it works in windows...this laptop is just on the wrong side of having windows 11 also, but still quite nice. But you are right its not 100% necessary.
also it is not wise to use kexts that are not needed
 
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
@danilovitch Have you checked if your touch screen is a I2C device? Does it show up as a I2C HID device in windows device manager?

Both VoodooPS2Controller and VoodooI2C include VoodooInput and they clash. If you use Propertree to edit your config.plist it will warn you and offer to disable in one or the other.
 
Joined
Feb 23, 2020
Messages
163
Motherboard
Dell Precision M4700
CPU
i7-3740QM
Graphics
M4000
A lot of elitebooks use SMBus, not I2C, trackpads. Might be worth checking the logging output from VoodooPS2Trackpad to see if it supports SMBus/Intertouch.
 
Joined
Aug 28, 2015
Messages
7
Motherboard
ASUS UX305UA (Clover)
CPU
i5-6200u
Graphics
HD 520; 1920x1080
Mobile Phone
  1. Android
Dear all,

I’m writing on my ASUS UX305ua Zenbook with Skylake i5-6200u processor, which is equipped with an ELAN Trackpad.

I formerly used Clover on a Catalina set-up with a fully working trackpad via GPIO Pinning to Pin 0x55 and VoodooI2C.kext and VodooI2CELAN.kext installed.

Now I’m running a fresh installation of Monterey via OpenCore and tried to apply the necessary changes.
What I did so far:

1) Checked IORegistryExplorer: No GPIO entry => added SSDT-GPIO.aml + SSDT-XOSI.aml + „Rename _OSI to XOSI (OS)“ in config.plist
=> GPIO entry shows up

2) Checked ACPI ID of my trackpad (ETPD) in Registry explorer => is listed as ETPD@1 with 1 value for IOinteruptSpecifier <6d 00 00 00 03 00 00 00>
=> 0x6d being > 0x2F I need to proceed with GPIO pinning.

My attempt now was to use the SSDT-I2C.aml to replace the _CSR method of my Device with XCSR in SSDT which both covers renaming of SBFI to SBFB and removes „Interrupt (ResourceConsumer)…“ paragraph
I also added a respective config.plist patch „_SB.PCI0.I2C1.ETPD._CRS to _SB.PCI0.I2C1.ETPD.XCRS“ assuming this will take care for the change.

As my device seems to be unpinned, I also added the „Name (SBFG…“-chapter to the SSDT-I2C.aml including setting to PIN 0x55.

No luck so far.

With clover, I patched the DSDT.aml directly via MaciASL and the suggested patches (windows patch, I2C controller patch Skylake, GPIO patch). I don't know if this has anything to do with my issues.
My knowledge is not sufficient enough though to transfer these patches manually to my configuration.

Is someone able to point me to the right direction?
Thanks a lot!

Attached my "stock" DSDT, the IOReg file after steps taken above and an extract of my EFI with (hopefully) relevant files.
 

Attachments

  • Original_DSDT.aml
    148.6 KB · Views: 18
  • UX305UA_IOReg.ioreg
    5.5 MB · Views: 16
  • OC_Monterey_Archive.zip
    280.7 KB · Views: 20
Joined
Feb 19, 2016
Messages
204
Motherboard
ASUS ZenBook UX430UA-DH74
CPU
i7-8550U
Graphics
Intel 620 1920x1080
I don't see this patch in your DSDT

# GPI0 Status patch
# Ensures that OS X can enumerate the GPI0 controller
# Written and maintained by Alexandre Daoud
into method label _STA parent_label GPI0 replace_content begin
Return (0x0F)
end;
 
Joined
Aug 28, 2015
Messages
7
Motherboard
ASUS UX305UA (Clover)
CPU
i5-6200u
Graphics
HD 520; 1920x1080
Mobile Phone
  1. Android
I don't see this patch in your DSDT

# GPI0 Status patch
# Ensures that OS X can enumerate the GPI0 controller
# Written and maintained by Alexandre Daoud
into method label _STA parent_label GPI0 replace_content begin
Return (0x0F)
end;
Thanks for your reply.
The Original_DSDT.aml is my dumped DSDT without any patches.

The .zip archive contains parts of my OC Monterey EFI older including SSDTs.
The GPI0 patch should be contained in my SSDT-GPIO.aml. Don't know if this is correct though.

Code:
DefinitionBlock ("", "SSDT", 2, "hack", "ETPD", 0x00000000)
{
    External (_SB_.PCI0.GPI0, DeviceObj)    // (from opcode)
    External (_SB_.PCI0.I2C1.ETPD, DeviceObj)    // (from opcode)

    Scope (_SB.PCI0.GPI0)
    {
        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            Return (0x0F)
        }
    }

    Scope (_SB.PCI0.I2C1.ETPD)
    {
        Name (SBFG, ResourceTemplate ()
        {
            GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
                "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                )
                {   // Pin list
                    0x0055
                }
        })
        Method (XCRS, 0, Serialized)
        {
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, , Exclusive,
                    )
            })
            Return (ConcatenateResTemplate (SBFB, SBFG))
        }
    }
}
 
Joined
Aug 28, 2015
Messages
7
Motherboard
ASUS UX305UA (Clover)
CPU
i5-6200u
Graphics
HD 520; 1920x1080
Mobile Phone
  1. Android
One step ahead...

based on your hint @starcentral I realized that I both didn't rename the GPI0 _STA method to XSTA in my SSDT and had the renaming in my config.plist inactive as well.

I changed that now. Still no working trackpad though.
New file archive attached - IOReg, DSDTs inside.
 

Attachments

  • OC_EFI_extract_UX305UA.zip
    295.6 KB · Views: 22
Last edited:
Top