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 <[email protected]>
---
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 <[email protected]>
On Fri, 15 Dec 2023 13:43:03 +0100
Mårten Lindahl <[email protected]> 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 <[email protected]>
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,
On 12/17/23 15:10, Jonathan Cameron wrote:
> On Fri, 15 Dec 2023 13:43:03 +0100
> Mårten Lindahl <[email protected]> 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 <[email protected]>
> 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,