power: pm8xxx-ccadc: reduce boot time for calibration
- reduce the wait time between adc readings to 20ms from 60ms. This
speeds up the calibration time.
- move the initial calibration to a workqueue.
CRs-Fixed: 331215
Change-Id: I2034c55f2df8d3e1df216dd5a739cbe70e53c2ed
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
diff --git a/drivers/power/pm8921-bms.c b/drivers/power/pm8921-bms.c
index 2e80692..93de829 100644
--- a/drivers/power/pm8921-bms.c
+++ b/drivers/power/pm8921-bms.c
@@ -1893,7 +1893,7 @@
INIT_DELAYED_WORK(&chip->calib_ccadc_work, calibrate_ccadc_work);
/* begin calibration only on chips > 2.0 */
if (chip->revision >= PM8XXX_REVISION_8921_2p0)
- calibrate_ccadc_work(&(chip->calib_ccadc_work.work));
+ schedule_delayed_work(&chip->calib_ccadc_work, 0);
/* initial hkadc calibration */
schedule_work(&chip->calib_hkadc_work);
diff --git a/drivers/power/pm8xxx-ccadc.c b/drivers/power/pm8xxx-ccadc.c
index 17cf53a..c95fd93 100644
--- a/drivers/power/pm8xxx-ccadc.c
+++ b/drivers/power/pm8xxx-ccadc.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -209,7 +209,7 @@
return rc;
}
if ((reg & (START_CONV_BIT | EOC_CONV_BIT)) != EOC_CONV_BIT)
- msleep(60);
+ msleep(20);
else
break;
}