diff options
| author | Paul Reioux <reioux@gmail.com> | 2014-02-11 01:03:49 -0800 |
|---|---|---|
| committer | John Brewer <lycanrom@hotmail.com> | 2014-08-28 21:38:54 -0400 |
| commit | d56a43710ccb878b51a1a1dcc1ff0254f52ca825 (patch) | |
| tree | 427eb45aca72a16ba2463025e7509c1736539d3e /drivers | |
| parent | 539bc3ee1ac57cc7afa5d8296c4213ed6d8ed2af (diff) | |
fastcharge: initial adaptation for Moto X
Signed-off-by: Paul Reioux <reioux@gmail.com>
Change-Id: I3faacfc1a069f9cc4682a10204b14bd14f588d3c
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/power/pm8921-charger.c | 36 | ||||
| -rw-r--r-- | drivers/usb/otg/msm_otg.c | 9 |
2 files changed, 45 insertions, 0 deletions
diff --git a/drivers/power/pm8921-charger.c b/drivers/power/pm8921-charger.c index 601f6b69419..9c6e5014f85 100644 --- a/drivers/power/pm8921-charger.c +++ b/drivers/power/pm8921-charger.c @@ -41,6 +41,10 @@ #include <linux/emu-accy.h> #endif +#ifdef CONFIG_FORCE_FAST_CHARGE +#include <linux/fastchg.h> +#endif + #define CHG_BUCK_CLOCK_CTRL 0x14 #define CHG_BUCK_CLOCK_CTRL_8038 0xD @@ -2496,7 +2500,39 @@ static void __pm8921_charger_vbus_draw(unsigned int mA) i--; if (i < 0) i = 0; + +#ifdef CONFIG_FORCE_FAST_CHARGE + if (force_fast_charge == 1) + i = 10; + else if (force_fast_charge == 2) { + switch (fast_charge_level) { + case FAST_CHARGE_500: + i = 2; + break; + case FAST_CHARGE_700: + i = 4; + break; + case FAST_CHARGE_900: + i = 8; + break; + case FAST_CHARGE_1100: + i = 10; + break; + case FAST_CHARGE_1300: + i = 12; + break; + case FAST_CHARGE_1500: + i = 14; + break; + default: + break; + } + } + rc = pm_chg_iusbmax_set(the_chip, i); + pr_info("charge curent index => %d\n", i); +#else rc = pm_chg_iusbmax_set(the_chip, i); +#endif if (rc) pr_err("unable to set iusb to %d rc = %d\n", i, rc); } diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c index 2163f50ca18..8720d455a08 100644 --- a/drivers/usb/otg/msm_otg.c +++ b/drivers/usb/otg/msm_otg.c @@ -53,6 +53,10 @@ #include <mach/msm_bus.h> #include <mach/rpm-regulator.h> +#ifdef CONFIG_FORCE_FAST_CHARGE +#include <linux/fastchg.h> +#endif + #define MSM_USB_BASE (motg->regs) #define DRIVER_NAME "msm_otg" @@ -1172,6 +1176,11 @@ static void msm_otg_notify_charger(struct msm_otg *motg, unsigned mA) "Failed notifying %d charger type to PMIC\n", motg->chg_type); +#ifdef CONFIG_FORCE_FAST_CHARGE + if (force_fast_charge > 0) + mA = IDEV_ACA_CHG_MAX; +#endif + if (motg->cur_power == mA) return; |
