mbox series

[0/2] Introduce new iio resolution standard attribute

Message ID 20231212-vcnl4000-ps-hd-v1-0-1c62a95828c0@axis.com (mailing list archive)
Headers show
Series Introduce new iio resolution standard attribute | expand

Message

Mårten Lindahl Dec. 15, 2023, 12:43 p.m. UTC
This patch introduces a new IIO standard attribute to set the bit
resolution of the data *_raw readings dynamically using sysfs.

The VCNL4040/4200 proximity/ambient light sensors support 12-bit
(default) and 16-bit ADC resolutions. This can be dynamically changed,
so to support this with the standard iio channel configuration a new iio
attribute should be added.

The VCNL4040 devices will use this for setting proximity high definition
(16-bit resolution).

Signed-off-by: Mårten Lindahl <marten.lindahl@axis.com>
---
Mårten Lindahl (2):
      iio: core: Introduce resolution standard attribute
      iio: light: vcnl4000: Add ps high definition for vcnl4040

 drivers/iio/industrialio-core.c |  1 +
 drivers/iio/light/vcnl4000.c    | 87 ++++++++++++++++++++++++++++++++++++++++-
 include/linux/iio/types.h       |  1 +
 3 files changed, 87 insertions(+), 2 deletions(-)
---
base-commit: a39b6ac3781d46ba18193c9dbb2110f31e9bffe9
change-id: 20231212-vcnl4000-ps-hd-38d42abf9095

Best regards,

Comments

Jonathan Cameron Dec. 17, 2023, 2:10 p.m. UTC | #1
On Fri, 15 Dec 2023 13:43:03 +0100
Mårten Lindahl <marten.lindahl@axis.com> wrote:

> This patch introduces a new IIO standard attribute to set the bit
> resolution of the data *_raw readings dynamically using sysfs.
> 
> The VCNL4040/4200 proximity/ambient light sensors support 12-bit
> (default) and 16-bit ADC resolutions. This can be dynamically changed,
> so to support this with the standard iio channel configuration a new iio
> attribute should be added.
> 
> The VCNL4040 devices will use this for setting proximity high definition
> (16-bit resolution).
> 
> Signed-off-by: Mårten Lindahl <marten.lindahl@axis.com>

Hi Mårten,

What is the use case?  We've had lots of devices capable of doing this
sort of resolution change, but never yet come up with a reason to do so for
the sysfs interfaces on the basis the overhead of the sysfs interfaces is
high enough the best bet is almost always to use the highest available resolution
and don't worry that the read takes a little longer.

Jonathan

> ---
> Mårten Lindahl (2):
>       iio: core: Introduce resolution standard attribute
>       iio: light: vcnl4000: Add ps high definition for vcnl4040
> 
>  drivers/iio/industrialio-core.c |  1 +
>  drivers/iio/light/vcnl4000.c    | 87 ++++++++++++++++++++++++++++++++++++++++-
>  include/linux/iio/types.h       |  1 +
>  3 files changed, 87 insertions(+), 2 deletions(-)
> ---
> base-commit: a39b6ac3781d46ba18193c9dbb2110f31e9bffe9
> change-id: 20231212-vcnl4000-ps-hd-38d42abf9095
> 
> Best regards,
Mårten Lindahl Dec. 18, 2023, 3:08 p.m. UTC | #2
On 12/17/23 15:10, Jonathan Cameron wrote:
> On Fri, 15 Dec 2023 13:43:03 +0100
> Mårten Lindahl <marten.lindahl@axis.com> wrote:
>
>> This patch introduces a new IIO standard attribute to set the bit
>> resolution of the data *_raw readings dynamically using sysfs.
>>
>> The VCNL4040/4200 proximity/ambient light sensors support 12-bit
>> (default) and 16-bit ADC resolutions. This can be dynamically changed,
>> so to support this with the standard iio channel configuration a new iio
>> attribute should be added.
>>
>> The VCNL4040 devices will use this for setting proximity high definition
>> (16-bit resolution).
>>
>> Signed-off-by: Mårten Lindahl <marten.lindahl@axis.com>
> Hi Mårten,
>
> What is the use case?  We've had lots of devices capable of doing this
> sort of resolution change, but never yet come up with a reason to do so for
> the sysfs interfaces on the basis the overhead of the sysfs interfaces is
> high enough the best bet is almost always to use the highest available resolution
> and don't worry that the read takes a little longer.
>
> Jonathan

Hi Jonathan!

My use case probably does not differ from others, in that 12 bits does 
not give enough precision. So it's just a dynamic feature that the 
sensor has, but as you suggest to hard code this to the highest works 
fine for me. I just didn't feel confident enough to do that :)

I'll make a single patch for this change instead. Thanks!

Kind regards

Mårten

>
>> ---
>> Mårten Lindahl (2):
>>        iio: core: Introduce resolution standard attribute
>>        iio: light: vcnl4000: Add ps high definition for vcnl4040
>>
>>   drivers/iio/industrialio-core.c |  1 +
>>   drivers/iio/light/vcnl4000.c    | 87 ++++++++++++++++++++++++++++++++++++++++-
>>   include/linux/iio/types.h       |  1 +
>>   3 files changed, 87 insertions(+), 2 deletions(-)
>> ---
>> base-commit: a39b6ac3781d46ba18193c9dbb2110f31e9bffe9
>> change-id: 20231212-vcnl4000-ps-hd-38d42abf9095
>>
>> Best regards,