Contribute
Register

VoodooI2C Help and Support

Status
Not open for further replies.
Last edited:
Is the touchscreen USB?
Yes. On the System Report page the Synaptics touchscreen is under the USB (Apple USB2.0 HUB) tab (although I am not quite sure about it, but it should be). Also I have a Synaptics Touch pad which seems to be a PS2 device.
The IOReg and other info are in the archive file.
 

Attachments

  • Archive.zip
    5.4 MB · Views: 250
Maybe should use _OSI->XOSI and SSDT-XOSI.aml and emulate "Windows 2012" in implementation of XOSI method.
Yes. This would be a better way to achieve “that”.
 
I'm having problems with the GPIO Pinning method.

According to Windows, my ACPI ID is ETPD under I2C1

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")
            }

But, in the guide, the code to look for:
Code:
    Name (SBFG, ResourceTemplate ()
    {
        GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
            "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
            )
            {   // Pin list
                0x0000
            }
    })

is actually in Device TPL1 under 12C1, not Device ETPD

Code:
    Scope (_SB.PCI0.I2C1)
    {
        Device (TPL1)
        {
            Name (HID2, Zero)
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x004C, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, _Y28, Exclusive,
                    )
            })
            Name (SBFG, ResourceTemplate ()
            {
                GpioInt (Level, ActiveLow, Exclusive, PullDefault, 0x0000,
                    "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0000
                    }
            })
            Name (SBFI, ResourceTemplate ()
            {
                Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, _Y29)
                {
                    0x00000000,
                }
            })

What happens in that case?

Also, in step 2c of the GPIO Pinning guide,

The code to look for:

Code:
           Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                If (LLess (OSYS, 0x07DC))
                {
                    Return (SBFI)
                }

                If (LEqual (SDM1, Zero))
                {
                    Return (ConcatenateResTemplate (SBFB, SBFG))
                }

                Return (ConcatenateResTemplate (SBFB, SBFI))
            }

is again under Device TPL1 not ETPD.

And I happen to have both entries "Return (ConcatenateResTemplate (SBFB, SBFG))" and "Return (ConcatenateResTemplate (SBFB, SBFI))". The guide does not cover if both entries are present. Well-pinned, or not?

My hexadecimal APIC pin number is 0x5f
 

Attachments

  • DSDT.dsl
    1.2 MB · Views: 277
Hi,

Running an ELAN 1300 touchpad on an ASUS ux430ua and cant get it to work
uujG7UB.png

Not completely sure if this is how it's supposed to look, im using the VoodooI2CHID satellite, not sure what I need to do, I attached my dsdt below

I have
ASUS N55Sl/vivobook battery
Shutdown fix v2
I2C controllers
gpio controller enable
windows 10 patch
ASUS Battery Patch
ASUS Fn brightness keys patch
Zenbook lidsleep and screenbacklight patch

I can get it working with an older driver, but it acts as a mouse not a trackpad and doubleclicks if i hold it for more than a second, no fancy features either only left and right click

Any help appriciated thank you
 

Attachments

  • DSDT.dsl
    1.3 MB · Views: 236
  • ioregistry.ioreg
    10.7 MB · Views: 295
Last edited:
I'm having problems with the GPIO Pinning method.

According to Windows, my ACPI ID is ETPD under I2C1

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")
            }

But, in the guide, the code to look for:
Code:
    Name (SBFG, ResourceTemplate ()
    {
        GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
            "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
            )
            {   // Pin list
                0x0000
            }
    })

is actually in Device TPL1 under 12C1, not Device ETPD

Code:
    Scope (_SB.PCI0.I2C1)
    {
        Device (TPL1)
        {
            Name (HID2, Zero)
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x004C, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, _Y28, Exclusive,
                    )
            })
            Name (SBFG, ResourceTemplate ()
            {
                GpioInt (Level, ActiveLow, Exclusive, PullDefault, 0x0000,
                    "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0000
                    }
            })
            Name (SBFI, ResourceTemplate ()
            {
                Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, _Y29)
                {
                    0x00000000,
                }
            })

What happens in that case?

Also, in step 2c of the GPIO Pinning guide,

The code to look for:

Code:
           Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                If (LLess (OSYS, 0x07DC))
                {
                    Return (SBFI)
                }

                If (LEqual (SDM1, Zero))
                {
                    Return (ConcatenateResTemplate (SBFB, SBFG))
                }

                Return (ConcatenateResTemplate (SBFB, SBFI))
            }

is again under Device TPL1 not ETPD.

And I happen to have both entries "Return (ConcatenateResTemplate (SBFB, SBFG))" and "Return (ConcatenateResTemplate (SBFB, SBFI))". The guide does not cover if both entries are present. Well-pinned, or not?

My hexadecimal APIC pin number is 0x5f
From the guide:
If you cannot find such a Name then we shall say that your device is unpinned.
...
If your device is unpinned, proceed to Step 2b.
The code in TPL1 only applies to TPL1, not to ETPD.

The guide says that if you find a line that looks like this:
Return (ConcatenateResTemplate (SBFB, SBFG))
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)
 
Hi,

Running an ELAN 1300 touchpad on an ASUS ux430ua and cant get it to work
uujG7UB.png

Not completely sure if this is how it's supposed to look, im using the VoodooI2CHID satellite, not sure what I need to do, I attached my dsdt below

I have
ASUS N55Sl/vivobook battery
Shutdown fix v2
I2C controllers
gpio controller enable
windows 10 patch
ASUS Battery Patch
ASUS Fn brightness keys patch
Zenbook lidsleep and screenbacklight patch

I can get it working with an older driver, but it acts as a mouse not a trackpad and doubleclicks if i hold it for more than a second, no fancy features either only left and right click

Any help appriciated thank you
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)
 
Status
Not open for further replies.
Back
Top