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

From: Emil Gedenryd
Date: Thu Oct 03 2024 - 08:23:30 EST


TI's opt3002 light-to-digital sensor provides the functionality
of an optical power meter within a single device. It shares a lot of
similarities with their opt3001 model but has a wide spectral bandwidth,
ranging from 300 nm to 1000 nm.

This patch set adds support for the TI opt3002 by extending the opt3001
driver. In addition, a missing full-scale range value for the opt3001 is
added, resulting in higher precision when setting event trigger values.

Datasheet: http://www.ti.com/product/OPT3002

Signed-off-by: Emil Gedenryd <emil.gedenryd@xxxxxxxx>
---
Changes in v4:
- Drop applied patch: "iio: light: opt3001: add missing full-scale range value"
- Add num_channels field to opt3001_chip_info
- Use i2c_get_match_data() instead of device_get_match_data()
- Link to v3: https://lore.kernel.org/r/20240916-add_opt3002-v3-0-984b190cd68c@xxxxxxxx

Changes in v3:
- Include difference between opt3001 and opt3002 in commit message for
dt-binding patch.
- Remove whitespace between tags in commit message for opt3002 patch.
- Rename opt300x_chip_info to opt3001_chip_info.
- Add documentation for mathematical constants in opt3001_chip_info.
- Only check return value after opt3001_read_id if chip has id register
in opt3001_probe.
- Change opt3002 channel mask to IIO_CHAN_INFO_RAW.
- Link to v2: https://lore.kernel.org/r/20240913-add_opt3002-v2-0-69e04f840360@xxxxxxxx

Changes in v2:
- Move dt-binding patch to before implementation.
- Fix dt-binding compatible definition.
- Clarify bug description for missing full-scale range value.
- Remove model enum from chip info and all in-function switch-case
statements.
- Move model-specific channels and mathematic constants to chip info.
- Add valid match data to opt3001_id array
- Skip call to function opt3001_read_id() if model doesn't have a device
id register.
- Link to v1: https://lore.kernel.org/r/20240905-add_opt3002-v1-0-a5ae21b924fb@xxxxxxxx

---
Emil Gedenryd (2):
dt-bindings: iio: light: opt3001: add compatible for opt3002
iio: light: opt3001: add support for TI's opt3002 light sensor

.../devicetree/bindings/iio/light/ti,opt3001.yaml | 4 +-
drivers/iio/light/Kconfig | 2 +-
drivers/iio/light/opt3001.c | 189 +++++++++++++++++----
3 files changed, 160 insertions(+), 35 deletions(-)
---
base-commit: e2df62bb0fadc8ae16aa3bb88ee05ee7e037046b
change-id: 20240828-add_opt3002-40552c1a2f77

Best regards,
--
Emil Gedenryd <emil.gedenryd@xxxxxxxx>