Contribute
Register

[WIP] VoodooI2C I2C Trackpad (Limited Support)

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,164
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
I was really wondering how you don't have a shiny Skylake/Kaby Lake laptop yet :p
Which laptops are you currently thinking about?
A bit off-topic..., but

Looking for 2 in 1 (flip), HiDPI, 13".

Ones on the list so far:
- HP x360 Envy
- Dell XPS 13
- Lenovo Yoga 910

Haven't looked at what ASUS has to offer...heard they were taking shortcuts with their HiDPI displays...
 
Joined
Apr 21, 2016
Messages
1,351
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
  1. iOS
A bit off-topic..., but

Looking for 2 in 1 (flip), HiDPI, 13".

Ones on the list so far:
- HP x360 Envy
- Dell XPS 13
- Lenovo Yoga 910

Haven't looked at what ASUS has to offer...heard they were taking shortcuts with their HiDPI displays...
Let's get back to topic then :p

From my research:
the x360 has an I2C ELAN touch screen (ELAN touch screens currently unsupported by VoodooI2C)
the XPS 13 has a PS2 trackpad, not sure about the touch screen
And the Yoga 910 has both I2C trackpad and touch screen (SYNAxxxx, unsupported I think)

IMO, the XPS 13 looks very nice, it has modern hardware and a great design. Its battery life should be amazing. My favorite I guess. (But no I2C hardware? :O )

