gpadc: fix battery temp accuracy
authorBin Yang <bin.yang@intel.com>
Thu, 6 Oct 2011 15:18:35 +0000 (16:18 +0100)
committermgross <mark.gross@intel.com>
Wed, 9 Nov 2011 21:17:25 +0000 (13:17 -0800)
From oscilloscope result, BPTHERM takes <1ms to stabilize.
So it needs to add 1ms delay after VBUSREF is enabled.

Change-Id: I34503b94bd9eec73432bfe817bceed18a104edcc
Signed-off-by: Bin Yang <bin.yang@intel.com>
drivers/hwmon/intel_mid_gpadc.c

index acaeef2..b61e5dd 100644 (file)
@@ -82,6 +82,8 @@
 
 #define PM_QOS_ADC_DRV_VALUE   4999
 
+#define GPADC_POWERON_DELAY    1
+
 struct gpadc_info {
        int initialized;
 
@@ -150,9 +152,12 @@ static int gpadc_poweron(struct gpadc_info *mgi, int vref)
 {
        if (gpadc_set_bits(ADC1CNTL1, ADC1CNTL1_ADEN) != 0)
                return -EIO;
-       if (vref)
+       msleep(GPADC_POWERON_DELAY);
+       if (vref) {
                if (gpadc_set_bits(ADC1CNTL3, ADC1CNTL3_ADCTHERM) != 0)
                        return -EIO;
+               msleep(GPADC_POWERON_DELAY);
+       }
        return 0;
 }