aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/power
diff options
context:
space:
mode:
authorGraeme Gregory <gg@slimlogic.co.uk>2012-03-30 13:38:18 +0100
committerDmytro Kedrovskyi <x0169235@ti.com>2012-06-12 15:35:35 +0300
commit55483b494abdecda1738e7471be47dc5debfea5c (patch)
tree5c9567bf67124fcd7f9a2eb52ae20aff2f0e1417 /drivers/power
parentd362c2bfdeee4db833592e7886f6e20ef7325fa1 (diff)
downloadkernel_samsung_espresso10-55483b494abdecda1738e7471be47dc5debfea5c.zip
kernel_samsung_espresso10-55483b494abdecda1738e7471be47dc5debfea5c.tar.gz
kernel_samsung_espresso10-55483b494abdecda1738e7471be47dc5debfea5c.tar.bz2
twl6030_bci_battery remove hw handling from sw irq
Now that hardware charging mode has seperate IRQs remove the hardware mode handling from the software mode IRQs as it is not required here anymore. Change-Id: Ib2cd7ae43157014b9111a5bdd5da36e1caeb6602 Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/twl6030_bci_battery.c129
1 files changed, 62 insertions, 67 deletions
diff --git a/drivers/power/twl6030_bci_battery.c b/drivers/power/twl6030_bci_battery.c
index f8c0f58..63838f7 100644
--- a/drivers/power/twl6030_bci_battery.c
+++ b/drivers/power/twl6030_bci_battery.c
@@ -856,89 +856,84 @@ static irqreturn_t twl6030charger_ctrl_interrupt(int irq, void *_di)
blocking_notifier_call_chain(&notifier_list, events, NULL);
}
- if (!di->use_hw_charger) {
- if (stat_reset & VBUS_DET) {
- /* On a USB detach, UNMASK VBUS OVP if masked*/
- ret = twl_i2c_read_u8(TWL6030_MODULE_CHARGER, &temp,
+ if (stat_reset & VBUS_DET) {
+ /* On a USB detach, UNMASK VBUS OVP if masked*/
+ ret = twl_i2c_read_u8(TWL6030_MODULE_CHARGER, &temp,
CHARGERUSB_INT_MASK);
- if (ret)
- goto err;
+ if (ret)
+ goto err;
- if (temp & MASK_MCHARGERUSB_FAULT) {
- ret = twl_i2c_write_u8(TWL6030_MODULE_CHARGER,
+ if (temp & MASK_MCHARGERUSB_FAULT) {
+ ret = twl_i2c_write_u8(TWL6030_MODULE_CHARGER,
(temp & ~MASK_MCHARGERUSB_FAULT),
- CHARGERUSB_INT_MASK);
- if (ret)
- goto err;
- }
- di->usb_online = 0;
- dev_dbg(di->dev, "usb removed\n");
- twl6030_stop_usb_charger(di);
- if (present_charge_state & VAC_DET)
- twl6030_start_ac_charger(di);
-
+ CHARGERUSB_INT_MASK);
+ if (ret)
+ goto err;
}
+ di->usb_online = 0;
+ dev_dbg(di->dev, "usb removed\n");
+ twl6030_stop_usb_charger(di);
+ if (present_charge_state & VAC_DET)
+ twl6030_start_ac_charger(di);
- if (stat_set & VBUS_DET) {
- /* In HOST mode (ID GROUND) when a device is connected,
- * Mask VBUS OVP interrupt and do no enable usb
- * charging
- */
- if (hw_state & STS_USB_ID) {
- ret = twl_i2c_read_u8(TWL6030_MODULE_CHARGER,
- &temp,
- CHARGERUSB_INT_MASK);
- if (ret)
- goto err;
+ }
+
+ if (stat_set & VBUS_DET) {
+ /* In HOST mode (ID GROUND) when a device is connected,
+ * Mask VBUS OVP interrupt and do no enable usb
+ * charging
+ */
+ if (hw_state & STS_USB_ID) {
+ ret = twl_i2c_read_u8(TWL6030_MODULE_CHARGER,
+ &temp,
+ CHARGERUSB_INT_MASK);
+ if (ret)
+ goto err;
- if (!(temp & MASK_MCHARGERUSB_FAULT)) {
- ret = twl_i2c_write_u8(
+ if (!(temp & MASK_MCHARGERUSB_FAULT)) {
+ ret = twl_i2c_write_u8(
TWL6030_MODULE_CHARGER,
(temp | MASK_MCHARGERUSB_FAULT),
CHARGERUSB_INT_MASK);
- if (ret)
- goto err;
- }
- } else {
- di->usb_online = POWER_SUPPLY_TYPE_USB;
- if ((present_charge_state & VAC_DET) &&
+ if (ret)
+ goto err;
+ }
+ } else {
+ di->usb_online = POWER_SUPPLY_TYPE_USB;
+ if ((present_charge_state & VAC_DET) &&
(di->vac_priority == 2))
- dev_dbg(di->dev, "USB charger detected"
+ dev_dbg(di->dev, "USB charger detected"
", continue with VAC\n");
- else {
- di->charger_source =
- POWER_SUPPLY_TYPE_USB;
- di->charge_status =
+ else {
+ di->charger_source =
+ POWER_SUPPLY_TYPE_USB;
+ di->charge_status =
POWER_SUPPLY_STATUS_CHARGING;
- }
- dev_dbg(di->dev, "vbus detect\n");
}
+ dev_dbg(di->dev, "vbus detect\n");
}
+ }
- if (stat_reset & VAC_DET) {
- di->ac_online = 0;
- dev_dbg(di->dev, "vac removed\n");
- twl6030_stop_ac_charger(di);
- if (present_charge_state & VBUS_DET) {
- di->charger_source = POWER_SUPPLY_TYPE_USB;
- di->charge_status =
- POWER_SUPPLY_STATUS_CHARGING;
- twl6030_start_usb_charger(di);
- }
+ if (stat_reset & VAC_DET) {
+ di->ac_online = 0;
+ dev_dbg(di->dev, "vac removed\n");
+ twl6030_stop_ac_charger(di);
+ if (present_charge_state & VBUS_DET) {
+ di->charger_source = POWER_SUPPLY_TYPE_USB;
+ di->charge_status =
+ POWER_SUPPLY_STATUS_CHARGING;
+ twl6030_start_usb_charger(di);
}
- if (stat_set & VAC_DET) {
- di->ac_online = POWER_SUPPLY_TYPE_MAINS;
- if ((present_charge_state & VBUS_DET) &&
- (di->vac_priority == 3))
- dev_dbg(di->dev,
+ }
+ if (stat_set & VAC_DET) {
+ di->ac_online = POWER_SUPPLY_TYPE_MAINS;
+ if ((present_charge_state & VBUS_DET) &&
+ (di->vac_priority == 3))
+ dev_dbg(di->dev,
"AC charger detected"
- ", continue with VBUS\n");
- else
- twl6030_start_ac_charger(di);
- }
- } else {
- if (!(charge_state & (VBUS_DET | VAC_DET)))
- di->charge_status = POWER_SUPPLY_STATUS_DISCHARGING;
+ ", continue with VBUS\n");
+ else
+ twl6030_start_ac_charger(di);
}
if (stat_set & CONTROLLER_STAT1_FAULT_WDG) {
@@ -1029,7 +1024,7 @@ static irqreturn_t twl6030charger_fault_interrupt(int irq, void *_di)
if (usb_charge_sts1 & CHARGERUSB_STATUS_INT1_VBUS_OVP)
dev_dbg(di->dev, "USB CHARGER VBUS over voltage\n");
- if ((usb_charge_sts2 & CHARGE_DONE) && !di->use_hw_charger) {
+ if (usb_charge_sts2 & CHARGE_DONE) {
di->charge_status = POWER_SUPPLY_STATUS_FULL;
dev_dbg(di->dev, "USB charge done\n");
}