mbox series

[v4,0/7] iio: light: vcnl4000: Add features for vncl4040/4200

Message ID 20230522142621.1680563-1-astrid.rost@axis.com (mailing list archive)
Headers show
Series iio: light: vcnl4000: Add features for vncl4040/4200 | expand

Message

Astrid Rost May 22, 2023, 2:26 p.m. UTC
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.

Astrid Rost (7):
  [PATCH v4 1/7] iio: light: vcnl4000: Add proximity irq for vcnl4200
  [PATCH v4 2/7] iio: light: vcnl4000: Add proximity ps_it for vcnl4200
  [PATCH v4 3/7] iio: light: vcnl4000: Add als_it for vcnl4040/4200
  [PATCH v4 4/7] iio: light: vcnl4000: add illuminance irq vcnl4040/4200
  [PATCH v4 5/7] iio: light: vcnl4000: Add period for vcnl4040/4200
  [PATCH v4 6/7] iio: light: vcnl4000: Add oversampling_ratio for 4040/4200
  [PATCH v4 7/7] iio: light: vcnl4000: Add calibration bias for 4040/4200

 drivers/iio/light/vcnl4000.c | 721 +++++++++++++++++++++++++++++++----
 1 file changed, 653 insertions(+), 68 deletions(-)

Comments

Jonathan Cameron May 28, 2023, 7:01 p.m. UTC | #1
On Mon, 22 May 2023 16:26:14 +0200
Astrid Rost <astrid.rost@axis.com> wrote:

> 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.

Something odd going on (superficially looks like a rebase mistake in patch 6)

 CHECK   drivers/iio/amplifiers/ad8366.c                                                                                                         
In file included from ./include/linux/bits.h:6,                                                                                                   
                 from ./include/linux/bitops.h:6,                                                                                                 
                 from ./include/linux/kernel.h:22,                                                                                                
                 from ./arch/x86/include/asm/percpu.h:27,                                                                                         
                 from ./arch/x86/include/asm/current.h:10,                                                                                        
                 from ./arch/x86/include/asm/processor.h:17,                                                                                      
                 from ./arch/x86/include/asm/timex.h:5,                                                                                           
                 from ./include/linux/timex.h:67,                                                                                                 
                 from ./include/linux/time32.h:13,                                                                                                
                 from ./include/linux/time.h:60,                                                                                                  
                 from ./include/linux/stat.h:19,                    
                 from ./include/linux/module.h:13,             
                 from drivers/iio/light/vcnl4000.c:21:             
./include/vdso/bits.h:7:33: warning: initialized field overwritten [-Woverride-init]
    7 | #define BIT(nr)                 (UL(1) << (nr))                                                                                           
      |                                 ^                
drivers/iio/light/vcnl4000.c:1824:49: note: in expansion of macro ‘BIT’                                                                           
 1824 |                 .info_mask_separate_available = BIT(IIO_CHAN_INFO_INT_TIME) |
      |                                                 ^~~
./include/vdso/bits.h:7:33: note: (near initialization for ‘vcnl4040_channels[1].info_mask_separate_available’)
    7 | #define BIT(nr)                 (UL(1) << (nr))        
      |                                 ^         
drivers/iio/light/vcnl4000.c:1824:49: note: in expansion of macro ‘BIT’
 1824 |                 .info_mask_separate_available = BIT(IIO_CHAN_INFO_INT_TIME) |          
      |                                                 ^~~          


> 
> 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.
> 
> Astrid Rost (7):
>   [PATCH v4 1/7] iio: light: vcnl4000: Add proximity irq for vcnl4200
>   [PATCH v4 2/7] iio: light: vcnl4000: Add proximity ps_it for vcnl4200
>   [PATCH v4 3/7] iio: light: vcnl4000: Add als_it for vcnl4040/4200
>   [PATCH v4 4/7] iio: light: vcnl4000: add illuminance irq vcnl4040/4200
>   [PATCH v4 5/7] iio: light: vcnl4000: Add period for vcnl4040/4200
>   [PATCH v4 6/7] iio: light: vcnl4000: Add oversampling_ratio for 4040/4200
>   [PATCH v4 7/7] iio: light: vcnl4000: Add calibration bias for 4040/4200
> 
>  drivers/iio/light/vcnl4000.c | 721 +++++++++++++++++++++++++++++++----
>  1 file changed, 653 insertions(+), 68 deletions(-)
>