[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2974aa13-796c-49ef-bef7-fd7f3f9b7f49@tweaklogic.com>
Date: Tue, 31 Oct 2023 19:08:08 +1030
From: Subhajit Ghosh <subhajit.ghosh@...aklogic.com>
To: Jonathan Cameron <jic23@...nel.org>
Cc: Lars-Peter Clausen <lars@...afoo.de>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Conor Dooley <conor+dt@...nel.org>,
Matti Vaittinen <mazziesaccount@...il.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Paul Gazzillo <paul@...zz.com>,
Matt Ranostay <matt@...ostay.sg>,
Stefan Windfeldt-Prytz <stefan.windfeldt-prytz@...s.com>,
linux-iio@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 2/2] iio: light: Add support for APDS9306 Light Sensor
>
>> +static struct iio_event_spec apds9306_event_spec_als[] = {
>> + {
>> + .type = IIO_EV_TYPE_THRESH,
>> + .dir = IIO_EV_DIR_RISING,
>> + .mask_shared_by_all = BIT(IIO_EV_INFO_VALUE),
>> + }, {
>> + .type = IIO_EV_TYPE_THRESH,
>> + .dir = IIO_EV_DIR_FALLING,
>> + .mask_shared_by_all = BIT(IIO_EV_INFO_VALUE),
>> + }, {
>> + .type = IIO_EV_TYPE_THRESH,
>> + .mask_shared_by_all = BIT(IIO_EV_INFO_PERIOD),
>> + }, {
>> + .type = IIO_EV_TYPE_THRESH_ADAPTIVE,
>> + .mask_shared_by_all = BIT(IIO_EV_INFO_VALUE) |
>> + BIT(IIO_EV_INFO_ENABLE),
>> + }, {
>> + .type = IIO_EV_TYPE_THRESH,
>> + .mask_separate = BIT(IIO_EV_INFO_ENABLE),
> This matches an entry above for type. Don't have separate entries.
>> + },
>> +};
>> +
>> +static struct iio_event_spec apds9306_event_spec_clear[] = {
>> + {
>> + .type = IIO_EV_TYPE_THRESH,
>> + .mask_separate = BIT(IIO_EV_INFO_ENABLE),
>> + },
>> +};
>> +
>> +#define APDS9306_CHANNEL(_type) \
>> + .type = _type, \
>> + .info_mask_shared_by_all = BIT(IIO_CHAN_INFO_INT_TIME) | \
>> + BIT(IIO_CHAN_INFO_SCALE) | BIT(IIO_CHAN_INFO_SAMP_FREQ), \
>> + .info_mask_shared_by_all_available = BIT(IIO_CHAN_INFO_INT_TIME) | \
>> + BIT(IIO_CHAN_INFO_SCALE) | BIT(IIO_CHAN_INFO_SAMP_FREQ), \
>
> Scale on the intensity channel is interesting... What are the units?
> There tend not to be any well defined units for intensity (as opposed
> to illuminance). There may be gain on the signal, but it won't be in untils
> that map directly to a scale userspace should apply. This is one of the
> rare reasons for using the HARDWARE_GAIN element of the ABI.
>
> A tricky corner however as relationship between raw value and hardwaregain
> is not tightly defined (as it can be really weird!)
Hi Jonathan,
Thank you for taking time for reviewing and clearing all my tiny doubts and
queries especially for the dt and versioning part. Much appreciated.
In the above case, should I not expose scale for the "clear" channel? Rather,
how should I expose the "clear" channel to userspace?
Regards,
Subhajit Ghosh
>
>> +
>> +static struct iio_chan_spec apds9306_channels_without_events[] = {
>> + {
>> + APDS9306_CHANNEL(IIO_LIGHT)
>> + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
>> + }, {
>> + APDS9306_CHANNEL(IIO_INTENSITY)
>> + .channel2 = IIO_MOD_LIGHT_CLEAR,
>> + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
>> + .modified = 1,
>> + },
>> +};
>
Powered by blists - more mailing lists