Files
kernel-tenderloin-3.0/include/linux
Abhijeet Dharmapurikar 40491ce8d0 power: pm8921-charger: implement ir compensation
The charger hardware has a +/-30mv error for vdd_max settings. This
means that when vdd_max is set to 4200mV the actual voltage on vph_pwr
line could range from 4170mV to 4230mV. This further means that when
constant current to constant voltage transition happens, the battery
may not be charged up to 4200mV - leading to an premature end of charge.

Fix this by implementing periodic IR compensation. On a device measure the
resistance from the vbat terminal to the ground by shorting the +ve and
-ve of the battery terminals (without a battery), this will be referred to
as rconn in the description. In the code it is rconn_mohm to reflect the
units.

The voltage at battery terminal will be
Vbat(terminal) = Vbat(xoadc) + Ibat * rconn
where Ibat is the current flowing out of (or into if -ve) of the battery.

Vbat(xoadc) and Ibat can be obtained by using the override mode of the
bms. So Vbat(terminal) can be deduced and compensated by increasing
vdd_max. This also helps in increasing constant current mode thereby
decreasing constant voltage mode and decreasing the overall charging time.

The value of rconn will be specific to a PCB layout, it is
passed in from platform_data.

Change-Id: If8df93333ca6b0bad35505895a4fc5577562fadd
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
2012-03-14 10:41:08 -07:00
..
2011-10-03 09:57:10 -07:00
2011-06-14 09:09:33 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-06-27 16:06:19 -07:00
2011-10-20 19:02:06 -07:00
2011-06-09 15:05:48 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-09-21 13:47:49 -07:00
2011-06-27 16:06:19 -07:00
2011-10-03 09:57:10 -07:00
2012-03-09 09:49:47 -08:00
2011-10-03 09:57:10 -07:00
2012-02-24 11:15:02 -08:00
2011-08-19 11:41:00 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2012-01-12 14:08:13 -07:00
2012-01-18 11:01:40 -08:00
2012-02-06 13:06:25 -08:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 16:14:26 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2012-02-24 11:15:02 -08:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 11:40:08 -07:00
2011-10-27 15:01:19 -07:00
2011-10-03 09:57:10 -07:00
2012-02-14 14:50:38 -07:00
2011-06-27 18:00:12 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-06-15 20:03:59 -07:00
2011-10-03 16:17:16 -07:00
2011-12-13 10:14:33 +02:00
2011-10-03 11:39:49 -07:00
2011-10-03 11:39:49 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00
2011-10-03 09:57:10 -07:00