[Gta04-owner] [PATCH 2/2] drivers:power:twl4030-charger: don't check if battery is present

H. Nikolaus Schaller hns at goldelico.com
Fri Oct 30 07:14:25 CET 2015

Am 29.10.2015 um 20:50 schrieb Nishanth Menon <nm at ti.com>:

> On 10/29/2015 12:01 PM, H. Nikolaus Schaller wrote:
>> We can't assume that the battery is present after probing (it can
>> usually be removed while device is operated through external AC
>> or USB power). So it makes no sense to check for it during probe.
> Do you mean hot plug battery?


> you sure twl4030 is capable of dealing
> with that :) ?

I am not sure about the twl4030 but with the tps65950 used in the GTA04,
it worked always in the past years with the old drivers (before 4.3-rc1 because
we have not tested the new ones well enough).

> we ran into all kinds of issues with LDP3430 trying to
> make that logic work, finally came to the conclusion that the TWL4030
> as it stands on LDP cannot just do that.

One issue is of course that AC or USB must provide enough current to
operate the board stand-alone. I.e. charging with high enough max_current
must be enabled.

A typical scenario I was using is to enable e.g. 800 mA max_current for
USB, connect the device to some laptop or USB wall charger and then
replace the battery.

This works with full and empty replacement batteries. Well, it should not
be too empty so that the inrush-current is not too much for the USB supply.

What we can't do is to boot from power-off without battery. In that case
the BCI isn't enabled for high enough current to operate the OMAP. But
as soon as the BCI enables enough current, it worked.

My main observation is that you can't make sure by software that the
user is not trying to hot-swap the battery. I.e. it can still happen after
probe time. This is why I think this check doesn't solve a problem.

So if there are problems with battery removed, we must find a solution
in the driver to handle that situation. And not only check once at boot time.

NIkolaus Schaller

>> Signed-off-by: H. Nikolaus Schaller <hns at goldelico.com>
>> ---
>> drivers/power/twl4030_charger.c | 7 -------
>> 1 file changed, 7 deletions(-)
>> diff --git a/drivers/power/twl4030_charger.c b/drivers/power/twl4030_charger.c
>> index 859991f..e232453 100644
>> --- a/drivers/power/twl4030_charger.c
>> +++ b/drivers/power/twl4030_charger.c
>> @@ -1008,13 +1008,6 @@ static int twl4030_bci_probe(struct platform_device *pdev)
>> 	bci->irq_chg = platform_get_irq(pdev, 0);
>> 	bci->irq_bci = platform_get_irq(pdev, 1);
>> -	/* Only proceed further *IF* battery is physically present */
>> -	ret = twl4030_is_battery_present(bci);
>> -	if  (ret) {
>> -		dev_crit(&pdev->dev, "Battery was not detected:%d\n", ret);
>> -		return ret;
>> -	}
>> -
>> 	platform_set_drvdata(pdev, bci);
>> 	bci->ac = devm_power_supply_register(&pdev->dev, &twl4030_bci_ac_desc,
> -- 
> Regards,
> Nishanth Menon

More information about the Gta04-owner mailing list