mbox series

[v3,0/4] Threshold event and Sampling freq support for LTR390

Message ID 20240914181246.504450-1-abhashkumarjha123@gmail.com (mailing list archive)
Headers show
Series Threshold event and Sampling freq support for LTR390 | expand

Message

Abhash Jha Sept. 14, 2024, 6:12 p.m. UTC
Hello,

The first patch adds support for configuring the Sampling frequency of
the sensor. The available values for the sampling freqeuncy are provided
by the `read_avail` callback and they are in miliHertz.

Then the second patch adds support for suspending and resuming
the sensor by providing the necessary callbacks. And registering
the ops with the driver.

The third patch in the series adds support for Threshold events and interrupts.
Exposed rising and falling threshold events for both the channels. The events
can be configured via the write_event_config callback. The desired rising or falling
threshold value can be written to from userspace.

The fourth patch adds support for threshold interrupt persistance.
It triggers when the UVS/ALS data is out of thresholds for a specific number
of consecutive measurements.
Exposed the IIO_EV_INFO_PERIOD attribute by which userspace can set the persistance
value in miliseconds. The persistance period should be greater than or equal
to the sampling period.

Changes in v3:
- Replace hardcoded mask values with GENMASK()
- Minor refactoring
- Code formatting changes

Changes in v2:
- Added "linux/irq.h" include to fix `-Wimplicit-function-declaration`.
- The above error was pointed during testing by kernel-test-robot

Thanks,
Abhash


Abhash Jha (4):
  iio: light: ltr390: Added configurable sampling frequency support
  iio: light: ltr390: Suspend and Resume support
  iio: light: ltr390: Interrupts and threshold event support
  iio: light: ltr390: Add interrupt persistance support

 drivers/iio/light/ltr390.c | 361 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 357 insertions(+), 4 deletions(-)

Comments

Jonathan Cameron Sept. 28, 2024, 3:47 p.m. UTC | #1
On Sat, 14 Sep 2024 23:42:42 +0530
Abhash Jha <abhashkumarjha123@gmail.com> wrote:

> Hello,
> 
> The first patch adds support for configuring the Sampling frequency of
> the sensor. The available values for the sampling freqeuncy are provided
> by the `read_avail` callback and they are in miliHertz.
> 
> Then the second patch adds support for suspending and resuming
> the sensor by providing the necessary callbacks. And registering
> the ops with the driver.
> 
> The third patch in the series adds support for Threshold events and interrupts.
> Exposed rising and falling threshold events for both the channels. The events
> can be configured via the write_event_config callback. The desired rising or falling
> threshold value can be written to from userspace.
> 
> The fourth patch adds support for threshold interrupt persistance.
> It triggers when the UVS/ALS data is out of thresholds for a specific number
> of consecutive measurements.
> Exposed the IIO_EV_INFO_PERIOD attribute by which userspace can set the persistance
> value in miliseconds. The persistance period should be greater than or equal
> to the sampling period.

Applied with tweaks to the testing branch of iio.git which will be rebased
on rc1 once available.

Thanks,

Jonathan

> 
> Changes in v3:
> - Replace hardcoded mask values with GENMASK()
> - Minor refactoring
> - Code formatting changes
> 
> Changes in v2:
> - Added "linux/irq.h" include to fix `-Wimplicit-function-declaration`.
> - The above error was pointed during testing by kernel-test-robot
> 
> Thanks,
> Abhash
> 
> 
> Abhash Jha (4):
>   iio: light: ltr390: Added configurable sampling frequency support
>   iio: light: ltr390: Suspend and Resume support
>   iio: light: ltr390: Interrupts and threshold event support
>   iio: light: ltr390: Add interrupt persistance support
> 
>  drivers/iio/light/ltr390.c | 361 ++++++++++++++++++++++++++++++++++++-
>  1 file changed, 357 insertions(+), 4 deletions(-)
>