Re: [PATCH v4 2/2] iio: light: opt3001: add support for TI's opt3002 light sensor

From: Jonathan Cameron
Date: Sun Oct 06 2024 - 09:16:46 EST


On Thu, 3 Oct 2024 14:22:17 +0200
Emil Gedenryd <emil.gedenryd@xxxxxxxx> wrote:

> TI's opt3002 light sensor shares most properties with the opt3001
> model, with the exception of supporting a wider spectrum range.
>
> Add support for TI's opt3002 by extending the TI opt3001 driver.
>
> Datasheet: https://www.ti.com/product/OPT3002
> Signed-off-by: Emil Gedenryd <emil.gedenryd@xxxxxxxx>
> ---
> drivers/iio/light/Kconfig | 2 +-
> drivers/iio/light/opt3001.c | 189 ++++++++++++++++++++++++++++++++++++--------
> 2 files changed, 157 insertions(+), 34 deletions(-)
>
> diff --git a/drivers/iio/light/Kconfig b/drivers/iio/light/Kconfig
> index b68dcc1fbaca..c35bf962dae6 100644
> --- a/drivers/iio/light/Kconfig
> +++ b/drivers/iio/light/Kconfig
> @@ -461,7 +461,7 @@ config OPT3001
> depends on I2C
> help
> If you say Y or M here, you get support for Texas Instruments
> - OPT3001 Ambient Light Sensor.
> + OPT3001 Ambient Light Sensor, OPT3002 Light-to-Digital Sensor.
>
> If built as a dynamically linked module, it will be called
> opt3001.
> diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c
> index 176e54bb48c3..ff7fc0d4b08f 100644
> --- a/drivers/iio/light/opt3001.c
> +++ b/drivers/iio/light/opt3001.c
> @@ -70,6 +70,35 @@
> #define OPT3001_RESULT_READY_SHORT 150
> #define OPT3001_RESULT_READY_LONG 1000
>
> +struct opt3001_scale {
> + int val;
> + int val2;
> +};
> +
> +struct opt3001_chip_info {
> + const struct iio_chan_spec (*channels)[2];
> + enum iio_chan_type chan_type;
> + int num_channels;
> +
> + const struct opt3001_scale (*scales)[12];
This doesn't compile for me as one of the two options only
has 11 entries. You could either force them to be 12
entries each or use a pointer without the size and
add a num_scales entry in here.

Jonathan