Contribute
Register

Asus Zenbook Pro UX501VW (Skylake i7-6700HQ, GTX 960M)

Joined
Jul 6, 2014
Messages
10
Motherboard
ASUS ZENBOOK Pro UX501VW
CPU
i7-6700HQ /HM87
Graphics
GTX 960M
Mac
Mac Pro
Mobile Phone
Android
please indicate how it is done
Do you know if/how it would work in Mojave? I am having some issue with the touchpad (doesn't stop moving until I tap) and I am using the VoodooI2C and VoodooI2CHID kexts. The touchpad is detected in System Preferences/Trackpad.
Any help would be greatly appreciated.
 
Joined
Jul 6, 2014
Messages
10
Motherboard
ASUS ZENBOOK Pro UX501VW
CPU
i7-6700HQ /HM87
Graphics
GTX 960M
Mac
Mac Pro
Mobile Phone
Android
VoodooI2C (PCI) works!! Thank you jhax01

Turns out I have 2 I2C controllers:

Code:
 [ System devices / Intel(R) Serial IO I2C Host Controller - A160 ]

    Device Properties:
      Driver Description         Intel(R) Serial IO I2C Host Controller - A160
      Hardware ID                 PCI\VEN_8086&DEV_A160&SUBSYS_10801043&REV_31
      Location Information     PCI bus 0, device 21, function 0
      PCI Device                   Intel Sunrise Point PCH - LPSS: I2C Controller 0


  [ System devices / Intel(R) Serial IO I2C Host Controller - A161 ]

    Device Properties:
      Driver Description         Intel(R) Serial IO I2C Host Controller - A161
      Hardware ID                 PCI\VEN_8086&DEV_A161&SUBSYS_10801043&REV_31
      Location Information      PCI bus 0, device 21, function 1
      PCI Device                    Intel Sunrise Point PCH - LPSS: I2C Controller 1

device a160 on I2C0 and device a161 on I2C1

The dsdt gave me the clues which one is the correct one:

Code:
  Scope (_SB.PCI0.I2C1)
    {
        Device (ETPD)
        {
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x004C, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, _Y34, Exclusive,
                    )
            })
            Name (SBFI, ResourceTemplate ()
            {
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000005F,
                }
            })
            CreateWordField (SBFB, \_SB.PCI0.I2C1.ETPD._Y34._ADR, BADR)  // _ADR: Address
            Name (_ADR, One)  // _ADR: Address
            Method (_HID, 0, NotSerialized)  // _HID: Hardware ID
            {
                If (ELAN)
                {
                    Store (0x15, BADR)
                    Return ("ELAN1000")
                }

                If (FOLT)
                {
                    Store (0x15, BADR)
                    Return ("FTE1001")
                }

                Return ("ELAN1000")
            }

            Name (_CID, "PNP0C50")  // _CID: Compatible ID
            Name (_UID, One)  // _UID: Unique ID
            Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
            Method (_S3W, 0, NotSerialized)  // _S3W: S3 Device Wake State
            {
                If (LEqual (S0ID, Zero))
                {
                    Return (0x03)
                }
                Else
                {
                    Return (Zero)
                }
            }

            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */))
                {
                    If (LEqual (Arg2, Zero))
                    {
                        If (LEqual (Arg1, One))
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                     
                            })
                        }
                        Else
                        {
                            Return (Buffer (One)
                            {
                                 0x00                                     
                            })
                        }
                    }

                    If (LEqual (Arg2, One))
                    {
                        Return (One)
                    }
                }
                Else
                {
                    Return (Buffer (One)
                    {
                         0x00                                     
                    })
                }
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (LEqual (TPIF, Zero))
                {
                    Return (Zero)
                }

                If (And (DSYN, One))
                {
                    Return (Zero)
                }

                Return (0x0F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Return (ConcatenateResTemplate (SBFB, SBFI))
            }
        }
    }
The above code section made it obvious that my ELAN1000 trackpad is Device (ETPD) under I2C1. So I have to use device a161

As suggested, I went into VoodooI2CHIDDevice::initHIDDevice and increased the timeout from 10 to 100ms. Furthermore, in Device (ETPD), I changed Method XDSM to Method _DSM

I now have I2C trackpad fonctionality.


I know this post is old but would you be able to help me with an issue I am having in Mojave with the same laptop and the same touchpad?
 
Joined
May 31, 2016
Messages
7
Motherboard
ASRock H110M-STX
CPU
i5 7400
Graphics
intel
Mac
iMac, MacBook Pro
Mobile Phone
Android
...
Update:
Got it to work full resolution (4K) using Whatevergreen.
Also got the sound working using AppleALC.
Now on my way to make the trackpad working. Any idea?

Thanks
Hello, can you share your EFI folder? I have this same laptop and want to Hackintosh it.
Thanks!
 
Top