Contribute
Register

VoodooI2C Help and Support

Status
Not open for further replies.
Hi. Thanks for looking. Please find attached all the files according to my current OpenCore settings. If you think using Clover would help or be easier, I can easily switch.
I'd stick with OpenCore :)

Rename your SSDT-AWAC to something more general, like SSDT-INI and add this line inside (After setting STAS, within the OS conditional code):
C-like:
USTP = One

This should expose I2C bus configuration values VoodooI2C can use.

Once this works, you should have your trackpad working in polling mode. I believe setting TPDM to Zero in the same way should enable GPIO interrupts.
Check if you really need SSDT-GPIO - Your GPIO controller might be enabled natively anyway. See if VoodooGPIO is loaded under GPI0 in IOReg without that SSDT ;)
 
I'd stick with OpenCore :)

Rename your SSDT-AWAC to something more general, like SSDT-INI and add this line inside (After setting STAS, within the OS conditional code):
C-like:
USTP = One

This should expose I2C bus configuration values VoodooI2C can use.

Once this works, you should have your trackpad working in polling mode. I believe setting TPDM to Zero in the same way should enable GPIO interrupts.
Check if you really need SSDT-GPIO - Your GPIO controller might be enabled natively anyway. See if VoodooGPIO is loaded under GPI0 in IOReg without that SSDT ;)

I'm getting an Object does not exist when trying to add "USTP = One"...
Screen Shot 2020-09-05 at 11.29.30 AM.png

Yes, it appears that VoodooGPIO is loading without the SSDT-GPIO.
Screen Shot 2020-09-05 at 11.30.22 AM.png
 
I'm getting an Object does not exist when trying to add "USTP = One"...
View attachment 487026

Yes, it appears that VoodooGPIO is loading without the SSDT-GPIO.
View attachment 487027
Add an External declaration for USTP just like the one for STAS at the top.

You need to put the assignment to One inside the condition, so it, too, only happens when running macOS:
C-like:
If (...)
{
    STAS = ...
    USTP = ...
}

Remove the GPIO SSDT, then. Less patching the better :)
 
Add an External declaration for USTP just like the one for STAS at the top.

You need to put the assignment to One inside the condition, so it, too, only happens when running macOS:
C-like:
If (...)
{
    STAS = ...
    USTP = ...
}

Remove the GPIO SSDT, then. Less patching the better :)

Yes! That worked. (sorry for noobiness...)
Screen Shot 2020-09-05 at 12.07.27 PM.png

I also tried to set TPDM = Zero...
Screen Shot 2020-09-05 at 12.07.04 PM.png

Unfortunately, trackpad is still only working as a mouse...
Screen Shot 2020-09-05 at 12.10.13 PM.png
 
Cool!

I meant setting TPDM in the same SSDT as STAS and USTP.
Add another External declaration there and set it within the same condition.

After you make this change too, please attach a fresh copy of IOReg so we can work on multitouch.

Done.
Screen Shot 2020-09-05 at 12.29.21 PM.png

Please find attached updated ioreg file and kernel log.
 

Attachments

  • MacBook Pro.ioreg
    5.7 MB · Views: 86
  • I2C Common Errors (Kernel Log).zip
    57.6 KB · Views: 87
Done.
View attachment 487043

Please find attached updated ioreg file and kernel log.
IOReg and kernel log here shows trackpad has stopped working. Is that so?
Seems like an error with that SSDT. Can you attach a full set of troubleshooting files again?
 
IOReg and kernel log here shows trackpad has stopped working. Is that so?
Seems like an error with that SSDT. Can you attach a full set of troubleshooting files again?

No. The trackpad continues to work as a PS/2 mouse just like it has since I installed macOS. It works with VoodooPS2Controller.

Basic pointer control works.
Physical button doesn't work.
Tap-to-click (left click) works.
Double-tap-to-drag works.
 

Attachments

  • EFI.zip
    6.6 MB · Views: 103
  • debug_6069.zip
    610.6 KB · Views: 73
No. The trackpad continues to work as a PS/2 mouse just like it has since I installed macOS. It works with VoodooPS2Controller.

Basic pointer control works.
Physical button doesn't work.
Tap-to-click (left click) works.
Double-tap-to-drag works.
I see.

Seems like your SSDT-AWAC has no effect, because your DSDT already has an (empty) _SB._INI method.
You might want to patch it so it's changed to XINI. Make sure you're only patching that single _INI rather than all _INI methods.

Code in DSDT:
C-like:
    Scope (_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
        }
    }

See "Rename and Replace" here. It shows an example for getting a couple of extra bytes to only hit one occurrence.
 
I see.

Seems like your SSDT-AWAC has no effect, because your DSDT already has an (empty) _SB._INI method.
You might want to patch it so it's changed to XINI. Make sure you're only patching that single _INI rather than all _INI methods.

Code in DSDT:
C-like:
    Scope (_SB)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
        }
    }

See "Rename and Replace" here. It shows an example for getting a couple of extra bytes to only hit one occurrence.

Done. Compiled fine.
Screen Shot 2020-09-05 at 1.37.10 PM.png
Should I also edit SSDT-AWAC.aml to replace _INI to XINI?

Please find attached updated problem files after rebooting with "XINI" patched DSDT.
 

Attachments

  • debug_28731.zip
    1 MB · Views: 72
  • I2C Common Errors (Kernel Log).zip
    88.6 KB · Views: 82
Status
Not open for further replies.
Back
Top