iio: light: Add APDS9160 ALS & Proximity sensor driver

APDS9160 is a combination of ALS and proximity sensors.

This patch add supports for:
    - Intensity clear data and illuminance data
    - Proximity data
    - Gain control, rate control
    - Event thresholds

Signed-off-by: Mikael Gonella-Bolduc <mgonellabolduc@dimonoff.com>
Link: https://patch.msgid.link/20250122-apds9160-driver-v5-2-5393be10279a@dimonoff.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
Mikael Gonella-Bolduc 2025-01-22 17:59:34 -05:00 committed by Jonathan Cameron
parent be464661e7
commit ec08c39546
4 changed files with 1613 additions and 0 deletions

View File

@ -4427,6 +4427,13 @@ F: kernel/bpf/stackmap.c
F: kernel/trace/bpf_trace.c
F: lib/buildid.c
BROADCOM APDS9160 AMBIENT LIGHT SENSOR AND PROXIMITY DRIVER
M: Mikael Gonella-Bolduc <m.gonella.bolduc@gmail.com>
L: linux-iio@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/iio/light/brcm,apds9160.yaml
F: drivers/iio/light/apds9160.c
BROADCOM ASP 2.0 ETHERNET DRIVER
M: Justin Chen <justin.chen@broadcom.com>
M: Florian Fainelli <florian.fainelli@broadcom.com>

View File

@ -63,6 +63,17 @@ config AL3320A
To compile this driver as a module, choose M here: the
module will be called al3320a.
config APDS9160
tristate "APDS9160 combined als and proximity sensor"
depends on I2C
select REGMAP_I2C
help
Say Y here if you want to build support for a Broadcom APDS9160
combined ambient light and proximity sensor.
To compile this driver as a module, choose M here: the
module will be called apds9160.
config APDS9300
tristate "APDS9300 ambient light sensor"
depends on I2C

View File

@ -9,6 +9,7 @@ obj-$(CONFIG_ADJD_S311) += adjd_s311.o
obj-$(CONFIG_ADUX1020) += adux1020.o
obj-$(CONFIG_AL3010) += al3010.o
obj-$(CONFIG_AL3320A) += al3320a.o
obj-$(CONFIG_APDS9160) += apds9160.o
obj-$(CONFIG_APDS9300) += apds9300.o
obj-$(CONFIG_APDS9306) += apds9306.o
obj-$(CONFIG_APDS9960) += apds9960.o

1594
drivers/iio/light/apds9160.c Normal file

File diff suppressed because it is too large Load Diff