Subject: [PATCH] power: twl4030_charger: clear IRQs after handling them

From: [email-masked] (Nishanth Menon)
Date: Fri, 9 May 2014 07:39:05 -0500

On 05/08/2014 08:03 PM, Tony Lindgren wrote:
> * Nishanth Menon <[email-masked]> [140506 17:25]:
>> Subject: [PATCH] power: twl4030_charger: detect battery presence prior to
>>  enabling charger
>>
>> TWL4030's Battery Charger seems to be designed for non-hotpluggable
>> batteries.
>>
>> If battery is not present in the system, BATSTS is always set with the
>> expectation that software will take actions to move to a required safe
>> state (could be power down or disable various charger paths).
>>
>> It does not seem possible even by manipulating the edge detection
>> of the event (using BCIEDR2 register) to have a consistent hotplug
>> handling. This seems to be the result of BATSTS interrupt generated
>> when the thermistor of the battery pack is disconnected from the
>> dedicated ADIN1 pin. Clearing the status just results in the status
>> being regenerated by the monitoring ADC(MADC) and disabling the
>> edges of event just makes hotplug no longer function. The only
>> other option is to disable the detection of the MADC by disabling
>> BCIMFEN4::BATSTSMCHGEN (battery presence detector) - but then, we can
>> never again detect battery reconnection.
>>
>> So, detect battery presence based on precharge(which is hardware
>> automatic state) or default main charger configuration at the time of
>> probe and enable charger logic only if battery was present.
>>
>> Reported-by: Russell King <[email-masked]>
>> Signed-off-by: Nishanth Menon <[email-masked]>
> 
> Gets rid of the errors for me if CONFIG_CHARGER_TWL4030=y.
> Looks like we don't have that enabled by default in
> omap2plus_defconfig which explain why it's taken so long to
> notice this one:
> 
> Tested-by: Tony Lindgren <[email-masked]>
> 
Thanks. I will post this out to the list as formal series.

-- 
Regards,
Nishanth Menon