I am very interested in porting this to HP Probook 6560b and SONY VPCSE laptops. Using your kext, the battery is detected less than 40% of time during boot up. I don't know what's causing the battery not to be detected the rest of the time. All I changed was the 16 to 8 bit DSDT mod. Any suggestion would be greatly appreciated. I will post the original battery codes if you have time to quickly glance at them for me.
Ok, the first issue I see is likely related to the kext not seeing your battery (on the HP). Your laptop has two batteries and if you search this thread, you'll see that the kext only supports one battery so you have to modify the DSDT to enable only one of them. Various timing/contention issues during boot likely allows one of the batteries to be seen some of the time (your 40%). Explicitly defining it should fix it.
The second problem I see is that for Device BAT0, the _STA method (Device STAtus) is actually calling Windows Management Instrumentation (WMI) to get the battery's status! In fact, there are a whole bunch of methods that are just calling WMI underneath... Usually a driver under Windows will call WMI to get information, etc. but this is the first time I've seen other devices in the DSDT calling methods in the WMID device. So basically, when this kext on OSX calls the ACPI _STA method on BAT0 (which if finds via the PNP ID in the Info.plist and the Device), ACPI is then calling WMI! Who knows if WMI is breaking the ACPI rules (I bet you it does!) I would suggest you try to determine what it is doing and either replace/rip it out of all the BAT methods and then see how it goes.
As for the Sony, again, two batteries some one needs to be disabled and the EC registers split to 8-bit access.