• Vasileios Amoiridis's avatar
    iio: chemical: bme680: Refactorize reading functions · d2651a43
    Vasileios Amoiridis authored
    The reading of the pressure and humidity value, requires an update of the
    t_fine variable which happens by reading the temperature value.
    
    So the bme680_read_{press/humid}() functions of the above sensors are
    internally calling the equivalent bme680_read_temp() function in order to
    update the t_fine value. By just looking at the code this relation is a
    bit hidden and is not easy to understand why those channels are not
    independent.
    
    This commit tries to clear these thing a bit by splitting the
    bme680_{read/compensate}_{temp/press/humid}() to the following:
    
    i. bme680_read_{temp/press/humid}_adc(): read the raw value from the
    sensor.
    
    ii. bme680_calc_t_fine(): calculate the t_fine variable.
    
    iii. bme680_get_t_fine(): get the t_fine variable.
    
    iv. bme680_compensate_{temp/press/humid}(): compensate the adc values and
    return the calculated value.
    
    v. bme680_read_{temp/press/humid}(): combine calls of the aforementioned
    functions to return the requested value.
    Signed-off-by: default avatarVasileios Amoiridis <vassilisamir@gmail.com>
    Link: https://patch.msgid.link/20240609233826.330516-16-vassilisamir@gmail.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    d2651a43
bme680_core.c 23.6 KB