• Bhuvanchandra DV's avatar
    vf610_adc: Fix internal temperature calculation · 6219f432
    Bhuvanchandra DV authored
    Calculate ADCR_VTEMP25 using VTEMP25 at VREFH_ADC 3V3. Existing
    calculations consider the typical values provided in datasheet.
    Those typical values are valid for VREFH_ADC at 3.0V. VTEMP25
    is different for different VREFH_ADC voltages. With VREFH_ADC
    at 3.3V, voltage at 25°C is 0.699V. Hence update the VTEMP25
    to 0.699V which gives ADCR@Temp25 as 867.
    
    Formula for finding ADCR@Temp25:
    ADCR@Temp25 = (ADCR@Vdd * V@TEMP25 * 10) / VDDconv
    
    ADCR@Vdd for 12-Bit ADC = 4095
    VDDconv = VREFH_ADC * 10
    
    VREFH_ADC@3.3V
    ADCR@Temp25 = (4095 * .699 * 10) / 33
    ADCR@Temp25 ~= 867
    
    | VREFH_ADC | V@TEMP25 | VDDconv | ADCR@Temp25 |
    |   3.0V    | 0.696mV  |    30   |     950     |
    |   3.3V    | 0.699mV  |    33   |     867     |
    Signed-off-by: default avatarBhuvanchandra DV <bhuvanchandra.dv@toradex.com>
    Acked-by: default avatarFugang Duan <B38611@freescale.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
    6219f432
vf610_adc.c 21.8 KB