linux/drivers/iio/light
Javier Carrasco 02324a09cb iio: light: as73211: add support for as7331
The AMS AS7331 is a UV light sensor with three channels: UVA, UVB and
UVC (also known as deep UV and referenced as DUV in the iio core).
Its internal structure and forming blocks are practically identical to
the ones the AS73211 contains: API, internal DAC, I2C interface and
registers, measurement modes, number of channels and pinout.

The only difference between them is the photodiodes used to acquire
light, which means that only some modifications are required to add
support for the AS7331 in the existing driver.

The temperature channel is identical for both devices and only the
channel modifiers of the IIO_INTENSITY channels need to account for the
device type.

The scale values have been obtained from the chapter "7.5 Transfer
Function" of the official datasheet[1] for the configuration chosen as
basis (Nclk = 1024 and GAIN = 1). Those values keep the units from the
datasheet (nW/cm^2), as opposed to the units used for the AS73211
(nW/m^2).

Add a new device-specific data structure to account for the device
differences: channel types and scale of LSB per channel.

[1] https://ams.com/documents/20143/9106314/AS7331_DS001047_4-00.pdf

Tested-by: Christian Eggers <ceggers@arri.de>
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-01-22 18:58:44 +00:00
..
acpi-als.c iio: Rename iio_trigger_poll_chained and add kernel-doc 2023-03-11 12:18:29 +00:00
adjd_s311.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
adux1020.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
al3010.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
al3320a.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
apds9300.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
apds9960.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
as73211.c iio: light: as73211: add support for as7331 2024-01-22 18:58:44 +00:00
bh1750.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
bh1780.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
cm3232.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
cm3323.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
cm3605.c iio: light: cm3605: Convert to platform remove callback returning void 2023-09-23 15:06:55 +01:00
cm32181.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
cm36651.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
cros_ec_light_prox.c iio: cros: Register FIFO callback after sensor is registered 2022-07-18 18:29:13 +01:00
gp2ap002.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
gp2ap020a00f.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
hid-sensor-als.c Revert "iio: hid-sensor-als: Add light color temperature support" 2023-12-19 08:08:20 +01:00
hid-sensor-prox.c iio: light: hid-sensor-prox: Convert to platform remove callback returning void 2023-09-23 15:06:55 +01:00
iqs621-als.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
isl29018.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
isl29028.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
isl29125.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
isl76682.c iio: light: isl76682: remove unreachable code 2023-12-11 19:16:35 +00:00
jsa1212.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
Kconfig iio: light: as73211: add support for as7331 2024-01-22 18:58:44 +00:00
lm3533-als.c iio: light: lm3533-als: Convert to platform remove callback returning void 2023-09-23 15:06:55 +01:00
ltr390.c iio: light: driver for Lite-On ltr390 2023-12-11 19:16:35 +00:00
ltr501.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ltrf216a.c iio: light: ltrf216a: Return floating point values 2023-11-26 18:01:40 +00:00
lv0104cs.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
Makefile iio: light: driver for Lite-On ltr390 2023-12-11 19:16:35 +00:00
max44000.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
max44009.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
noa1305.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
opt3001.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
opt4001.c iio: light: opt4001: Use i2c_get_match_data() 2023-09-12 10:42:03 +01:00
pa12203001.c iio: light: pa1203001: Drop ACPI_PTR() protection. 2023-12-06 17:19:53 +00:00
rohm-bu27008.c iio: bu27008: Add illuminance channel 2023-11-16 19:10:27 +00:00
rohm-bu27034.c iio: light: bu27034: Fix scale format 2023-07-15 18:02:02 +01:00
rpr0521.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
si1133.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
si1145.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
st_uvis25_core.c iio: Rename iio_trigger_poll_chained and add kernel-doc 2023-03-11 12:18:29 +00:00
st_uvis25_i2c.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
st_uvis25_spi.c iio: light: st_uvis25: Use EXPORT_NS_SIMPLE_DEV_PM_OPS() 2022-09-21 18:42:57 +01:00
st_uvis25.h iio:light:st_uvis25: Fix timestamp alignment and prevent data leak. 2020-12-03 19:40:27 +00:00
stk3310.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
tcs3414.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
tcs3472.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
tsl2563.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
tsl2583.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
tsl2591.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
tsl2772.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
tsl4531.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
us5182d.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
vcnl4000.c iio: light: vcnl4000: Don't power on/off chip in config 2023-10-05 18:06:46 +01:00
vcnl4035.c 1st set of IIO new device support, features and cleanup for the 6.5 cycle. 2023-06-15 13:01:55 +02:00
veml6030.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
veml6070.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
veml6075.c iio: light: add VEML6075 UVA and UVB light sensor driver 2023-12-04 13:57:25 +00:00
vl6180.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
zopt2201.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00