msm: power: Revert LGE power patches
Revert the following customer changes in order to clean up this
branch.
This reverts commit 33ddf5a9eaa031c00b00846458f2ba534e6807b8.
This reverts commit f17df2402b795faf2c03de6d8a5b12378674f3be.
This reverts commit 0a488464c03806e1f775c35d7b2c83650eaab4ef.
This reverts commit 23d2a7cd02b081e1cf2578c02b7ecd3a65319d4e.
This reverts commit 90e32fa7cb701d922825e40b82b566e4af843ea2.
This reverts commit 7346d0fbd3c338d55330766e0f1867f19b364fed.
This reverts commit eb59bf66db9f2ca6e79552f4f72aa56f8c6abd27.
This reverts commit 9c56de000bb2390191fa2ddaea738e6d3e8f5d4f.
This reverts commit 7a72ca62c3f64c7b914edd8d9dbb75933b3c845e.
This reverts commit 76048dac5085eca4459ee5ea5dd4876a1f518cfa.
This reverts commit bfafe7ec7cdeef5b44b32f9aa6ee03beba2020e0.
This reverts commit e346f7a7b8ead1bbb106f4eb1e766c49407bffde.
This reverts commit 1265899c012a463cb0521ed73f2abe057692a9db
This reverts commit 1ff608a341b87defa586ca4a24d0bd89abfdfbb3
This reverts commit 5f030effc8c1af159ad13e77d4c169f037d6c9e4.
This reverts commit 19c87ddde66fd6aad61a60e466a75af235fca7f9.
This reverts commit 905eac978c30c96c5d12a81c1f6968d8c57a645f.
This reverts commit 1bd7c8643cdd8fdc7cf649ec465cc454315a6753.
This reverts commit 69f1730e0d249bad3b4f0fc0f94d917c16c3df19.
This reverts commit 2073afb7ee8b3f80f1f3184bd7ac99ead581adee
This reverts commit 8126554cf049d13f4dd2d815d86ea289efdc6f3a.
This reverts commit 45ccbb53cfc227fd3811e71b0bd813432c96ee9e
This reverts commit 325995993eb806285a35381e803ed5432fe5a93a.
This reverts commit 84cf5a3959bcf412c4b48f8a29b8255c18602d1b.
This reverts commit 839d5a50c761787ded6b8558fa37696be81196fe.
This reverts commit d4b1fb57463d04aeca5ae9bfd2181faa016f97c2.
This reverts commit 2ab04b0deb912a5a52899a50ced73e36974a6a00.
This reverts commit 3a3de0ee621625c8767e0d3c7106c52fcf834499.
This reverts commit f278add027723a90b11c9a97f6d1b09c1aaec795.
This reverts commit 1a749b700752efcc8d832f7b83554df2771dce53.
Change-Id: I21863586360b6bc57dd6d631c34725bea963cffa
Signed-off-by: Xiaozhe Shi <xiaozhes@codeaurora.org>
diff --git a/drivers/power/pm8921-charger.c b/drivers/power/pm8921-charger.c
index 48955dd..3afc8de 100644
--- a/drivers/power/pm8921-charger.c
+++ b/drivers/power/pm8921-charger.c
@@ -274,7 +274,6 @@
struct delayed_work update_heartbeat_work;
struct delayed_work eoc_work;
struct delayed_work unplug_check_work;
- struct delayed_work unplug_usbcheck_work;
struct delayed_work vin_collapse_check_work;
struct wake_lock eoc_wake_lock;
enum pm8921_chg_cold_thr cold_thr;
@@ -284,11 +283,7 @@
bool host_mode;
bool has_dc_supply;
u8 active_path;
- int ext_batt_health;
- int ext_batt_temp_monitor;
int recent_reported_soc;
- unsigned int ext_warm_i_limit;
- int eoc_check_soc;
};
/* user space parameter to limit usb current */
@@ -306,10 +301,6 @@
static struct pm8xxx_adc_arb_btm_param btm_config;
-#ifdef CONFIG_WIRELESS_CHARGER
-static int wireless_charging;
-#endif
-
static int pm_chg_masked_write(struct pm8921_chg_chip *chip, u16 addr,
u8 mask, u8 val)
{
@@ -548,7 +539,6 @@
ret |= __pm_chg_vddmax_set(chip, current_mv);
}
}
-
ret |= __pm_chg_vddmax_set(chip, voltage);
return ret;
}
@@ -1296,36 +1286,16 @@
enum power_supply_property psp,
const union power_supply_propval *val)
{
- struct pm8921_chg_chip *chip = the_chip;
-
/* Check if called before init */
- if (!chip)
+ if (!the_chip)
return -EINVAL;
switch (psp) {
- case POWER_SUPPLY_PROP_CURRENT_MAX:
- if (val->intval &&
- val->intval <= (USB_WALL_THRESHOLD_MA*1000)) {
- usb_target_ma = 0;
- } else {
- usb_target_ma = val->intval/1000;
- if (!delayed_work_pending(&chip->unplug_check_work)) {
- schedule_delayed_work(
- &chip->unplug_check_work,
- round_jiffies_relative(msecs_to_jiffies
- (UNPLUG_CHECK_WAIT_PERIOD_MS)));
- }
- }
- pr_info("usb_target_ma %d\n", usb_target_ma);
- break;
- case POWER_SUPPLY_PROP_PRESENT:
- case POWER_SUPPLY_PROP_ONLINE:
- break;
case POWER_SUPPLY_PROP_SCOPE:
if (val->intval == POWER_SUPPLY_SCOPE_SYSTEM)
- return switch_usb_to_host_mode(chip);
+ return switch_usb_to_host_mode(the_chip);
if (val->intval == POWER_SUPPLY_SCOPE_DEVICE)
- return switch_usb_to_charge_mode(chip);
+ return switch_usb_to_charge_mode(the_chip);
else
return -EINVAL;
break;
@@ -1368,12 +1338,10 @@
return 0;
/* USB charging */
- if (usb_target_ma == 0)
- val->intval = the_chip->usb_present;
- else if (usb_target_ma <= USB_WALL_THRESHOLD_MA)
+ if (usb_target_ma < USB_WALL_THRESHOLD_MA)
val->intval = is_usb_chg_plugged_in(the_chip);
else
- return 0;
+ return 0;
break;
case POWER_SUPPLY_PROP_SCOPE:
@@ -1490,19 +1458,15 @@
{
int temp;
- if (chip->ext_batt_temp_monitor) {
- return chip->ext_batt_health;
- } else {
- temp = pm_chg_get_rt_status(chip, BATTTEMP_HOT_IRQ);
- if (temp)
- return POWER_SUPPLY_HEALTH_OVERHEAT;
+ temp = pm_chg_get_rt_status(chip, BATTTEMP_HOT_IRQ);
+ if (temp)
+ return POWER_SUPPLY_HEALTH_OVERHEAT;
- temp = pm_chg_get_rt_status(chip, BATTTEMP_COLD_IRQ);
- if (temp)
- return POWER_SUPPLY_HEALTH_COLD;
+ temp = pm_chg_get_rt_status(chip, BATTTEMP_COLD_IRQ);
+ if (temp)
+ return POWER_SUPPLY_HEALTH_COLD;
- return POWER_SUPPLY_HEALTH_GOOD;
- }
+ return POWER_SUPPLY_HEALTH_GOOD;
}
static int get_prop_charge_type(struct pm8921_chg_chip *chip)
@@ -1550,25 +1514,10 @@
if (!pm_chg_get_rt_status(chip, BATT_INSERTED_IRQ)
|| !pm_chg_get_rt_status(chip, BAT_TEMP_OK_IRQ)
|| pm_chg_get_rt_status(chip, CHGHOT_IRQ)
- || (!chip->eoc_check_soc &&
- pm_chg_get_rt_status(chip, VBATDET_LOW_IRQ))
- || (chip->ext_batt_temp_monitor &&
- (chip->ext_batt_health == POWER_SUPPLY_HEALTH_OVERHEAT)))
+ || pm_chg_get_rt_status(chip, VBATDET_LOW_IRQ))
batt_state = POWER_SUPPLY_STATUS_NOT_CHARGING;
}
-
- if (chip->eoc_check_soc) {
- if (get_prop_batt_capacity(chip) == 100) {
- if (batt_state == POWER_SUPPLY_STATUS_CHARGING)
- batt_state = POWER_SUPPLY_STATUS_FULL;
- } else {
- if (batt_state == POWER_SUPPLY_STATUS_FULL)
- batt_state = POWER_SUPPLY_STATUS_CHARGING;
- }
- }
-
- pr_debug("batt_state = %d fsm_state = %d \n",batt_state, fsm_state);
return batt_state;
}
@@ -1602,12 +1551,6 @@
switch (psp) {
case POWER_SUPPLY_PROP_STATUS:
-#ifdef CONFIG_WIRELESS_CHARGER
- if(wireless_charging) {
- val->intval = 1; //POWER_SUPPLY_STATUS_CHARGING
- break;
- }
-#endif
val->intval = get_prop_batt_status(chip);
break;
case POWER_SUPPLY_PROP_CHARGE_TYPE:
@@ -1794,32 +1737,6 @@
}
EXPORT_SYMBOL(pm8921_charger_enable);
-int pm8921_force_start_charging(void)
-{
- int rc;
-
- if (!the_chip) {
- pr_err("called before init\n");
- return -EINVAL;
- }
-
- if (the_chip->eoc_check_soc) {
- rc = pm_chg_vbatdet_set(the_chip,
- the_chip->max_voltage_mv);
- if (rc) {
- pr_err("failed to set vbatdet\n");
- return rc;
- }
- }
-
- rc = pm_chg_auto_enable(the_chip, 1);
- if (rc)
- pr_err("Failed rc=%d\n", rc);
-
- return rc;
-}
-EXPORT_SYMBOL(pm8921_force_start_charging);
-
int pm8921_is_usb_chg_plugged_in(void)
{
if (!the_chip) {
@@ -1897,11 +1814,6 @@
pr_err("called before init\n");
return -EINVAL;
}
-
- if (thermal_mitigation != 0 && the_chip->thermal_mitigation)
- ma = min((unsigned int)ma,
- the_chip->thermal_mitigation[thermal_mitigation]);
-
return pm_chg_ibatmax_set(the_chip, ma);
}
EXPORT_SYMBOL(pm8921_set_max_battery_charge_current);
@@ -2049,82 +1961,13 @@
if (type < POWER_SUPPLY_TYPE_USB)
return -EINVAL;
+ the_chip->usb_psy.type = type;
power_supply_changed(&the_chip->usb_psy);
power_supply_changed(&the_chip->dc_psy);
return 0;
}
EXPORT_SYMBOL_GPL(pm8921_set_usb_power_supply_type);
-#ifdef CONFIG_WIRELESS_CHARGER
-int set_wireless_power_supply_control(int value)
-{
- if (!the_chip) {
- pr_err("called before init\n");
- return -EINVAL;
- }
-
- wireless_charging = value;
- power_supply_changed(&the_chip->batt_psy);
-
- return 0;
-}
-EXPORT_SYMBOL(set_wireless_power_supply_control);
-#endif
-
-int pm8921_set_ext_battery_health(int health, int i_limit)
-{
- if (!the_chip) {
- pr_err("called before init\n");
- return -EINVAL;
- }
-
- the_chip->ext_batt_health = health;
- the_chip->ext_warm_i_limit = i_limit;
-
- pr_debug("health = %d i_decrease = %d\n", the_chip->ext_batt_health,
- the_chip->ext_warm_i_limit);
- return 0;
-}
-EXPORT_SYMBOL(pm8921_set_ext_battery_health);
-
-int pm8921_get_batt_state(void)
-{
- int batt_state = POWER_SUPPLY_STATUS_DISCHARGING;
- int fsm_state;
- int i;
-
- if (!the_chip) {
- pr_err("called before init\n");
- return -EINVAL;
- }
-
- fsm_state = pm_chg_get_fsm_state(the_chip);
-
- for (i = 0; i < ARRAY_SIZE(map); i++)
- if (map[i].fsm_state == fsm_state)
- batt_state = map[i].batt_state;
-
- pr_debug("batt_state = %d fsm_state = %d \n",batt_state, fsm_state);
- return batt_state;
-}
-EXPORT_SYMBOL(pm8921_get_batt_state);
-
-int pm8921_get_batt_health(void)
-{
- int batt_health;
-
- if (!the_chip) {
- pr_err("called before init\n");
- return -EINVAL;
- }
-
- batt_health = get_prop_batt_health(the_chip);
-
- pr_debug("batt health = %d\n", batt_health);
- return batt_health;
-}
-EXPORT_SYMBOL(pm8921_get_batt_health);
-
int pm8921_batt_temperature(void)
{
if (!the_chip) {
@@ -2585,15 +2428,11 @@
high_transition = pm_chg_get_rt_status(chip, VBATDET_LOW_IRQ);
if (high_transition) {
- if (!chip->eoc_check_soc
- || pm_chg_get_fsm_state(data) == FSM_STATE_ON_BAT_3) {
- /* enable auto charging */
- pm_chg_auto_enable(chip, !charging_disabled);
- pr_info("batt fell below resume voltage %s\n",
- charging_disabled ? "" : "charger enabled");
- }
+ /* enable auto charging */
+ pm_chg_auto_enable(chip, !charging_disabled);
+ pr_info("batt fell below resume voltage %s\n",
+ charging_disabled ? "" : "charger enabled");
}
-
pr_debug("fsm_state=%d\n", pm_chg_get_fsm_state(data));
power_supply_changed(&chip->batt_psy);
@@ -2731,43 +2570,29 @@
rc = pm8xxx_readb(chip->dev->parent, PBL_ACCESS1, &active_path);
if (rc) {
- pr_warn("Failed to read PBL_ACCESS1 rc=%d\n", rc);
- //return;
+ pr_err("Failed to read PBL_ACCESS1 rc=%d\n", rc);
+ return;
}
chip->active_path = active_path;
- if (the_chip->usb_present) {
- active_path = USB_ACTIVE_BIT;
- active_chg_plugged_in = the_chip->usb_present;
- } else {
- active_chg_plugged_in = is_active_chg_plugged_in(chip,
- active_path);
- }
+
+ active_chg_plugged_in = is_active_chg_plugged_in(chip, active_path);
pr_debug("active_path = 0x%x, active_chg_plugged_in = %d\n",
active_path, active_chg_plugged_in);
if (active_path & USB_ACTIVE_BIT) {
pr_debug("USB charger active\n");
pm_chg_iusbmax_get(chip, &usb_ma);
- if (!usb_target_ma) {
- if (usb_ma > 500) {
- usb_ma = 500;
- __pm8921_charger_vbus_draw(usb_ma);
- pr_info("usb_now=%d, usb_target = %d\n",
- usb_ma, 500);
- goto check_again_later;
- } else if (usb_ma == 500) {
- pr_info("Stopping Unplug Check Worker"
- " USB == 500mA\n");
- disable_input_voltage_regulation(chip);
- return;
- }
+ if (usb_ma == 500 && !usb_target_ma) {
+ pr_debug("Stopping Unplug Check Worker USB == 500mA\n");
+ disable_input_voltage_regulation(chip);
+ return;
+ }
- if (usb_ma <= 100) {
- pr_debug(
- "Unenumerated or suspended usb_ma = %d"
- " skip\n", usb_ma);
- goto check_again_later;
- }
+ if (usb_ma <= 100) {
+ pr_debug(
+ "Unenumerated or suspended usb_ma = %d skip\n",
+ usb_ma);
+ goto check_again_later;
}
} else if (active_path & DC_ACTIVE_BIT) {
pr_debug("DC charger active\n");
@@ -2779,7 +2604,7 @@
/* No charger active */
if (!(is_usb_chg_plugged_in(chip)
&& !(is_dc_chg_plugged_in(chip)))) {
- pr_info(
+ pr_debug(
"Stop: chg removed reg_loop = %d, fsm = %d ibat = %d\n",
pm_chg_get_regulation_loop(chip),
pm_chg_get_fsm_state(chip),
@@ -2798,7 +2623,7 @@
usb_target_ma = usb_ma;
/* end AICL here */
__pm8921_charger_vbus_draw(usb_ma);
- pr_info("VIN: usb_now=%d, usb_target = %d\n",
+ pr_debug("usb_now=%d, usb_target = %d\n",
usb_ma, usb_target_ma);
}
}
@@ -2832,13 +2657,8 @@
}
}
}
- if(the_chip->usb_present) {
- active_path = USB_ACTIVE_BIT;
- active_chg_plugged_in =the_chip->usb_present;
- } else {
- active_chg_plugged_in = is_active_chg_plugged_in(chip,
- active_path);
- }
+
+ active_chg_plugged_in = is_active_chg_plugged_in(chip, active_path);
pr_debug("active_path = 0x%x, active_chg = %d\n",
active_path, active_chg_plugged_in);
chg_gone = pm_chg_get_rt_status(chip, CHG_GONE_IRQ);
@@ -2854,13 +2674,12 @@
if (usb_ma < usb_target_ma) {
increase_usb_ma_value(&usb_ma);
__pm8921_charger_vbus_draw(usb_ma);
- pr_info("usb_now=%d, usb_target = %d\n",
+ pr_debug("usb_now=%d, usb_target = %d\n",
usb_ma, usb_target_ma);
} else {
usb_target_ma = usb_ma;
}
}
-
check_again_later:
/* schedule to check again later */
schedule_delayed_work(&chip->unplug_check_work,
@@ -2883,15 +2702,6 @@
{
struct pm8921_chg_chip *chip = data;
int high_transition;
- int rc;
-
- if (chip->eoc_check_soc) {
- rc = pm_chg_vbatdet_set(chip,
- chip->max_voltage_mv
- - chip->resume_voltage_delta);
- if (rc)
- pr_err("failed to set vbatdet rc=%d\n", rc);
- }
high_transition = pm_chg_get_rt_status(chip, FASTCHG_IRQ);
if (high_transition && !delayed_work_pending(&chip->eoc_work)) {
@@ -2900,7 +2710,6 @@
round_jiffies_relative(msecs_to_jiffies
(EOC_CHECK_PERIOD_MS)));
}
-
power_supply_changed(&chip->batt_psy);
bms_notify_check(chip);
return IRQ_HANDLED;
@@ -2959,28 +2768,6 @@
return IRQ_HANDLED;
}
-static void unplug_usbcheck_work(struct work_struct *work)
-{
- int usb_vin;
- struct pm8xxx_adc_chan_result vchg;
- struct delayed_work *dwork = to_delayed_work(work);
- struct pm8921_chg_chip *chip = container_of(dwork,
- struct pm8921_chg_chip, unplug_usbcheck_work);
-
- pm8xxx_adc_read(CHANNEL_USBIN, &vchg);
- usb_vin = vchg.physical;
- pr_info("usb_vin : %d, max_voltage_mv=%d\n", usb_vin, chip->max_voltage_mv);
-
- if ((usb_vin/1000 <= chip->max_voltage_mv) &&
- (usb_vin/1000 > PM8921_CHG_VDDMAX_MIN)){
- pr_info(" Turn off USB ovp \n");
- unplug_ovp_fet_open(chip);
- }
- power_supply_changed(&chip->batt_psy);
- power_supply_changed(&chip->usb_psy);
- power_supply_changed(&chip->dc_psy);
-}
-
static irqreturn_t chg_gone_irq_handler(int irq, void *data)
{
struct pm8921_chg_chip *chip = data;
@@ -2989,20 +2776,11 @@
usb_chg_plugged_in = is_usb_chg_plugged_in(chip);
chg_gone = pm_chg_get_rt_status(chip, CHG_GONE_IRQ);
- pr_info("chg_gone=%d, usb_valid = %d\n", chg_gone, usb_chg_plugged_in);
- pr_info("Chg gone fsm_state=%d\n", pm_chg_get_fsm_state(data));
-
- if (chg_gone && usb_chg_plugged_in) {
- pr_info("schedule to check again here\n");
- /* schedule to check again later */
- schedule_delayed_work(&chip->unplug_usbcheck_work,
- round_jiffies_relative(msecs_to_jiffies
- (UNPLUG_CHECK_WAIT_PERIOD_MS)));
- }
+ pr_debug("chg_gone=%d, usb_valid = %d\n", chg_gone, usb_chg_plugged_in);
+ pr_debug("Chg gone fsm_state=%d\n", pm_chg_get_fsm_state(data));
power_supply_changed(&chip->batt_psy);
power_supply_changed(&chip->usb_psy);
- power_supply_changed(&chip->dc_psy);
return IRQ_HANDLED;
}
/*
@@ -3348,7 +3126,6 @@
struct pm8921_chg_chip, eoc_work);
static int count;
int end;
- int percent_soc;
pm_chg_failed_clear(chip, 1);
end = is_charging_finished(chip);
@@ -3377,12 +3154,6 @@
count = 0;
}
- if (chip->eoc_check_soc) {
- percent_soc = get_prop_batt_capacity(chip);
- if (percent_soc == 100)
- count = CONSECUTIVE_COUNT;
- }
-
if (count == CONSECUTIVE_COUNT) {
count = 0;
pr_info("End of Charging\n");
@@ -3429,9 +3200,6 @@
if (chip->is_bat_warm)
chg_current = min(chg_current, chip->warm_bat_chg_current);
- if (chip->ext_warm_i_limit && chip->ext_batt_temp_monitor)
- chg_current = min(chg_current, chip->ext_warm_i_limit);
-
if (thermal_mitigation != 0 && chip->thermal_mitigation)
chg_current = min(chg_current,
chip->thermal_mitigation[thermal_mitigation]);
@@ -3656,14 +3424,14 @@
pm8921_chg_enable_irq(chip, USBIN_VALID_IRQ);
pm8921_chg_enable_irq(chip, BATT_REMOVED_IRQ);
pm8921_chg_enable_irq(chip, BATT_INSERTED_IRQ);
+ pm8921_chg_enable_irq(chip, USBIN_OV_IRQ);
+ pm8921_chg_enable_irq(chip, USBIN_UV_IRQ);
pm8921_chg_enable_irq(chip, DCIN_OV_IRQ);
pm8921_chg_enable_irq(chip, DCIN_UV_IRQ);
pm8921_chg_enable_irq(chip, CHGFAIL_IRQ);
pm8921_chg_enable_irq(chip, FASTCHG_IRQ);
pm8921_chg_enable_irq(chip, VBATDET_LOW_IRQ);
-
- if (!chip->ext_batt_temp_monitor)
- pm8921_chg_enable_irq(chip, BAT_TEMP_OK_IRQ);
+ pm8921_chg_enable_irq(chip, BAT_TEMP_OK_IRQ);
spin_lock_irqsave(&vbus_lock, flags);
if (usb_chg_current) {
@@ -4301,105 +4069,6 @@
}
}
-int pm8921_stop_chg_disable_irq(void)
-{
-
- struct pm8921_chg_chip *chip = the_chip;
-
- pm8921_chg_disable_irq(chip, ATCFAIL_IRQ);
- pm8921_chg_disable_irq(chip, CHGHOT_IRQ);
- pm8921_chg_disable_irq(chip, ATCDONE_IRQ);
- pm8921_chg_disable_irq(chip, FASTCHG_IRQ);
- pm8921_chg_disable_irq(chip, CHGDONE_IRQ);
- pm8921_chg_disable_irq(chip, VBATDET_IRQ);
- pm8921_chg_disable_irq(chip, VBATDET_LOW_IRQ);
-
- return 1;
-}
-int pm8921_start_chg_enable_irq(void)
-{
-
- struct pm8921_chg_chip *chip = the_chip;
-
- pm8921_chg_enable_irq(chip, ATCFAIL_IRQ);
- pm8921_chg_enable_irq(chip, CHGHOT_IRQ);
- pm8921_chg_enable_irq(chip, ATCDONE_IRQ);
- pm8921_chg_enable_irq(chip, FASTCHG_IRQ);
- pm8921_chg_enable_irq(chip, CHGDONE_IRQ);
- pm8921_chg_enable_irq(chip, VBATDET_IRQ);
- pm8921_chg_enable_irq(chip, VBATDET_LOW_IRQ);
-
- return 1;
-}
-
-static ssize_t pm8921_chg_status_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int fsm_state, is_charging, r;
- bool b_chg_ok = false;
-
- if (!the_chip) {
- pr_err("called before init\n");
- return -EINVAL;
- }
-
- fsm_state = pm_chg_get_fsm_state(the_chip);
- is_charging = is_battery_charging(fsm_state);
-
- if (is_charging) {
- b_chg_ok = true;
- r = sprintf(buf, "%d\n", b_chg_ok);
- pr_info("pm8921_chg_status_show , true ! buf = %s, is_charging = %d\n",
- buf, is_charging);
- } else {
- b_chg_ok = false;
- r = sprintf(buf, "%d\n", b_chg_ok);
- pr_info("pm8921_chg_status_show , false ! buf = %s, is_charging = %d\n",
- buf, is_charging);
- }
-
- return r;
-}
-
-static ssize_t pm8921_chg_status_store(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- int ret = 0, batt_status = 0;
- struct pm8921_chg_chip *chip = the_chip;
-
- if (!count)
- return -EINVAL;
-
- batt_status = get_prop_batt_status(chip);
-
- if (strncmp(buf, "0", 1) == 0) {
- /* stop charging */
- pr_info("pm8921_chg_status_store : stop charging start\n");
- if (batt_status == POWER_SUPPLY_STATUS_CHARGING) {
- ret = pm8921_stop_chg_disable_irq();
- pm_chg_auto_enable(chip, 0);
- pm_chg_charge_dis(chip,1);
- pr_info("pm8921_chg_status_store : stop charging end\n");
- }
- } else if (strncmp(buf, "1", 1) == 0) {
- /* start charging */
- pr_info("pm8921_chg_status_store : start charging start\n");
- if (batt_status != POWER_SUPPLY_STATUS_CHARGING) {
- ret = pm8921_start_chg_enable_irq();
- pm_chg_auto_enable(chip, 1);
- pm_chg_charge_dis(chip,0);
- pr_info("pm8921_chg_status_store : start charging end\n");
- }
- }
-
- if(ret == 0)
- return -EINVAL;
-
- return ret;
-}
-DEVICE_ATTR(charge, 0664, pm8921_chg_status_show, pm8921_chg_status_store);
-
static int pm8921_charger_suspend_noirq(struct device *dev)
{
int rc;
@@ -4532,11 +4201,7 @@
chip->hot_thr = pdata->hot_thr;
chip->rconn_mohm = pdata->rconn_mohm;
chip->led_src_config = pdata->led_src_config;
- chip->has_dc_supply = pdata->has_dc_supply;
- chip->ext_batt_temp_monitor = pdata->ext_batt_temp_monitor;
- chip->eoc_check_soc = pdata->eoc_check_soc;
- if (chip->ext_batt_temp_monitor)
- chip->ext_batt_health = POWER_SUPPLY_HEALTH_GOOD;
+ chip->has_dc_supply = pdata->has_dc_supply;
rc = pm8921_chg_hw_init(chip);
if (rc) {
@@ -4593,7 +4258,6 @@
INIT_DELAYED_WORK(&chip->vin_collapse_check_work,
vin_collapse_check_worker);
INIT_DELAYED_WORK(&chip->unplug_check_work, unplug_check_worker);
- INIT_DELAYED_WORK(&chip->unplug_usbcheck_work, unplug_usbcheck_work);
rc = request_irqs(chip, pdev);
if (rc) {
@@ -4604,8 +4268,7 @@
enable_irq_wake(chip->pmic_chg_irq[USBIN_VALID_IRQ]);
enable_irq_wake(chip->pmic_chg_irq[USBIN_OV_IRQ]);
enable_irq_wake(chip->pmic_chg_irq[USBIN_UV_IRQ]);
- if (!chip->ext_batt_temp_monitor)
- enable_irq_wake(chip->pmic_chg_irq[BAT_TEMP_OK_IRQ]);
+ enable_irq_wake(chip->pmic_chg_irq[BAT_TEMP_OK_IRQ]);
enable_irq_wake(chip->pmic_chg_irq[VBATDET_LOW_IRQ]);
enable_irq_wake(chip->pmic_chg_irq[FASTCHG_IRQ]);
/*
@@ -4639,12 +4302,6 @@
/* determine what state the charger is in */
determine_initial_state(chip);
- rc = device_create_file(&pdev->dev, &dev_attr_charge);
- if (rc) {
- pr_err("Couldn't device_create_file charge! rc=%d\n",rc);
- goto free_irq;
- }
-
if (chip->update_time) {
INIT_DELAYED_WORK(&chip->update_heartbeat_work,
update_heartbeat);
@@ -4671,7 +4328,6 @@
{
struct pm8921_chg_chip *chip = platform_get_drvdata(pdev);
- device_remove_file(&pdev->dev, &dev_attr_charge);
free_irqs(chip);
platform_set_drvdata(pdev, NULL);
the_chip = NULL;