[PATCH v6 0/5] Support for Avago APDS9306 Ambient Light Sensor

From: Subhajit Ghosh
Date: Tue Feb 06 2024 - 08:01:02 EST


Support for Avago APDS9306 Ambient Light Sensor.

Driver support for Avago (Broadcom) APDS9306 Ambient Light Sensor.
It has two channels - ALS and CLEAR. The ALS (Ambient Light Sensor)
channel approximates the response of the human-eye providing direct
read out where the output count is proportional to ambient light levels.
It is internally temperature compensated and rejects 50Hz and 60Hz flicker
caused by artificial light sources. Hardware interrupt configuration is
optional. It is a low power device with 20 bit resolution and has
configurable adaptive interrupt mode and interrupt persistence mode.
The device also features inbuilt hardware gain, multiple integration time
selection options and sampling frequency selection options.

This driver also uses the IIO GTS (Gain Time Scale) Helpers Namespace for
Scales, Gains and Integration time implementation.

Link: https://docs.broadcom.com/doc/AV02-4755EN

1 directory, 18 files

v5 -> v6:
- Changes as per review
- Update kernel doc for private data
- Change IIO Event Spec definitions
- Update guard mutex lock implementation
- Add pm_runtime_get()
- Update styling
Link: https://lore.kernel.org/all/20240204134056.5dc64e8b@jic23-huawei/

v5 -> v6 Bindings
- Write proper commit messages
- Add vdd-supply in a separate commit
- Add Interrupt macro in a separate commit
Link: https://lore.kernel.org/all/1d0a80a6-dba5-4db8-a7a8-73d4ffe7a37e@xxxxxxxxxx/

v2 -> v5:
- Bumped up the version:
RFC->v0->v1->v2->v3 (Earlier scheme)
v1->v2->v3->v4->v5 (Scheme after review) (Current scheme)
Link: https://lore.kernel.org/all/20231028143631.2545f93e@jic23-huawei/

- Added separate patch to merge schemas for APDS9300 and APDS9906. Added
APDS9306 support on top of that.
Link: https://lore.kernel.org/lkml/4e785d2e-d310-4592-a75a-13549938dcef@xxxxxxxxxx/
Link: https://lore.kernel.org/lkml/20231028142944.7e210eb6@jic23-huawei/

- Removed scale attribute for Intensity channel:
Link: https://lore.kernel.org/all/20231204095108.22f89718@jic23-huawei/

- Dropped caching of hardware gain, repeat rate and integration time and
updated code as per earlier reviews.
Link: https://lore.kernel.org/lkml/20231028142944.7e210eb6@jic23-huawei/

- Added descriptive commit messages
- Fixed wrongly formatted commit messages
- Added changelog in right positions

- Link to v2:
https://lore.kernel.org/lkml/20231027074545.6055-3-subhajit.ghosh@xxxxxxxxxxxxxx/

v2 -> v5 Bindings:
- Removed 'required' for Interrupts and 'oneOf' for compatibility strings
as per below reviews:
Link: https://lore.kernel.org/lkml/20231028142944.7e210eb6@jic23-huawei/
Link: https://lore.kernel.org/lkml/22e9e5e9-d26a-46e9-8986-5062bbfd72ec@xxxxxxxxxx/

- Implemented changes as per previous reviews:
Link: https://lore.kernel.org/lkml/20231028142944.7e210eb6@jic23-huawei/
Link: https://lore.kernel.org/lkml/22e9e5e9-d26a-46e9-8986-5062bbfd72ec@xxxxxxxxxx/

Subhajit Ghosh (5):
dt-bindings: iio: light: Merge APDS9300 and APDS9960 schemas
dt-bindings: iio: light: adps9300: Add property vdd-supply
dt-bindings: iio: light: adps9300: Update interrupt definitions
dt-bindings: iio: light: Avago APDS9306
iio: light: Add support for APDS9306 Light Sensor

.../bindings/iio/light/avago,apds9300.yaml | 20 +-
.../bindings/iio/light/avago,apds9960.yaml | 44 -
drivers/iio/light/Kconfig | 12 +
drivers/iio/light/Makefile | 1 +
drivers/iio/light/apds9306.c | 1335 +++++++++++++++++
5 files changed, 1363 insertions(+), 49 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/iio/light/avago,apds9960.yaml
create mode 100644 drivers/iio/light/apds9306.c


base-commit: b555d191561a7f89b8d2108dff687d9bc4284e48
--
2.34.1