Messages in this thread | | | Date | Fri, 17 Mar 2023 16:48:41 +0200 | Subject | Re: [PATCH v4 7/8] iio: light: ROHM BU27034 Ambient Light Sensor | From | Matti Vaittinen <> |
| |
On 3/17/23 16:44, Matti Vaittinen wrote: > ROHM BU27034 is an ambient light sensor with 3 channels and 3 photo diodes > capable of detecting a very wide range of illuminance. Typical application > is adjusting LCD and backlight power of TVs and mobile phones. > > Add initial support for the ROHM BU27034 ambient light sensor. > > NOTE: > - Driver exposes 4 channels. One IIO_LIGHT channel providing the > calculated lux values based on measured data from diodes #0 and > #1. In addition, 3 IIO_INTENSITY channels are emitting the raw > register data from all diodes for more intense user-space > computations. > - Sensor has GAIN values that can be adjusted from 1x to 4096x. > - Sensor has adjustible measurement times of 5, 55, 100, 200 and > 400 mS. Driver does not support 5 mS which has special > limitations. > - Driver exposes standard 'scale' adjustment which is > implemented by: > 1) Trying to adjust only the GAIN > 2) If GAIN adjustment alone can't provide requested > scale, adjusting both the time and the gain is > attempted. > - Driver exposes writable INT_TIME property that can be used > for adjusting the measurement time. Time adjustment will also > cause the driver to try to adjust the GAIN so that the > overall scale is kept as close to the original as possible. > > Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> > > --- > Changes > v3 => v4: > - use min_t() for division by zero check > - adapt to new GTS helper header location > - calculate luxes not milli luxes > - drop scale for PROCESSED channel > - comment improvements > - do not allow changing gain (scale) for channel 2. > - 'tie' channel 2 scale to channel 0 scale > This is because channel 0 and channel 2 GAIN settings share part of > the bits in the register. This means that setting one will also > impact the other. The v3 of the patches attempted to work-around > this by only disallowing the channel 2 gain setting to set the bits > which were shared with channel 0 gain. This does not work because > setting channel 0 gain (which was allowed to set also the shared > bits) could result unsupported bit combinations for channel 2 gain. > Thus it is safest to always set also the channel 2 gain to same > value as channel 0 gain. > - Use the correct integration time (55 mS) in the gain table as the > calcuations can be done based on the time multiplier. > - styling >
And right after sending out this version I realized I forgot to run spell-checker for the comments. I will do that for v5 - please bear with me.
Yours, -- Matti
-- Matti Vaittinen Linux kernel developer at ROHM Semiconductors Oulu Finland
~~ When things go utterly wrong vim users can always type :help! ~~
| |