Add a more complete support for vncl4040 and vcnl4200, which allows to change the distance of proximity detection and interrupt support for the illuminance sensor. Proximity functionality: - Interrupt support (new on vcnl4200). Proximity reduce the amount of interrupts: - Adaptable integration time (new on vcnl4200) - the sampling rate changes according to this value. - Period - interrupt is asserted if the value is above or below a certain threshold. Proximity change the activity distance: - Oversampling ratio - Amount of LED pulses per measured raw value. - Calibration bias - LED current calibration of the sensor. Illuminance functionality: - Interrupt support. Illuminance reduce the amount of interrupts: - Adaptable integration time - the sampling rate and scale changes according to this value. - Period – interrupt is asserted if the value is above or below a certain threshold. changes v2: - [PATCH v2 3/7] Fixed calculation of al_scale. Fix the value of vcnl4040 according to the data-sheet. Use div_u64 for the division. scription for the branch changes v3: - [PATCH v3 1-3/7] Add differences between the chips as variables in chip-spec. - [PATCH v3 4/7] Changed commit message. - [PATCH v3 5/7] Use period instead of debounce time. This causes some calculations as the period is a time and the chip allows to set a certain amount of measurements above/below the threshold, before throwing an interrupt. - [PATCH v3 6/7] Changed commit message. changes v4: - [PATCH v3 1-3/7] Fix setting correct als_it for vcnl4040. - [PATCH v3 5/7] Use MICRO macro. Fix values greater than 1 s for the proximity period. changes v5: [PATCH v5 2/7]: - Calculate ps_it from ps_it_times by usinh NSEC_PER_USEC. [PATCH v5 3/7]: - Calculate als_it from ps_it_times by using NSEC_PER_USEC. - Store scale step factor in chip_spec. - Fixes sampling_rate to ns + 20 %. [PATCH v5 3/7 - 7/7] - Changed formatting. - Changed some variable names. - [PATCH v3 4/7] Changed commit message. - [PATCH v3 5/7] Use period instead of debounce time. This causes some calculations as the period is a time and the chip allows to set a certain amount of measurements above/below the threshold, before throwing an interrupt. - [PATCH v3 6/7] Changed commit message. changes v4: - [PATCH v3 1-3/7] Fix setting correct als_it for vcnl4040. - [PATCH v3 5/7] Use MICRO macro. Fix values greater than 1 s for the proximity period. changes v5: [PATCH v5 2/7]: - Calculate ps_it from ps_it_times by usinh NSEC_PER_USEC. [PATCH v5 3/7]: - Calculate als_it from ps_it_times by using NSEC_PER_USEC. - Store scale step factor in chip_spec. - Fixes sampling_rate to ns + 20 %. [PATCH v5 3/7 - 7/7] - Changed formatting. - Changed some variable names. changes v6: Added [PATCH v6 3/8]: - Add switch case for IIO_PROXIMITY check. [PATCH v5 1/7 - 7/7] - Changed formatting. [PATCH v5 3/7, 5/7, 6/7, 7/7] - Changed loop. - Changed some variable names. Astrid Rost (8): [PATCH v6 1/8] iio: light: vcnl4000: Add proximity irq for vcnl4200 [PATCH v6 2/8] iio: light: vcnl4000: Add proximity ps_it for vcnl4200 [PATCH v6 3/8] iio: light: vcnl4000: Check type with switch case [PATCH v6 4/8] iio: light: vcnl4000: Add als_it for vcnl4040/4200 [PATCH v6 5/8] iio: light: vcnl4000: add illuminance irq vcnl4040/4200 [PATCH v6 6/8] iio: light: vcnl4000: Add period for vcnl4040/4200 [PATCH v6 7/8] iio: light: vcnl4000: Add oversampling_ratio for 4040/4200 [PATCH v6 8/8] iio: light: vcnl4000: Add calibration bias for 4040/4200 drivers/iio/light/vcnl4000.c | 710 +++++++++++++++++++++++++++++++---- 1 file changed, 643 insertions(+), 67 deletions(-) -- 2.30.2