[Samsung Infuse 4G] Entropy512:
The graph is correct. It is just IRRELEVANT. Our charge controller limits battery voltage to 4.2 volts, so the curves on that graph for higher battery voltages mean *nothing*. There is nothing in your post that covers the effects of changing the current limit of lithium-ion batteries when in the initial constant-current phase of charging.

The graph is severely outdated, it dates from the times when charge control intelligence was in the external charger, not in an internal charge controller IC within the phone (as is the case for ALL phones that charge from a USB port.)

Specifically, when charging a Li-Ion battery, this is the charge algorithm:

1) Initially, start with current-limited charging. Typical safe current is around 1C, unless you've got a LiFePO4 battery, those can take 10-20C charge/discharge. We don't have one of those. ;) In GalaxyS phones, Samsung seems to have it at around 0.4C (600mA into a 1500 mAh battery). In our phones, they seem to have it at around 0.34C (600 mA into a 1750 mAh battery) - e.g. when they increased the battery size they did not increase charge current. I'm running a kernel that increases this limit, I believe to around 710 mA. (If the scaling factor for CurrentWidget is indeed 1.83, which is what it is if the kernel comments about the original value being 600 mA are correct.)

2) Once battery voltage reaches 4.2 volts (4.1 for some specific chemistries), keep battery voltage constant. Bumping this up can severely reduce battery lifetime in terms of charging cycle count, as covered in your graphs. I will NEVER touch this in any kernel mod, except possibly to lower it.

3) Once the charging current drops below 0.1-0.05C, stop. (Li-Ions don't like "trickle charging", it causes metallic lithium to plate out.) - Samsung did bump up this termination charge current when they increased the battery size. Personally, if I ever touch this value I'll increase it (terminate charge early to be nice to the battery.)

Apple goes beyond the above in some devices by changing the current limit based on state of charge - deeply discharged batteries get charged with a higher current than ones at higher state of charge but not yet at the 4.2V limit. See http://www.engadget.com/2011/02/20/apple-patent-application-points-to-denser-batteries-improved-ch/ - This could probably be implemented in our kernels with a bit of work. There is code in our kernels for "stepcharging", but it seems to simply ramp up charge current when something is plugged in to avoid a sudden load change transient, it isn't what is described in the link.

Apparently some crappy chargers/charge controllers would try to make the CV phase go faster by pushing in 4.25 volts or more - this is what your graph covers. THE MAX8998 IS NOT SUCH A CHARGE CONTROLLER. As I stated before, correct or not, the graph is irrelevant.

If you are referring to my arguments regarding 3G vs EDGE power consumption - I spent a year and a half working at a company that built UMTS power amplifiers. (Yes, I am an electrical engineer with above average RF/comm theory experience.) You? Your claims directly conflict with power amplifier physics and with general experience of the mobile industry ever since the introduction of UMTS.

Yeah, there's definitely a scale factor that's off in terms of reporting battery charge current. There's NO way it is 1100 mA. FYI, my kernel tweak makes it report 1300 mA. BTW, 1100 mA in CurrentWidget is the limit set by the phone's internal charge controller IC. You will NEVER see higher current than this without a kernel that tells the IC to increase its limit. I am 90%+ certain that when CurrentWidget reports 1100, the correct current is 600.

As I stated above - I'm about 80% certain that's just a case of crappy USB power supplies with low current limits (in at least one case, significantly lower than advertised). It's EXTREMELY bad design if the charge controller current limit is inclusive of phone use.