• Vasileios Amoiridis's avatar
    iio: pressure: bmp280: Refactorize reading functions · 5d6e6c6e
    Vasileios Amoiridis authored
    For BMP18x, BMP28x, BME280, BMP38x the reading of the pressure
    value requires an update of the t_fine variable which happens
    through reading the temperature value.
    
    So all the bmpxxx_read_press() functions of the above sensors
    are internally calling the equivalent bmpxxx_read_temp() function
    in order to update the t_fine value. By just looking at the code
    this functionality is a bit hidden and is not easy to understand
    why those channels are not independent.
    
    This commit tries to clear these things a bit by splitting the
    bmpxxx_{read/compensate}_{temp/press/humid}() to the following:
    
    i. bmpxxx_read_{temp/press/humid}_adc(): read the raw value from
    the sensor.
    
    ii. bmpxx_calc_t_fine(): calculate the t_fine variable.
    
    iii. bmpxxx_get_t_fine(): get the t_fine variable.
    
    iv. bmpxxx_compensate_{temp/press/humid}(): compensate the adc
    values and return the calculated value.
    
    v. bmpxxx_read_{temp/press/humid}(): combine calls of the
    aforementioned functions to return the requested value.
    Suggested-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: default avatarVasileios Amoiridis <vassilisamir@gmail.com>
    Link: https://lore.kernel.org/r/20240512230524.53990-2-vassilisamir@gmail.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    5d6e6c6e
bmp280.h 13 KB