Contribute
Register

<< Solved >> voodooi2c issues SYNA3602

Status
Not open for further replies.
Joined
Dec 10, 2013
Messages
159
Motherboard
Huawei Matebook D 2017
CPU
i5-7200U
Graphics
HD 620
@BlvckBytes Hi,
few pages early @moh.96 helped me to create a working battery patch for my battery. It is working but there is a delay to acknoledge when the power plug is connected or disconnected. Now i don't mind the delay but i'm not able to configure the trackpad using VoodooI2C and i feel like i should solve this battery issue first because trackpad and battery are related in some way ... Would you be so nice to check my files and try to understand why i have this delay ?

Thanks !!
 
@BlvckBytes Hi,
few pages early @moh.96 helped me to create a working battery patch for my battery. It is working but there is a delay to acknoledge when the power plug is connected or disconnected. Now i don't mind the delay but i'm not able to configure the trackpad using VoodooI2C and i feel like i should solve this battery issue first because trackpad and battery are related in some way ... Would you be so nice to check my files and try to understand why i have this delay ?

Thanks !!
Although battery and trackpad are related but to some extent, your trackpad CAN work without a working battery indicator but trackpad preferences Won’t work without a working battery indicator

Voodooi2c guide is a good place to get your trackpad to work (assuming your trackpad is attached to I2C not to PS/2)
 
I don't think that the delay will mess with your trackpad, tbh. All the trackpad needs is a registered BAT0, AFAIK. What issue do you face with the trackpad?
The trackpad is registered in ioREG. I can see the trackpad preferences in MacOS preferecence but the arrow doesn't move. It seems that my device (SYNA3602) is quite problematic (in VoodooI2C info.plist there is an identity just for this device) but i've tried everything i could think of without luck and i hoped to be a battery issue.

I don't know what else i could try ...
Mattia
 
The trackpad is registered in ioREG. I can see the trackpad preferences in MacOS preferecence but the arrow doesn't move. It seems that my device (SYNA3602) is quite problematic (in VoodooI2C info.plist there is an identity just for this device) but i've tried everything i could think of without luck and i hoped to be a battery issue.

I don't know what else i could try ...
Mattia
Whats the BIOS Device Name for your trackpad ? (Get it from windows device manager just like the the screenshot in the attachment)
 

Attachments

  • 19EA8AAE-172D-4016-95B3-651127183A03.png
    19EA8AAE-172D-4016-95B3-651127183A03.png
    250.1 KB · Views: 242
i2c1.tpd1 .. it's not my first laptop hackintosh .. i took note of that before formatting. i've tried to patch my dsdt according to the voodooi2c guide for having interrupt working but every pin i have tried didn't work and also if you check my DSDT you will find is different from the "usual" one in voodooi2c examples so i don't know how to enable polling mode ...
 
i2c1.tpd1 .. it's not my first laptop hackintosh .. i took note of that before formatting. i've tried to patch my dsdt according to the voodooi2c guide for having interrupt working but every pin i have tried didn't work and also if you check my DSDT you will find is different from the "usual" one in voodooi2c examples so i don't know how to enable polling mode ...
TPD1 doesn’t exist in your DSDT, I found TPL1 in I2C1 and it seems familiar to me so I can try to patch it, I need to confirm it’s TPL1 first
 
Thanks again! Indeed my battery was stuck at 100%, now it is working great with your latest files. Just need the Darwin If-Statement and its pretty much perfect. On another note: How did you open that view in maciasl? No idea what the "-l" option is or how to run it?!

@tmbt: did you try geni2c? It has a function to automatically generate patches.
Happy to help :)

you can use “-l”option in iasl to generate a mixed listing of your ACPI file and bytecode

for example
iasl -l dsdt.aml
This will generate dsdt.dsl that just like in the pic
 
TPD1 doesn’t exist in your DSDT, I found TPL1 in I2C1 and it seems familiar to me so I can try to patch it, I need to confirm it’s TPL1 first
Hi mate. First of all I want to apologize because yesterday evening I was in a rush and my answer was quite rude.

