Contribute
Register

[GUIDE]HP Spectre x360 13-ap0037TU(Late 2018)

Status
Not open for further replies.
Finding the right pin is actually very simple. What are the values under iointerruptspecifiers for tpd0 and tpl0?
TPD0 was 6b.So I looked here and confirmed that it was GPP_D11_IRQ. Next, I looked here and confirmed that it was 79. Since 79 is dex, it is 0x4F when converted to hex. So I used 0x4F for GPIO Pin.Similarly, since TPL0 was 23, the GPIO Pin is 0xB.

Thank you so much for your advice!
I changed the load order of kext in config.plist and it worked fine. The touch screen is also working very well.

Now, the only things that don't work are Bluetooth, fingerprint authentication, and webcam.
 
Oh okay. On newer chipsets (Cannon Point and newer), there is a mismatch between the GPIO pin and the hardware pin number. Since tpd0 is 6b it will actually resolve back to 6b I think consulting the list found here https://github.com/coolstar/VoodooG...CannonLake-LP/VoodooGPIOCannonLakeLP.hpp#L366. And since tpl0 is 23, which is <2b it shouldn't need pinning. Anyway it's good to hear it works for you :)

Interestingly bluetooth works for me. :/ Oh and btw I was wrong with the itlwm.kext thing. You can provide passwords via heliport GUI because it was recently integrated with heliport and you can find new builds from here, but the build I provided also works with the gui. https://github.com/1hbb/OpenIntelWireless-Factory/releases
 
Last edited:
Interestingly bluetooth works for me. :/ Oh and btw I was wrong with the itlwm.kext thing. You can provide passwords via heliport GUI because it was recently integrated with heliport and you can find new builds from here, but the build I provided also works with the gui. https://github.com/1hbb/OpenIntelWireless-Factory/releases
I haven't used HeliPort because I need to configure it again when Laptop restart. What about you?
 
Heliport saves networks if you tick remember this network. Remembers across reboots but it seems a bit more unstable so I still provide passwords via the plist.

Also the DSDT patch for I2C should be like this (no need for pinning for tpl0 and the correct pin for tpd0 should be 6b not 4f because of the mismatch between hardware pin and gpio pin if you have 6b in your IOInterruptSpecifiers 6b will resolve back to 6b after the calculations). Altho I don't know much more about gpio pinning than I read from the guides so I don't know why 4f works.

into_all method code_regex If\s+\([\\]?_OSI\s+\(\"Windows\s2017\"\)\) replace_matched begin If((_OSI ("Darwin") || _OSI ("Windows 2017"))) end;
into_all device label TPD0 code_regex 0x0000\n replaceall_matched begin 0x006B end;
into method label _CRS parent_label TPD0 remove_entry;
into device label TPD0 insert
begin
Method (_CRS, 0, NotSerialized)\n
{\n
Return (ConcatenateResTemplate (SBFB, SBFG))\n
}
end;
into method label _CRS parent_label TPL0 remove_entry;
into device label TPL0 insert
begin
Method (_CRS, 0, NotSerialized)\n
{\n
Return (ConcatenateResTemplate (SBFB, SBFG))\n
}
end;
 
Heliport saves networks if you tick remember this network. Remembers across reboots but it seems a bit more unstable so I still provide passwords via the plist.

Also the DSDT patch for I2C should be like this (no need for pinning for tpl0 and the correct pin for tpd0 should be 6b not 4f because of the mismatch between hardware pin and gpio pin if you have 6b in your IOInterruptSpecifiers 6b will resolve back to 6b after the calculations). Altho I don't know much more about gpio pinning than I read from the guides so I don't know why 4f works.

into_all method code_regex If\s+\([\\]?_OSI\s+\(\"Windows\s2017\"\)\) replace_matched begin If((_OSI ("Darwin") || _OSI ("Windows 2017"))) end;
into_all device label TPD0 code_regex 0x0000\n replaceall_matched begin 0x006B end;
into method label _CRS parent_label TPD0 remove_entry;
into device label TPD0 insert
begin
Method (_CRS, 0, NotSerialized)\n
{\n
Return (ConcatenateResTemplate (SBFB, SBFG))\n
}
end;
into method label _CRS parent_label TPL0 remove_entry;
into device label TPL0 insert
begin
Method (_CRS, 0, NotSerialized)\n
{\n
Return (ConcatenateResTemplate (SBFB, SBFG))\n
}
end;
sorry. I forgot to rewrite the patch file.
I uploaded a newly rewritten version.
I tried it and it worked the same on both 4F and 6B.
I'm not sure, but I'm happy because it worked.
 
I have an ap0023dx, from the USA. Internal screen is not working, it shows the boot verbose then stalls, then I have to connect an HDMI monitor which works just fine and the internal screen then shows lines but no proper image and is not detected on the display settings in macOS, I can even disconnect the external monitor and then reconnect it and it keeps working, touchpad not working at all, laptop won't shut down and instead stays at a blank screen after it apparently logs out. iGPU shows fine, even the bluetooth and wifi work, which was not expected at all. I-m tired.. any suggestions? thanks!
 

Attachments

  • Screen Shot 2020-07-24 at 3.40.56.png
    Screen Shot 2020-07-24 at 3.40.56.png
    25.2 KB · Views: 77
  • EFI.zip
    74.9 MB · Views: 209
is it possible to move the brightness key patch to an ssdt? ideally we wouldn't have to load dsdt.aml. Then we could use If (_OSI ("Darwin")) in ssdt-s to only apply patches when booting macOS and dual boot windows or from the same drive.
 
is it possible to move the brightness key patch to an ssdt? ideally we wouldn't have to load dsdt.aml. Then we could use If (_OSI ("Darwin")) in ssdt-s to only apply patches when booting macOS and dual boot windows or from the same drive.
It may be possible to write a patch for the brightness key in SSDT, but the patch that enables the PS2 keyboard must be written in DSDT, so DSDT is eventually required. PS2 keyboard patch does not work with SSDT.
 
Also do you have all four of your speakers working? I tried all the different layout for ALC285 (this is what we should have I think) and they only use the upper speakers. Should be possible to get them all working, I will dump the codec from linux maybe I can get some help.
Anyway I'm quite happy with my hack. I'm learning app development (react native) and it's way more comfortable to work in macOS.
 
Last edited:
Also do you have all four of your speakers working? I tried all the different layout for ALC285 (this is what we should have I think) and they only use the upper speakers. Should be possible to get them all working, I will dump the codec from linux maybe I can get some help.
Anyway I'm quite happy with my hack. I'm learning app development (react native) and it's way more comfortable to work in macOS.
When I checked it, I heard that the sound was only emitted from the upper speaker. The left and right speakers don't seem to be used. I didn't notice until now.
 
Status
Not open for further replies.
Back
Top