diff options
author | Daniel Hillenbrand <codeworkx@cyanogenmod.org> | 2013-06-04 01:33:22 +0200 |
---|---|---|
committer | Daniel Hillenbrand <codeworkx@cyanogenmod.org> | 2013-06-04 12:54:26 +0200 |
commit | 55bb2048feb59f2190f704c2a4df81b557b55c7a (patch) | |
tree | cbb680a60770fb762e5b27c502ad71c2366bf604 /drivers/battery/max77693_charger.c | |
parent | 3d8b293a4f5042cd9fdc4009a40f6483371cd489 (diff) | |
download | kernel_samsung_smdk4412-55bb2048feb59f2190f704c2a4df81b557b55c7a.zip kernel_samsung_smdk4412-55bb2048feb59f2190f704c2a4df81b557b55c7a.tar.gz kernel_samsung_smdk4412-55bb2048feb59f2190f704c2a4df81b557b55c7a.tar.bz2 |
smdk4412: bulk update from i9300 update 9
Change-Id: Icd3e7b601f3f4c8b3dcf053fed5819fb7caf5296
Diffstat (limited to 'drivers/battery/max77693_charger.c')
-rw-r--r-- | drivers/battery/max77693_charger.c | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/drivers/battery/max77693_charger.c b/drivers/battery/max77693_charger.c index 4a147ee..35289a6 100644 --- a/drivers/battery/max77693_charger.c +++ b/drivers/battery/max77693_charger.c @@ -463,7 +463,8 @@ void max77693_set_input_current(struct max77693_charger_data *chg_data, #endif if (set_current == OFF_CURR) { - max77693_write_reg(i2c, MAX77693_CHG_REG_CHG_CNFG_09, set_current); + max77693_write_reg(i2c, MAX77693_CHG_REG_CHG_CNFG_09, + set_current); if (chg_data->soft_reg_state == true) { pr_info("%s: exit soft regulation loop\n", __func__); @@ -676,11 +677,12 @@ static int max77693_get_cable_type(struct max77693_charger_data *chg_data) int state; u8 reg_data, mu_adc, mu_adc1k, otg; u8 dtls_00, chgin_dtls; + u8 dtls_01, chg_dtls; u8 mu_st2, chgdetrun, vbvolt, chgtyp, dxovp; - int muic_cb_typ; +#ifdef CONFIG_BATTERY_WPC_CHARGER bool wc_state; - bool retry_det; - bool chg_det_erred = false; /* TEMP: set as true for logging */ +#endif + bool retry_det, chg_det_erred; bool otg_detected = false; int retry_cnt = 0; pr_debug("%s\n", __func__); @@ -719,10 +721,8 @@ static int max77693_get_cable_type(struct max77693_charger_data *chg_data) } #endif - muic_cb_typ = max77693_muic_get_charging_type(); /* if type detection by otg, do not otg check */ - if ((muic_cb_typ != CABLE_TYPE_AUDIODOCK_MUIC) && - (((otg || (mu_adc == 0x00 && !mu_adc1k))))) { + if (otg || (mu_adc == 0x00 && !mu_adc1k)) { pr_info("%s: otg enabled(otg(0x%x), adc(0x%x))\n", __func__, otg, mu_adc); state = POWER_SUPPLY_TYPE_BATTERY; @@ -737,15 +737,20 @@ static int max77693_get_cable_type(struct max77693_charger_data *chg_data) goto chg_det_finish; } + chg_det_erred = false; /* TEMP: set as true for logging */ do { retry_det = false; max77693_read_reg(chg_data->max77693->i2c, MAX77693_CHG_REG_CHG_DTLS_00, &dtls_00); + max77693_read_reg(chg_data->max77693->i2c, + MAX77693_CHG_REG_CHG_DTLS_01, &dtls_01); max77693_read_reg(chg_data->max77693->muic, MAX77693_MUIC_REG_STATUS2, &mu_st2); chgin_dtls = ((dtls_00 & MAX77693_CHGIN_DTLS) >> MAX77693_CHGIN_DTLS_SHIFT); + chg_dtls = ((dtls_01 & MAX77693_CHG_DTLS) >> + MAX77693_CHG_DTLS_SHIFT); chgdetrun = ((mu_st2 & MAX77693_CHGDETRUN) >> MAX77693_CHGDETRUN_SHIFT); vbvolt = ((mu_st2 & MAX77693_VBVOLT) >> @@ -753,9 +758,9 @@ static int max77693_get_cable_type(struct max77693_charger_data *chg_data) chgtyp = ((mu_st2 & MAX77693_CHGTYPE) >> MAX77693_CHGTYPE_SHIFT); if (chg_det_erred) - pr_err("%s: CHGIN(0x%x). MU_ST2(0x%x), " + pr_err("%s: CHGIN(0x%x). CHG(0x%x), MU_ST2(0x%x), " "CDR(0x%x), VB(0x%x), CHGTYP(0x%x)\n", __func__, - chgin_dtls, mu_st2, + chgin_dtls, chg_dtls, mu_st2, chgdetrun, vbvolt, chgtyp); /* input power state */ @@ -772,9 +777,7 @@ static int max77693_get_cable_type(struct max77693_charger_data *chg_data) chg_det_erred = true; /* check chargable input power */ - if ((chgin_dtls == 0x0) && - (chg_data->cable_type == - POWER_SUPPLY_TYPE_BATTERY)) { + if ((chgin_dtls == 0x0) && (chg_dtls == 0x8)) { pr_err("%s: unchargable power\n", __func__); state = POWER_SUPPLY_TYPE_BATTERY; goto chg_det_finish; @@ -974,10 +977,6 @@ static int max77693_get_online_type(struct max77693_charger_data *chg_data) m_typ = max77693_get_cable_type(chg_data); - pr_info("%s: main(%d), sub(%d), pwr(%d)\n", __func__, m_typ, - chg_data->cable_sub_type, - chg_data->cable_pwr_type); - state = ((m_typ << ONLINE_TYPE_MAIN_SHIFT) | (chg_data->cable_sub_type << ONLINE_TYPE_SUB_SHIFT) | (chg_data->cable_pwr_type << ONLINE_TYPE_PWR_SHIFT)); |