• Kuppuswamy Sathyanarayanan's avatar
    iio: ltr501: Add interrupt rate control support · eea53b4a
    Kuppuswamy Sathyanarayanan authored
    Added rate control support for ALS and proximity
    threshold interrupts.Also, Added support to modify
    and read ALS & proximity sensor sampling frequency.
    
    LTR-501 supports interrupt rate control using persistence
    register settings. Writing <n> to persistence register
    would generate interrupt only if there are <n> consecutive
    data values outside the threshold range.
    
    Since we don't have any existing ABI's to directly
    control the persistence register count, we have implemented
    the rate control using IIO_EV_INFO_PERIOD. _period event
    attribute represents the amount of time in seconds an
    event should be true for the device to generate the
    interrupt. So using _period value and device frequency,
    persistence count is calculated in driver using following
    logic.
    
    count =  period / measurement_rate
    
    If the given period is not a multiple of measurement rate then
    we round up the value to next multiple.
    
    This patch also handles change to persistence count whenever
    there is change in frequency.
    Signed-off-by: default avatarKuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
    Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
    eea53b4a
ltr501.c 31.1 KB