Contribute
Register

[WIP] VoodooI2C I2C Trackpad (Limited Support)

Joined
Apr 21, 2016
Messages
1,359
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
iOS
Hi I have a lenovo yoga 720 13' laptop and got the touchpad working in mouse emulation mode after applying following patch
https://github.com/alexandred/VoodooI2C/compare/master...MacForceOne:patch-1
I want to enable support for gestures.

It's a synaptics touchpad with hardware id "VEN_MSFT&DEV_0001&Col02", Also supposed to be a precision trackpad. Currently VoodooI2CHIDDevice interface is used for this touchpad as the device name detected by VoodooI2C is MSFT0001.

I tried forcing it to use VoodooSynapticsRMITouchpadDevice and VoodooI2CPrecisionTouchpadDevice, but trackpad didn't work. Which interface I was support to use? SynapticsRMI or Precision? Let me know if any info needed.
Please attach a copy of IOReg with VoodooI2C loaded and working, maybe the report descriptor is similar to something we've seen and @coolstarorg could help with it :)

Can't guarantee that's a possible/simple fix though.
 
Joined
Sep 9, 2011
Messages
6
Motherboard
Lenovo Yoga 720 13'
CPU
Intel i5-7200U
Graphics
Intel HD620
Mobile Phone
Android
Please attach a copy of IOReg with VoodooI2C loaded and working, maybe the report descriptor is similar to something we've seen and @coolstarorg could help with it :)

Can't guarantee that's a possible/simple fix though.
Please find the attached ioreg dump of my system.
 

Attachments

Joined
Apr 21, 2012
Messages
287
Motherboard
Asus UX430UA (Clover)
CPU
i7-7500U
Graphics
HD 620
Mac
iMac, MacBook Air, MacBook Pro
Mobile Phone
iOS
I'm not amazing, @coolstarorg is :)

So trackpad is working perfectly now? Other reports suggested it's buggy with those changes. Thanks!
heh ;) so thank you @coolstarorg too ;)

no, it doesn't work perfecly(cursor lagging/freezing/jumping sometimes) but i can use it now and scrolling or after sleep works too, so for me is much better than before ;)
 
Joined
Jan 8, 2012
Messages
7
Motherboard
ASUS UX330 UAK
CPU
Intel® Core™ i7 processor 7500U
Graphics
Intel HD Graphics 620
Mac
MacBook Pro
Mobile Phone
Android
@ben9923 you are amazing !!!
I spent hours trying to find solution for my trackpad

Detailed instruction(maybe will help someone)

So, i've removed(backup) kext from S/L/E
Code:
AppleHPM.kext
AppleIntelLpssI2C.kext
AppleIntelLpssI2CController.kext
like usually after upgrade(latest High Sierra public beta) and next:
- pulled repo from https://github.com/alexandred/VoodooI2C to Dwonloads and unziped
- opened project with Xcode and applied changes as you said
- next opened terminal and `cd Downloads/VoodooI2C-master`
- `xcodebuild`
- copied kext from `Downloads/VoodooI2C-master/build/Release` to Desktop and ...
- `sudo rm -Rf /Library/Extensions/VoodooI2C.kext /System/Library/Extensions/VoodooI2C.kext`
- `sudo cp -R VoodooI2C.kext /Library/Extensions`
- `sudo touch /System/Library/Extensions && sudo kextcache -u /`

and restart laptop.

After that that my trackpad is recognised in SystemPreferences :headbang: and i have working:
- vertical and horizontal scrolling via two fingers
- right, left click
- 3 fingers(mission controll), launchpad etc
- other

and it works after sleep ;))))

I didn't change anything in DSDT, just latest kext from GiHub, your changes and after two months of searching it works fine :crazy:

Thank you @ben9923 again :clap:

So it looks that only Elan:Fingerprint left in Asus UX430UA device.
Everything else works great

https://www.tonymacx86.com/threads/asus-ux430ua-kaby-lake-intel-hd-graphics-620.225847/


EDITED:
I like to have every kext only in EFI/CLOVER/kexts without modifying OS files so i moved VoodooI2C.kext to EFI/CLOVER/kexts/10.13 and it works too ;)
I know that there is other idea to save everything to OS(cache, faster boot etc) but if i have everything in EFI partition i don't have to modify OS every time i upgrade OS. IMO it's better to have vanilla OS and upgrade from AppStore as typical mac.

I got the same results. I have a UX330UAK with ELAN 1300. Changed Elan 0651 to ELAN1300 instead and it works well. Still not close to what a real MacBook Pro trackpad will work but it really is much better than before
 
Joined
Oct 18, 2015
Messages
291
Motherboard
ASUS ZenBook UX305UA
CPU
i5 6200U 2.4 GHz/Intel Skylake-U
Graphics
Intel HD520 1920x1080
Mobile Phone
iOS
i've changed only code

Code:
Scope (_SB.PCI0)
    {
        Device (I2C1)
        {
            Name (LINK, "\\_SB.PCI0.I2C1")
            Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
            {
                Return (GETD (SB11))
            }

            Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
            {
                LPD0 (SB11)
            }

            Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
            {
                LPD3 (SB11)
            }

            If (LNotEqual (SMD1, 0x02))
            {
                Name (_HID, "INT3443")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB11))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD1, SB01, SIR1))
                }

                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    Return (LSTA (SMD1))
                }
            }

            If (LEqual (SMD1, 0x02))
            {
                Name (_ADR, 0x00150001)  // _ADR: Address
                Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
                {
                    If (PCIC (Arg0))
                    {
                        Return (PCID (Arg0, Arg1, Arg2, Arg3))
                    }

                    Return (Buffer (One)
                    {
                         0x00                                         
                    })
                }
            }
        }
    }
from my DSDT because in yours you had all "IF" outside Scope (_SB.PCI0) - you can compare these lines.
I tried to add this code to my "new" DSDT but I got errors. Can you add the code again? Thanks
 

Attachments

Joined
Apr 21, 2012
Messages
287
Motherboard
Asus UX430UA (Clover)
CPU
i7-7500U
Graphics
HD 620
Mac
iMac, MacBook Air, MacBook Pro
Mobile Phone
iOS

Attachments

Joined
Apr 21, 2012
Messages
287
Motherboard
Asus UX430UA (Clover)
CPU
i7-7500U
Graphics
HD 620
Mac
iMac, MacBook Air, MacBook Pro
Mobile Phone
iOS
ok, today i saw(after couple of restarts) that System Preferences -> Trackpad disappeared :banghead:

trackpad works fine but no preferences.

any idea?
 

Attachments

Joined
Apr 21, 2016
Messages
1,359
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
iOS
Please find the attached ioreg dump of my system.
When the VoodooI2C rewrite is completed, you'll have multitouch functioning, and working well.
Until then you'll need to use the kext with single touch only :)
 
Joined
Apr 21, 2016
Messages
1,359
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
iOS
ok, today i saw(after couple of restarts) that System Preferences -> Trackpad disappeared :banghead:

trackpad works fine but no preferences.

any idea?
Are you still using the kext with multitouch? Is multitouch still working?
 
Top