Contribute
Register

VoodooI2C Help and Support

Joined
Apr 21, 2016
Messages
1,008
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
  1. iOS
Hey everybody,
I have been trying to get the rewrite of Voodoo I2C Kexts to work on my Asus Zenbook UX310UA with a ELAN1200 touchpad. I have followed the guide that is linked to the original post. The problem im having is adding the VoodooI2C Patch, i have added the repo to the sources, but the part about windows patches and the controller patches/Gpio patches. I have done as it says on the guide but cant find the patches dialog. I tried to ignore that bit and proceed onto the GPIO Pinning, I have attached my DSDT. The kexts i have installed to CLOVER/Kexts/Other and my IOREG.

Im also using MacOS High Sierra 10.13 (Unibeast) with a Core I3 6100U and ELAN1200
I can also get the trackpad working with older kexts v1.04 but there very basic // the pointer wont stay still.
This is the patched dialog box:
Screen Shot 2018-01-21 at 21.34.52.png

The attached DSDT doesn't contain edits as part of the GPIO-pinning guide.
 
Joined
Apr 21, 2016
Messages
1,008
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
  1. iOS
Joined
Jun 11, 2017
Messages
10
Motherboard
Ignore me
CPU
I'm Ignoring
Graphics
Forum Rules !!!!
The I2C controllers patch is for SKL only. You seem to have a Kabylake R device, by your profile.
A screenshot of IOReg isn't very helpful, especially not this one. Attach a copy of IOReg (and the new DSDT, after removing the controllers patch)
Okay I removed the controllers patch and attached my ioreg
 
Last edited:
Joined
Apr 26, 2010
Messages
67
Motherboard
Asus Zenbook Pro UX501VW
CPU
Skylake i7-6700HQ
Graphics
Intel HD530 + GTX 960M
From the guide:

The code in TPL1 only applies to TPL1, not to ETPD.

The guide says that if you find a line that looks like this:

Then your device is well-pinned.
Look at step 2e to see how you should edit your _CRS method in the end.

(Sorry if I made a mistake, as I'm still new at supporting the rewritten kext. It was just released :p)

@ben9923

Thank you so much for the pointers! I re-read the GPIO pinning guide more slowly and was able to successfully complete all the steps. I'm on Sierra 10.12..6

My I2C ELAN1000 trackpad works on VoodooI2C v2.0.1 with VoodooI2CELAN.

Code:
Step 2d: Manually pinning your device

    APIC pin number: 0x5f, from the hexadecimal APIC pin reference list (first link) => #define GPP_C23_IRQ   0x5f (label is C23)

    Now, from the second reference list with label C23 (second link) => #define GPP_C23   71 => decimal GPIO pin number is 71

    71 (decimal) is 0x47 (hexadecimal). The APIC pin number 0x5f falls in the range 0x5c..0x77 => Hexadecimal GPIO pin number is 0x47

Step 2e:  Ensuring your DSDT notifies the system that your device is GPIO pinned

        // had to change SBFI to SBFG

                  Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                        Return (ConcatenateResTemplate (SBFB, SBFG))
                }

VoodooI2CELAN v2.png

Indeed:

-hardware right-click works! (this is a big first. Thanks)
-2-Finger scrolling works!
-2-Finger tap-to-click works!
-3-Finger mission control works. But sometimes, the mission control windows immediately bounce back into place instead of staying spread out on the desktop. Have to redo the 3-Finger mission control swipe several times for the windows to stay spread out.

EDIT: I just tried Apple Logo -> Sleep. The trackpad was fully working after sleep. Excellent work! this is a first (ELAN1000)

Now, how about the Trackpad.prefPane file? Are we supposed to remove the rolled back Trackpad.prefPane and put back the original Trackpad.prefPane?
 

Attachments

  • DSDT.dsl
    1.2 MB · Views: 298
  • SystemLog.txt
    20.8 KB · Views: 280
Last edited:
Joined
Jul 11, 2014
Messages
436
Motherboard
Asus A555LAB
CPU
i3-4005U
Graphics
HD 4400
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Now, how about the Trackpad.prefPane file? Are we supposed to remove the rolled back Trackpad.prefPane and put back the original Trackpad.prefPane?
You can. It worked my ELAN1000 and 1200 OOB. No need to install or replace any prefpane.
 
Joined
Apr 21, 2016
Messages
1,008
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
  1. iOS
Okay I removed the controllers patch and attached my ioreg
Nothing attached. Also requested your new patched DSDT.

@ben9923

