Contribute
Register

[WIP] VoodooI2C I2C Trackpad (Limited Support)

Joined
Apr 21, 2012
Messages
289
Motherboard
Asus UX430UA (Clover)
CPU
i7-7500U
Graphics
HD 620
Mac
iMac, MacBook Air, MacBook Pro
Mobile Phone
iOS
Yea, the TrackPad works. What did you changed?
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.
 
Joined
Apr 21, 2016
Messages
1,354
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
iOS
Hey, thanks for the kext but it didn't work. Although ink did show up again. Perhaps my DSDT is incorrectly patched? I've attached a partial copy of the system log which has a voodooi2c error message. And also my ioreg without the kext installed. The other files that I previously attached have a copy of the ioreg with it installed. Thanks!
Not sure what's the problem then :(
Maybe you can re-extract and re-patch your DSDT, but I can't guarantee it would work.
 
Joined
Apr 21, 2016
Messages
1,354
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
iOS
@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'm not amazing, @coolstarorg is :)

So trackpad is working perfectly now? Other reports suggested it's buggy with those changes. Thanks!
 
Joined
Sep 9, 2011
Messages
6
Motherboard
Lenovo Yoga 720 13'
CPU
Intel i5-7200U
Graphics
Intel HD620
Mobile Phone
Android
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.
 
Joined
Apr 21, 2016
Messages
1,354
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
289
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
289
Motherboard
Asus UX430UA (Clover)
CPU
i7-7500U
Graphics
HD 620
Mac
iMac, MacBook Air, MacBook Pro
Mobile Phone
iOS

Attachments

Top