Contribute
Register

VoodooI2C Help and Support

Status
Not open for further replies.
The DSDT you sent me has no GPIO patch. It seems to me like you are patching the wrong device. Make sure you are patching the right ACPI device ID (ETPD). Please send all files in future according to the Troubleshooting page (pictures of ioreg is never sufficient).

I noticed that I am not patching the right ACPI device, thanks.
In step 1 it says:
Code:
If you cannot find it(SBFB), you may find something that looks like this instead:

    Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                {
                    Name (SBFI, ResourceTemplate ()
                    {
                        I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80,
                            AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                            0x00, ResourceConsumer, , Exclusive,
                            )
                        Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
                        {
                            0x0000006D,
                        }
                    })
                    Return (SBFI)
                }
In this case, rename SBFI to SBFB and remove the following from it:

       Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
    {
        0x0000006D,
    }



however in step 2e:
Code:
Finally, make sure that there are no other Return statements in your _CRS method apart from the following at the end:

    Return (ConcatenateResTemplate (SBFB, SBFG))

what should I have in the _CRS method, should it be like the first code or the second one?
if I will just keep Return (ConcatenateResTemplate (SBFB, SBFG)) it wouldn't be a SBFB and it would give me an error, because it can't return the SBFB.
now my _SRC method looks like this:
Code:
    Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
            {
                Name (SBFB, ResourceTemplate ()
                {
                    I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80,
                        AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                        0x00, ResourceConsumer, , Exclusive,
                        )
                })
                Return (SBFB)
            }
and I added the SBFG to the root as it says in the GPIO Pinning guide!
Is that correct?
do I need to delete everything in the SRC method and just keep
Code:
Return (ConcatenateResTemplate (SBFB, SBFG))
thanks!

Original and patched DSDT both attached
ioreg and system log attached in zip
 

Attachments

  • ORIGINALDSDT.aml
    173.1 KB · Views: 300
  • PATCHEDDSDT.aml
    173.2 KB · Views: 211
  • ioreg and systemlog.zip
    2.2 MB · Views: 96
Last edited:
It is quite clear that you aren't reading the instructions. In your quoted text, it clearly says

In this case, rename SBFI to SBFB and remove the following from it...

You have SBFI so rename it to SBFB (or just have `Return (ConcatenateResTemplate (SBFI, SBFG))`, the actual name is irrelevant, that should be clear).

So far, every single question you have asked can be easily answered by reading the instructions. They are there for a reason so make sure you read them very carefully.
 
It is quite clear that you aren't reading the instructions. In your quoted text, it clearly says



You have SBFI so rename it to SBFB (or just have `Return (ConcatenateResTemplate (SBFI, SBFG))`, the actual name is irrelevant, that should be clear).

So far, every single question you have asked can be easily answered by reading the instructions. They are there for a reason so make sure you read them very carefully.

Sir, I think there is misunderstood here,
I tried every single way in the guide and NON of them worked for me, If you saw my patched dsdt u will see that I clearly understood the installation guide as it actually mentioned in the troubleshot page, I attached all the files needed!!!!
 
Sir, I think there is misunderstood here,
I tried every single way in the guide and NON of them worked for me, If you saw my patched dsdt u will see that I clearly understood the installation guide as it actually mentioned in the troubleshot page, I attached all the files needed!!!!
You didn't understand. I even pointed out the mistake you made in my previous post. If you don't even want to read the post I wrote then I can't help you any further.
 
You didn't understand. I even pointed out the mistake you made in my previous post. If you don't even want to read the post I wrote then I can't help you any further.
I tried that, and also didn't work!
please see the pic
 

Attachments

  • Screen Shot 2018-01-26 at 15.21.49.png
    Screen Shot 2018-01-26 at 15.21.49.png
    340.3 KB · Views: 406
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
take a look at my changes for my asus rog i made the same mistake, but make sure you follow the pinning part of the guide
 

Attachments

  • acpi.zip
    96.8 KB · Views: 120
Obviously you need `Return (ConcatenateResTemplate (SBFB, SBFG))` as the guide states.

first of all, thank you so much for your help!! I appreciate it ;)
second, it works now fine, my mistake was that the code was in the src method so I just copied it to the root and kept the return in the src and it worked for me.
thank you so much for answering my questions and helping me again!
I really appreciate it!
U R A LEGEND
thanks
 
first of all, thank you so much for your help!! I appreciate it ;)
second, it works now fine, my mistake was that the code was in the src method so I just copied it to the root and kept the return in the src and it worked for me.
thank you so much for answering my questions and helping me again!
I really appreciate it!
U R A LEGEND
thanks
Can you share me your patched dsdt?
 
Hey, so I have an ELAN2201 touchpad, on my Huawei Matebook X. I've been trying to get it to work for weeks with no luck, even though I see it all loaded in ioreg, no matter what GPIO pin I try, it tells me that pin can't be used for IRQ. I know for a fact that my ACPI pin is 0x6D, and the GPIO pin is 0x55. But, no matter what I try, I just can't get the trackpad to work....

Attached is my ioreg and patched DSDT. Please let me know if there's anything else I need to attach.
 

Attachments

  • Jaden Smith.ioreg
    40.3 MB · Views: 261
  • DSDT-stockk.dsl
    1.1 MB · Views: 238
Last edited:
Status
Not open for further replies.
Back
Top