• Shreeya Patel's avatar
    iio: light: ltrf216a: Add raw attribute · f5ffeca5
    Shreeya Patel authored
    Add IIO_CHAN_INFO_RAW to the mask to be able to read raw values
    from the light sensor.
    
    The userspace code for brightness control in steam deck uses the
    in_illuminance_input value through sysfs and multiplies it
    with a constant stored in BIOS at factory calibration time.
    
    The downstream driver for LTRF216A that we have been using
    has incorrect formula for LUX calculation which we corrected
    in the upstreamed driver.
    
    Now to be able to use the upstreamed driver, we need to add some
    magic in userspace so that the brightness control works like before
    even with the updated LUX formula.
    
    Hence, we need the raw data to calculate a constant that can be
    added in userspace code.
    
    Downstream driver LUX formula :-
    (greendata*8*LTRF216A_WIN_FAC) / (data->als_gain_fac*data->int_time_fac*10)
    
    Upstreamed driver LUX formula :-
    (greendata*45*LTRF216A_WIN_FAC) / (data->als_gain_fac*data->int_time_fac)
    
    greendata is the ALS_DATA which we would like to get through sysfs using
    the raw attribute.
    Signed-off-by: default avatarShreeya Patel <shreeya.patel@collabora.com>
    Link: https://lore.kernel.org/r/20220812100424.529425-1-shreeya.patel@collabora.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    f5ffeca5
ltrf216a.c 13 KB