mirror of
https://github.com/AskDavis/Getting-Started-With-ACPI.git
synced 2026-01-01 05:05:57 -08:00
Fixes based off issue#1
This commit is contained in:
@@ -5,6 +5,4 @@ So what this SSDT does is create a PNLF device for macOS to play with, specifica
|
||||
|
||||
No configuration required for most, just drop the prebuilt file into your EFI: [SSDT-PNLF](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-PNLF.aml)
|
||||
|
||||
Note: there are some cases where the iGPU is called `IGPU` in the DSDT, you can double check by searching for both `PCI0.GFX0` and `PCI0.IGPU`. Whichever shows up is your device
|
||||
|
||||
|
||||
Note: there are some rare cases where the iGPU is called `GPU0` or `VID`in the DSDT, you can double check by searching for `PCI0.GFX0`, `PCI0.VID` and `PCI0.GPU0`. Whichever shows up is your device
|
||||
|
||||
@@ -37,7 +37,7 @@ As you can see from the table below, we'll be renaming our EC listed in the DSDT
|
||||
| :--- | :--- | :--- |
|
||||
| Enabled | String | YES |
|
||||
| Count | Number | 0 |
|
||||
| Limit | Nuber | 0 |
|
||||
| Limit | Number | 0 |
|
||||
| Find | Data | xxxxxxxx |
|
||||
| Replace | Data | xxxxxxxx |
|
||||
|
||||
|
||||
@@ -1,5 +1,54 @@
|
||||
# Fixing Trackpads
|
||||
|
||||
This SSDT is used to create a stub for VoodooI2C to connect to.
|
||||
This SSDT is used to force enable our GPIO for VoodooI2C to connect onto.
|
||||
|
||||
No configuration required, just drop the prebuilt file into your EFI: [SSDT-GPIO](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-GPIO.aml)
|
||||
With most modern laptop DSDTs, there's a variable called `GPEN` or `GPHD` which are used for setting the status of the GPIO device. For us, we want to enable the device.
|
||||
|
||||
## Finding our GPIO
|
||||
|
||||
So first things we need to do is find out what variable is used to enable our GPIO device, lets open up our decompiled SSDT and search for `Device (GPIO)`. Should give you a desult similar to this:
|
||||
|
||||

|
||||
|
||||
|
||||
What we care about from this is the `_STA` method:
|
||||
|
||||
```
|
||||
Method (_STA, 0, NotSerialized)
|
||||
{
|
||||
If ((GPHD == One))
|
||||
{
|
||||
Return (0x03)
|
||||
}
|
||||
|
||||
Return (0x0F)
|
||||
}
|
||||
```
|
||||
What we want is for this to always return `0x0F` when booting macOS, so we want to make an SSDT that will return `GPHD == Zero` in macOS.
|
||||
|
||||
**NOTE that you may have the other way around where GPHD needs to be set as `One` to return `0x0F`**. And your device name may also be different, don't throw random SSDTs in thinking it'll work
|
||||
|
||||
Once you found the variable and what it should be set to, grab a copy of [SSDT-GPI0.dsl](https://github.com/khronokernel/Getting-Started-With-ACPI/blob/master/extra-files/SSDT-GPI0.dsl) and make the required edits. Then clean up with compiling it
|
||||
|
||||
|
||||
## More examples:
|
||||
|
||||

|
||||
|
||||
With this example, we can see that we need both `SBRG` and `GPEN` to return `One`. If only one is present, it'll create some issues so in our SSDT we'll want to have both of them return `One`:
|
||||
```
|
||||
DefinitionBlock("", "SSDT", 2, "ACDT", "GPI0", 0)
|
||||
{
|
||||
External(GPEN, FieldUnitObj)
|
||||
External(SBRG, FieldUnitObj)
|
||||
|
||||
Scope (\)
|
||||
{
|
||||
If (_OSI ("Darwin"))
|
||||
{
|
||||
GPEN = One
|
||||
SBRG = One
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user