[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241006141624.3fa5bf34@jic23-huawei>
Date: Sun, 6 Oct 2024 14:16:24 +0100
From: Jonathan Cameron <jic23@...nel.org>
To: Emil Gedenryd <emil.gedenryd@...s.com>
Cc: Lars-Peter Clausen <lars@...afoo.de>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley
<conor+dt@...nel.org>, Andreas Dannenberg <dannenberg@...com>,
<linux-iio@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<devicetree@...r.kernel.org>, <kernel@...s.com>
Subject: Re: [PATCH v4 2/2] iio: light: opt3001: add support for TI's
opt3002 light sensor
On Thu, 3 Oct 2024 14:22:17 +0200
Emil Gedenryd <emil.gedenryd@...s.com> 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@...s.com>
> ---
> 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
Powered by blists - more mailing lists