[PATCH v3 0/3] Interrupt and Continuous mode support for VL6180

Abhash Jha posted 3 patches 1 month, 3 weeks ago
drivers/iio/light/vl6180.c | 255 ++++++++++++++++++++++++++++++++++---
1 file changed, 238 insertions(+), 17 deletions(-)
[PATCH v3 0/3] Interrupt and Continuous mode support for VL6180
Posted by Abhash Jha 1 month, 3 weeks ago
Sending v3 again because I accidently sent it without a subject.
Apologies from my side.

Hello,

The first patch adds support for configuring the Sampling frequency
(inter-measurement period) of the sensor. The values should be provided
in milihertz. The default value for the inter-measurement period for
ALS is 10ms or 100000 mHz and for Range is 50ms or 20000 mHz.

The second patch adds support for interrupt based single shot reading.
We registered an irq_handler that fires everytime the data is ready.
And then we read the appropriate value in the `vl6180_measure` routine.

The third patch adds support for continuous mode in the sensor by using
buffers. We enable the sensor's continuous mode in the buffer_postenable
function depending on the `active_scan_mask`.
The continuous mode can be disabled by disabling the buffer.
Added a trigger to the device for the continuous mode. Also validating that
the device uses the internal trigger provided by us.

Changes in v2:
- Fixed `label followed by a declaration is a C23 extension [-Wc23-extensions]`
  by moving the guard(mutex)(&data->lock) above the switch statement.

- The above error was pointed out during testing by kernel-test-robot

Changes in v3:
- Fixed race condition related to `reinit_completion`
- Used `iio_for_each_active_channel` instead of manually accessing `masklength`
- Accepting sampling frequency values in milihertz instead of miliseconds.
- Minor code refactoring.

Thanks,
Abhash Jha

Abhash Jha (3):
  iio: light: vl6180: Add configurable inter-measurement period support
  iio: light: vl6180: Added Interrupt support for single shot access
  iio: light: vl6180: Add support for Continuous Mode

 drivers/iio/light/vl6180.c | 255 ++++++++++++++++++++++++++++++++++---
 1 file changed, 238 insertions(+), 17 deletions(-)

-- 
2.43.0
Re: [PATCH v3 0/3] Interrupt and Continuous mode support for VL6180
Posted by Jonathan Cameron 1 month, 2 weeks ago
On Mon,  7 Oct 2024 20:52:20 +0530
Abhash Jha <abhashkumarjha123@gmail.com> wrote:

> Sending v3 again because I accidently sent it without a subject.
> Apologies from my side.
> 
> Hello,
> 
Series applied to the togreg branch of iio.git and pushed out as testing for
0-day to have a first look at it.

Thanks,

Jonathan

> The first patch adds support for configuring the Sampling frequency
> (inter-measurement period) of the sensor. The values should be provided
> in milihertz. The default value for the inter-measurement period for
> ALS is 10ms or 100000 mHz and for Range is 50ms or 20000 mHz.
> 
> The second patch adds support for interrupt based single shot reading.
> We registered an irq_handler that fires everytime the data is ready.
> And then we read the appropriate value in the `vl6180_measure` routine.
> 
> The third patch adds support for continuous mode in the sensor by using
> buffers. We enable the sensor's continuous mode in the buffer_postenable
> function depending on the `active_scan_mask`.
> The continuous mode can be disabled by disabling the buffer.
> Added a trigger to the device for the continuous mode. Also validating that
> the device uses the internal trigger provided by us.
> 
> Changes in v2:
> - Fixed `label followed by a declaration is a C23 extension [-Wc23-extensions]`
>   by moving the guard(mutex)(&data->lock) above the switch statement.
> 
> - The above error was pointed out during testing by kernel-test-robot
> 
> Changes in v3:
> - Fixed race condition related to `reinit_completion`
> - Used `iio_for_each_active_channel` instead of manually accessing `masklength`
> - Accepting sampling frequency values in milihertz instead of miliseconds.
> - Minor code refactoring.
> 
> Thanks,
> Abhash Jha
> 
> Abhash Jha (3):
>   iio: light: vl6180: Add configurable inter-measurement period support
>   iio: light: vl6180: Added Interrupt support for single shot access
>   iio: light: vl6180: Add support for Continuous Mode
> 
>  drivers/iio/light/vl6180.c | 255 ++++++++++++++++++++++++++++++++++---
>  1 file changed, 238 insertions(+), 17 deletions(-)
>