For longer than I can remember, perhaps 2 years now, I have been using the codeless USB configuration method on both of my hacks per my signature. It was a lot of work, reading and sticking all the bits and pieces together "by hand" to make this all work. Recently I decided to have a closer look at Hackintool and was pleasantly surprised to what it can do and took it for a good spin around it's codeless USB kext generation routines. They work very well but still need a bit polishing up. The USBPorts.kext, which was generated for a SMBIOS 14.2 Haswell build, for this particular system definition running Mojave, includes current configuration settings which are not needed and only duplicate what is already available in the OS. The contents of the attached folder "Codeless USB Haswell-14.2.zip" contains two files. one generated by hand and the other by Hackintool 2.4.1 Comparing the 2 files should reveal that the charge current definitions should not be included.
On the Skylake build with system def. 17.1 it is in order to have the current definitions resident in the codeless
USBPorts.kext. With those settings resident one should, if present, remove the SSDT-USBX.aml kext from Clover/patched as that kext also contains these current definitions, thereby avoiding duplication.
My Skylake board uses one XHC controller for USB-2 as well as USB-3 ports and another separate one for two USB-3.1 (red) ports. When one uses the Hackintool generated USBPorts.kext, devices connected to these (red) ports stop functioning. I avoided this problem, at least that is what I seem to recollect, by also including the controller device-id in my version of the codeless USB kexts, thereby limiting the "goings on" to the desired controller only.
Comparing the contents of the 2 kexts present in the attached Skylake zip folder should make it clearer to what I originally needed to do to get my codeless Skylake kext working reliably.
Hope this will be helpful during the further development of the amazing Swiss knife Hackintool.
Greetings