That said if you're willing to help I think you should know the basic facts because I've spent last 3 days trying to figure out why the touchpad doesn't work.
Here is my situation :
1 - VoodooI2C and HID are loaded according to kextstat
2 - ioREG shows VoodooI2C is attached to the touchpad
3 - Under macOS preferences I can modify trackpad preferences

but the arrow doesn't move :(

Here is my TPD1 CRS method from my DSDT (maybe you checked the DSDT from someone else) :
Code:
Scope (_SB.PCI0.I2C1)
    {
        Device (TPD1)
        {
            Name (_ADR, One)  // _ADR: Address
            Name (_HID, "SYNA3602")  // _HID: Hardware ID
            Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */)  // _CID: Compatible ID
            Name (_UID, One)  // _UID: Unique ID
            Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (RBUF, ResourceTemplate ()
                {
                    I2cSerialBusV2 (0x002C, ControllerInitiated, 0x000186A0,
                        AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                        0x00, ResourceConsumer, , Exclusive,
                        )
                    GpioInt (Level, ActiveLow, Exclusive, PullDefault, 0x0000,
                        "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                })
                CreateWordField (RBUF, 0x38, INTH)
                INTH = GNUM (0x0202000E)
                Return (RBUF) /* \_SB_.PCI0.I2C1.TPD1._CRS.RBUF */
            }
As you can see is not a "standard" code where I could change the code to

Code:
Return (ConcatenateResTemplate (SBFB, SBFG))

What is give me some hope is the fact that in ioREG gpioPIN is 0x3e which is wrong because anything more than 0x2f should be changed in something else.
But I don't know how because even with a static DSDT changing the pin list from 0x0000 to something else simply doesn't work.
Sometime in kernel log I can see a VoodooI2C error complaining about 0x3e pin configuration but I don't know why it doesn't appear at every boot ...

Finally if you do a google search as I've done many times in the last days you will find out that anyone with a SYNA3602 was able to make it work with VoodooI2C even if it should be supported ..
So if you could help me out you will became my new personal hero :)
Do you have any ideas ? Maybe even a hint in a direction could be very useful... I refuse to think SYNA3602 is not supported by VoodooI2C because in the info.plist there is a specific identity for this trackpad so it should work in a way or another .. I've also wrote in the VoodooI2C and even if the support is quite slow the support team didn't tell me my trackpad is not supported. They also closed my GitHub issue as a configuration problem so I think I can manage to fix this ...with the help of someone better than me in ACPI coding ..


Thanks
Mattia
 

Attachments

  • Screenshot 2020-09-22 at 11.01.27.png
    Screenshot 2020-09-22 at 11.01.27.png
    711.1 KB · Views: 105
@tmbt

Hello, no need to apologize, I knew you were in a hurry and I also was going to sleep

anyways it's as you said that I checked someone else's DSDT not yours lol

so yeah it's not the normal voodooi2c patch unfortunately, tbh I don't think I came a cross something like that but kinda got some crazy idea (probably not gonna work but give it a try)

so I edited the _CRS method to kinda match the standard SBFB,SBFG

Code:
            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (SBFB, ResourceTemplate ()
                {
                    I2cSerialBusV2 (0x002C, ControllerInitiated, 0x000186A0,
                        AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                        0x00, ResourceConsumer, , Exclusive,
                        )

                })
              
                Name (SBFG, ResourceTemplate ()
                {
                     GpioInt (Level, ActiveLow, Exclusive, PullDefault, 0x0000,
                        "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                })


                CreateWordField (SBFB, 0x38, INTH)
                INTH = GNUM (0x0202000E)
              
                Return (ConcatenateResTemplate (SBFB, SBFG))
            }

If you feel that this is not a stupid idea then give it a try :)

Edit: uploaded TPD1.zip
copy SSDT-I2C to your acpi and copy the renaming patches to your config
Note that this SSDT has Windows 10 Patch, and GPIO Controller Enable patch so if you got those patches disable them!
 

Attachments

  • Screen Shot 2020-09-22 at 12.30.28 PM.png
    Screen Shot 2020-09-22 at 12.30.28 PM.png
    878.3 KB · Views: 97
  • TPD1.zip
    2.2 KB · Views: 131
Last edited:
Hi mate. First of all I want to apologize because yesterday evening I was in a rush and my answer was quite rude.

That said if you're willing to help I think you should know the basic facts because I've spent last 3 days trying to figure out why the touchpad doesn't work.
Here is my situation :
1 - VoodooI2C and HID are loaded according to kextstat
2 - ioREG shows VoodooI2C is attached to the touchpad
3 - Under macOS preferences I can modify trackpad preferences

but the arrow doesn't move :(

Here is my TPD1 CRS method from my DSDT (maybe you checked the DSDT from someone else) :
Code:
Scope (_SB.PCI0.I2C1)
    {
        Device (TPD1)
        {
            Name (_ADR, One)  // _ADR: Address
            Name (_HID, "SYNA3602")  // _HID: Hardware ID
            Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */)  // _CID: Compatible ID
            Name (_UID, One)  // _UID: Unique ID
            Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (RBUF, ResourceTemplate ()
                {
                    I2cSerialBusV2 (0x002C, ControllerInitiated, 0x000186A0,
                        AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                        0x00, ResourceConsumer, , Exclusive,
                        )
                    GpioInt (Level, ActiveLow, Exclusive, PullDefault, 0x0000,
                        "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                })
                CreateWordField (RBUF, 0x38, INTH)
                INTH = GNUM (0x0202000E)
                Return (RBUF) /* \_SB_.PCI0.I2C1.TPD1._CRS.RBUF */
            }
As you can see is not a "standard" code where I could change the code to

Code:
Return (ConcatenateResTemplate (SBFB, SBFG))

What is give me some hope is the fact that in ioREG gpioPIN is 0x3e which is wrong because anything more than 0x2f should be changed in something else.
But I don't know how because even with a static DSDT changing the pin list from 0x0000 to something else simply doesn't work.
Sometime in kernel log I can see a VoodooI2C error complaining about 0x3e pin configuration but I don't know why it doesn't appear at every boot ...

Finally if you do a google search as I've done many times in the last days you will find out that anyone with a SYNA3602 was able to make it work with VoodooI2C even if it should be supported ..
So if you could help me out you will became my new personal hero :)
Do you have any ideas ? Maybe even a hint in a direction could be very useful... I refuse to think SYNA3602 is not supported by VoodooI2C because in the info.plist there is a specific identity for this trackpad so it should work in a way or another .. I've also wrote in the VoodooI2C and even if the support is quite slow the support team didn't tell me my trackpad is not supported. They also closed my GitHub issue as a configuration problem so I think I can manage to fix this ...with the help of someone better than me in ACPI coding ..


Thanks
Mattia
@tmbt

Hello, no need to apologize, I knew you were in a hurry and I also was going to sleep

anyways it's as you said that I checked someone else's DSDT not yours lol

so yeah it's not the normal voodooi2c patch unfortunately, tbh I don't think I came a cross something like that but kinda got some crazy idea (probably not gonna work but give it a try)

so I edited the _CRS method to kinda match the standard SBFB,SBFG

Code:
            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Name (SBFB, ResourceTemplate ()
                {
                    I2cSerialBusV2 (0x002C, ControllerInitiated, 0x000186A0,
                        AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                        0x00, ResourceConsumer, , Exclusive,
                        )

                })
             
                Name (SBFG, ResourceTemplate ()
                {
                     GpioInt (Level, ActiveLow, Exclusive, PullDefault, 0x0000,
                        "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                        )
                        {   // Pin list
                            0x0000
                        }
                })


                CreateWordField (SBFB, 0x38, INTH)
                INTH = GNUM (0x0202000E)
             
                Return (ConcatenateResTemplate (SBFB, SBFG))
            }

If you feel that this is not a stupid idea then give it a try :)

Edit: uploaded TPD1.zip
copy SSDT-I2C to your acpi and copy the renaming patches to your config
Note that this SSDT has Windows 10 Patch, and GPIO Controller Enable patch so if you got those patches disable them!
i have given you your own thread
 
Status
Not open for further replies.
Back
Top