Wish I could give you an opinion about ASUS's screens, but I've got a 1366x768 display (Not my best choice I guess, but I got a good hardware for it's price - $700. In Israel that $999 XPS 13 with the same specs costs ~$1800. So hard to get a laptop for a reasonable price...)
 
Last edited:
Joined
Apr 21, 2016
Messages
1,351
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
  1. iOS
I would like to write up my fixes for the ELAN1200 trackpad.

At first, you have to delete the I2C kexts from /System/Library/Extensions, these are:

  1. AppleIntelLpssI2C.kext
  2. AppleIntelLpssI2CController.kext

Next, install the attached VoodooI2C.kext from this post. When you are done, rebuild your kextcache:

Code:
sudo kextcache -i /

The next step is to edit your DSDT. Apply the following patches to your DSDT:
  1. https://github.com/haimann951/ACPI-Patches/blob/master/VoodooI2C/ELAN1200.txt
  2. https://github.com/alexandred/VoodooI2C-Patches/blob/master/Haswell-Broadwell/Windows_10.txt
After applying these patches and putting your modified DSDT in /EFI/CLOVER/ACPI/patched, you can reboot your computer.
You should have a working trackpad and keyboard (keyboard works using VoodooPS2Controller) now. But the trackpad functionality will break after sleep. To fix that, read the following:

First install sleepwatcher with this great guide: http://tyhoffman.com/blog/2013/09/sleepwatcher-power-event-driven-automation/

Next, download the Sleepfixer script, the trackpadenabler script and the trackpaddisabler script attached with this post (they are inside the scripts.zip file). Open all of them with script editor and modify the username and password to your macOS username and your macOS password. After you have done that, export them as an application and save them in your home directory (/Users/yourusername/).

Next open up terminal and type:

Code:
sudo nano /etc/rc.wakeup

Now make sure that the contents of the file look like:

Code:
#!/bin/sh
open -a /Users/yourusername/Sleepfixer.app/

Make sure to replace "yourusername" with your actual macOS username. Now save the file by pressing Ctrl + x. It will ask you if you want to save all changes, type "y" for yes. Next it will ask for the filename, just press enter.

After you have done all these steps, reboot your computer and try to put it to sleep. Everything should work now.
Sometimes the trackpad doesn't work after sleep even after running the fixer app, then press command + space and type trackpaddisabler. It should find the trackpaddisabler program and you can press enter. Repeat the same but search for trackpadenabler instead. You should have a working trackpad again.

You can also use the trackpaddisabler app if you want to turn the trackpad off (sometimes it's good to turn it off while writing texts). To enable it again, run trackpadenabler.

That's how I use the ELAN1200 trackpad on my Skylake system. I hope you find my tips useful.
@ben9923 that's working also for me! please add this in post one, this guy is hero!

And... maybe @RehabMan has something to say about that too, idk...

I thought that solution is more complicated than 'sudo kextunload ...' + 'sudo kextload ...'
I've already tried to do so by myself, but I always get an error:
Code:
(kernel) Can't unload kext com.alexandred.VoodooI2C; classes have instances:
(kernel)     Kext com.alexandred.VoodooI2C class VoodooI2CElanTouchpadDevice has 1 instance.
(kernel)     Kext com.alexandred.VoodooI2C class VoodooI2CDevice has 1 instance.
Failed to unload com.alexandred.VoodooI2C - (libkern/kext) kext is in use or retained (cannot unload).
Bens-MacBook-Pro:~ benraz$

Maybe it's only working with the ELAN1200? Not sure why it's possible though... They both use the VoodooI2CDevice class, and I think the ELAN1200 is using the generic HID one instead VoodooI2CElanTouchpadDevice, but I don't think it would make such a difference in that way...
 
Joined
Mar 21, 2015
Messages
299
Motherboard
Gigabyte GA-Z97X-Gaming 3 G1
CPU
i5-4690K OC@4.3GHz
Graphics
RX 480
Mobile Phone
  1. Android
Tell... what?
Some how to get me back in since I need data to update the thread and talk to the devs. When I try to join I could not join. RehabMan I hope this is still in the rules if we aren't trying to help each other on this in pm.
 
Joined
Mar 21, 2015
Messages
299
Motherboard
Gigabyte GA-Z97X-Gaming 3 G1
CPU
i5-4690K OC@4.3GHz
Graphics
RX 480
Mobile Phone
  1. Android
A bit off-topic..., but

Looking for 2 in 1 (flip), HiDPI, 13".

Ones on the list so far:
- HP x360 Envy
- Dell XPS 13
- Lenovo Yoga 910

Haven't looked at what ASUS has to offer...heard they were taking shortcuts with their HiDPI displays...
The recent laptops from ASUS use I2C trackpads so you may have better luck finding one there
 
Joined
May 25, 2017
Messages
39
Motherboard
ASUS Zeenbook U4000UQK
CPU
i7-7500U
Graphics
Intel HD 620
Hello,everyone:
I use voodooic2.kext cause kernel panic.And there is my DSDT code.Could I drive my TouchPad? Here is my DSDT in a file.
Code:
 Scope (_SB.PCI0)
    {
        Device (I2C0)
        {
            Name (LINK, "\\_SB.PCI0.I2C0")
            Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
            {
                Return (GETD (SB10))
            }

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

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

            If (LNotEqual (SMD0, 0x02))
            {
                Name (_HID, "INT3442")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB10))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD0, SB00, SIR0))
                }

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

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

                    Return (Buffer (One)
                    {
                         0x00                                          
                    })
                }
            }
        }
    }
   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                                          
                    })
                }
            }
        }
    }

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

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

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

            If (LNotEqual (SMD2, 0x02))
            {
                Name (_HID, "INT3444")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB12))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD2, SB02, SIR2))
                }

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

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

                    Return (Buffer (One)
                    {
                         0x00                                          
                    })
                }
            }
        }
    }

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

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

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

            If (LNotEqual (SMD3, 0x02))
            {
                Name (_HID, "INT3445")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB13))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD3, SB03, SIR3))
                }

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

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

                    Return (Buffer (One)
                    {
                         0x00                                          
                    })
                }
            }
        }
    }

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

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

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

            If (LNotEqual (SMD4, 0x02))
            {
                Name (_HID, "INT3446")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB14))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD4, SB04, SIR4))
                }

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

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

                    Return (Buffer (One)
                    {
                         0x00                                          
                    })
                }
            }
        }
    }

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

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

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

            If (LNotEqual (SMD5, 0x02))
            {
                Name (_HID, "INT3447")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB15))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD5, SB05, SIR5))
                }

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

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

                    Return (Buffer (One)
                    {
                         0x00                                          
                    })
                }
            }
        }
    }
 