Thank you so much for the pointers! I re-read the GPIO pinning guide more slowly and was able to successfully complete all the steps. I'm on Sierra 10.12..6

My I2C ELAN1000 trackpad works on VoodooI2C v2.0.1 with VoodooI2CELAN.

Code:
Step 2d: Manually pinning your device

    APIC pin number: 0x5f, from the hexadecimal APIC pin reference list (first link) => #define GPP_C23_IRQ   0x5f (label is C23)

    Now, from the second reference list with label C23 (second link) => #define GPP_C23   71 => decimal GPIO pin number is 71

    71 (decimal) is 0x47 (hexadecimal). The APIC pin number 0x5f falls in the range 0x5c..0x77 => Hexadecimal GPIO pin number is 0x47

Step 2e:  Ensuring your DSDT notifies the system that your device is GPIO pinned

        // had to change SBFI to SBFG

                  Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                        Return (ConcatenateResTemplate (SBFB, SBFG))
                }

View attachment 307653

Indeed:

-hardware right-click works! (this is a big first. Thanks)
-2-Finger scrolling works!
-2-Finger tap-to-click works!
-3-Finger mission control works. But sometimes, the mission control windows immediately bounce back into place instead of staying spread out on the desktop. Have to redo the 3-Finger mission control swipe several times for the windows to stay spread out.

EDIT: I just tried Apple Logo -> Sleep. The trackpad was fully working after sleep. Excellent work! this is a first (ELAN1000)

Now, how about the Trackpad.prefPane file? Are we supposed to remove the rolled back Trackpad.prefPane and put back the original Trackpad.prefPane?
Glad it's working!

I also experience the 3F swipe problem you have. I'll check if something can be done to fix it.

v2.0 implements correct power management, therefore your device is fully functional after sleep/wake. That's a key feature for laptops ;)

There's no need to use an old prefpane. It was only needed back when Sierra was just released. A fix was found and implemented a long long time ago :)
You may revert back to the original prefpane from the OS you currently have, as @black.dragon74 said.
 
Last edited by a moderator:
Joined
Apr 26, 2010
Messages
67
Motherboard
Asus Zenbook Pro UX501VW
CPU
Skylake i7-6700HQ
Graphics
Intel HD530 + GTX 960M
There's no need to use an old prefpane. It was only needed back when Sierra was just released. A fix was found and implemented a long long time ago :)
You may revert back to the original prefpane from the OS you currently have, as @black.dragon74 said.

Thanks. I reverted to the original Sierra trackpad prefpane and the original prefpane works now.

@NickChantt,
The GPIO pinning method is not an easy method. I only started to fully grasp the steps by the 3rd reading. In the end, it's about paying attention to details and seeing what applies to your case.

I looked at your patched dsdt from a few posts ago. If your trackpad's ACPI ID is ETPD like on my Asus, then I can assure you that you did not properly apply steps 2a, 2b and 2e.

Step 2a: In Device (ETPD), you look for Name (SBFG, ResourceTemplate (). "If you cannot find such a Name then we shall say that your device is unpinned." That's all you need to know in your case from step 2a

Step 2b: "If your device is unpinned, insert the following into the root of your device" (Device ETPD)

Code:
    Name (SBFG, ResourceTemplate ()
    {
        GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
            "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
            )
            {   // Pin list
                0x0000
            }
    })

"You may now consider your device to be root pinned (but not well-root pinned) and can proceed to Step 2d."

Step 2d: The guide shows you how to use 2 different references lists to determine your hexadecimal GPIO pin number

Step 2e: There is a Method _CRS inside Device ETPD at the very end. Your patched Method _CRS does not look at all like the guide says it should look.

You get the idea. As long as you do exactly like the guide says you should do, you should be fine.
 
Last edited:
Joined
Jan 5, 2018
Messages
7
Motherboard
Asus G60VW (clover)
CPU
i7 6700hq
Graphics
HD530 4k
Mobile Phone
  1. iOS
Hello!
My laptop is ASUS G60VW, sold in China, similar to GL552VW. I had used the voodooI2C v1.0.4, it did work, but not perfectly. Once I found the v2.0.1 release, I downloaded it and replaced the old one. But the v2.0.1 didn't work. I'll upload my dsdt and .ioreg. Could you please help me?
 

Attachments

  • V1.0.4.ioreg
    8 MB · Views: 221
  • DSDT.dsl
    1.2 MB · Views: 226
  • V2.0.1.ioreg
    7.4 MB · Views: 193
Top