Attachments

  • DSDT.aml
    172.2 KB · Views: 49
Joined
Apr 21, 2016
Messages
1,351
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
  1. iOS
Hello,everyone:
I use voodooic2.kext cause kernel panic.And there is my DSDT code.Could I drive my TouchPad? Here is my DSDT in a file.
Code:
 Scope (_SB.PCI0)
    {
        Device (I2C0)
        {
            Name (LINK, "\\_SB.PCI0.I2C0")
            Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
            {
                Return (GETD (SB10))
            }

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

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

            If (LNotEqual (SMD0, 0x02))
            {
                Name (_HID, "INT3442")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB10))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD0, SB00, SIR0))
                }

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

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

                    Return (Buffer (One)
                    {
                         0x00                                         
                    })
                }
            }
        }
    }
   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                                         
                    })
                }
            }
        }
    }

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

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

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

            If (LNotEqual (SMD2, 0x02))
            {
                Name (_HID, "INT3444")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB12))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD2, SB02, SIR2))
                }

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

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

                    Return (Buffer (One)
                    {
                         0x00                                         
                    })
                }
            }
        }
    }

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

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

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

            If (LNotEqual (SMD3, 0x02))
            {
                Name (_HID, "INT3445")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB13))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD3, SB03, SIR3))
                }

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

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

                    Return (Buffer (One)
                    {
                         0x00                                         
                    })
                }
            }
        }
    }

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

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

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

            If (LNotEqual (SMD4, 0x02))
            {
                Name (_HID, "INT3446")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB14))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD4, SB04, SIR4))
                }

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

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

                    Return (Buffer (One)
                    {
                         0x00                                         
                    })
                }
            }
        }
    }

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

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

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

            If (LNotEqual (SMD5, 0x02))
            {
                Name (_HID, "INT3447")  // _HID: Hardware ID
                Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
                {
                    Return (LHRV (SB15))
                }

                Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                {
                    Return (LCRS (SMD5, SB05, SIR5))
                }

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

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

                    Return (Buffer (One)
                    {
                         0x00                                         
                    })
                }
            }
        }
    }

Please attach a copy of ioreg.

If you are using some 'hotpatch' renames, etc. make sure to attach your config.plist as well. Together with any SSDT you added.

A guess - You should remove AppleIntelLpssI2C.kext and AppleIntelLpssI2CController.kext from S/L/E.
Don't remove them yet, it may not be necessary.
 
Joined
Jan 15, 2016
Messages
63
Motherboard
Acer Aspire 7 A717-72G
CPU
i7-8750H
Graphics
UHD 630/GTX1060
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Hi,

i cant get VoodooI2C working and don't know anymore what i can do.
Patched my DSDT for I2C thousand different ways but non method is working for me.

Maybe someone can find a solution. Attached my own patched DSDT and SSDT's with untouched I2C and ioreg with deleted AppleIntelLpssI2CController.kext and AppleIntelLpssI2C.kext and installed VoodooI2C.kext otherwise VoodooI2C is not loading.
 

Attachments

  • patched.zip
    72.6 KB · Views: 82
  • MacBook Pro 13,1 - Acer Swift3.ioreg
    7.2 MB · Views: 131
Joined
Apr 21, 2016
Messages
1,351
Motherboard
ASUS X556UA-Clover
CPU
i5-6200U
Graphics
HD 520,1366x768
Mobile Phone
  1. iOS
Hi,

i cant get VoodooI2C working and don't know anymore what i can do.
Patched my DSDT for I2C thousand different ways but non method is working for me.

Maybe someone can find a solution. Attached my own patched DSDT and SSDT's with untouched I2C and ioreg with deleted AppleIntelLpssI2CController.kext and AppleIntelLpssI2C.kext and installed VoodooI2C.kext otherwise VoodooI2C is not loading.
Which device are you trying to activate?
Trackpad? Touchscreen?
Which model? (You may check in the Windows Device Manager)

If it's a touchscreen, I think it's the ELAN0501, which isn't supported by VoodooI2C.
 
Top