# SPDX-License-Identifier: GPL-2.0-only

#
# Light sensors
#
# When adding new entries keep the list in alphabetical order

menu "Light sensors"

config ACPI_ALS
	tristate "ACPI Ambient Light Sensor"
	depends on ACPI
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select IIO_KFIFO_BUF
	help
	  Say Y here if you want to build a driver for the ACPI0008
	  Ambient Light Sensor.

	  To compile this driver as a module, choose M here: the module will
	  be called acpi-als.

config ADJD_S311
	tristate "ADJD-S311-CR999 digital color sensor"
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	depends on I2C
	help
	  If you say yes here you get support for the Avago ADJD-S311-CR999
	  digital color light sensor.

	  This driver can also be built as a module.  If so, the module
	  will be called adjd_s311.

config ADUX1020
	tristate "ADUX1020 photometric sensor"
	select REGMAP_I2C
	depends on I2C
	help
	 Say Y here if you want to build a driver for the Analog Devices
	 ADUX1020 photometric sensor.

	 To compile this driver as a module, choose M here: the
	 module will be called adux1020.

config AL3010
	tristate "AL3010 ambient light sensor"
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Dyna Image AL3010
	  ambient light sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called al3010.

config AL3320A
	tristate "AL3320A ambient light sensor"
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Dyna Image AL3320A
	  ambient light sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called al3320a.

config APDS9300
	tristate "APDS9300 ambient light sensor"
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Avago APDS9300
	  ambient light sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called apds9300.

config APDS9306
	tristate "Avago APDS9306 Ambient Light Sensor"
	depends on I2C
	select REGMAP_I2C
	select IIO_GTS_HELPER
	help
	  If you say Y or M here, you get support for Avago APDS9306
	  Ambient Light Sensor.

	  If built as a dynamically linked module, it will be called
	  apds9306.

config APDS9960
	tristate "Avago APDS9960 gesture/RGB/ALS/proximity sensor"
	select REGMAP_I2C
	select IIO_BUFFER
	select IIO_KFIFO_BUF
	depends on I2C
	help
	  Say Y here to build I2C interface support for the Avago
	  APDS9960 gesture/RGB/ALS/proximity sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called apds9960

config AS73211
	tristate "AMS AS73211 XYZ color sensor and AMS AS7331 UV sensor"
	depends on I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	 If you say yes here you get support for the AMS AS73211
	 JENCOLOR(R) Digital XYZ and the AMS AS7331 UVA, UVB and UVC
	 ultraviolet sensors.

	 For triggered measurements, you will need an additional trigger driver
	 like IIO_HRTIMER_TRIGGER or IIO_SYSFS_TRIGGER.

	 This driver can also be built as a module.  If so, the module
	 will be called as73211.

config BH1745
	tristate "ROHM BH1745 colour sensor"
	depends on I2C
	select REGMAP_I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select IIO_GTS_HELPER
	help
	  Say Y here to build support for the ROHM bh1745 colour sensor.

	  To compile this driver as a module, choose M here: the module will
	  be called bh1745.

config BH1750
	tristate "ROHM BH1750 ambient light sensor"
	depends on I2C
	help
	  Say Y here to build support for the ROHM BH1710, BH1715, BH1721,
	  BH1750, BH1751 ambient light sensors.

	  To compile this driver as a module, choose M here: the module will
	  be called bh1750.

config BH1780
	tristate "ROHM BH1780 ambient light sensor"
	depends on I2C
	help
	  Say Y here to build support for the ROHM BH1780GLI ambient
	  light sensor.

	  To compile this driver as a module, choose M here: the module will
	  be called bh1780.

config CM32181
	depends on I2C
	tristate "CM32181 driver"
	help
	  Say Y here if you use cm32181.
	  This option enables ambient light sensor using
	  Capella cm32181 device driver.

	  To compile this driver as a module, choose M here:
	  the module will be called cm32181.

config CM3232
	depends on I2C
	tristate "CM3232 ambient light sensor"
	help
	  Say Y here if you use cm3232.
	  This option enables ambient light sensor using
	  Capella Microsystems cm3232 device driver.

	  To compile this driver as a module, choose M here:
	  the module will be called cm3232.

config CM3323
	depends on I2C
	tristate "Capella CM3323 color light sensor"
	help
	  Say Y here if you want to build a driver for Capella CM3323
	  color sensor.

	  To compile this driver as a module, choose M here: the module will
	  be called cm3323.

config CM3605
	tristate "Capella CM3605 ambient light and proximity sensor"
	help
	  Say Y here if you want to build a driver for Capella CM3605
	  ambient light and short range proximity sensor.

	  To compile this driver as a module, choose M here: the module will
	  be called cm3605.

config CM36651
	depends on I2C
	tristate "CM36651 driver"
	help
	  Say Y here if you use cm36651.
	  This option enables proximity & RGB sensor using
	  Capella cm36651 device driver.

	  To compile this driver as a module, choose M here:
	  the module will be called cm36651.

config IIO_CROS_EC_LIGHT_PROX
	tristate "ChromeOS EC Light and Proximity Sensors"
	depends on IIO_CROS_EC_SENSORS_CORE
	help
	  Say Y here if you use the light and proximity sensors
	  presented by the ChromeOS EC Sensor hub.

	  To compile this driver as a module, choose M here:
	  the module will be called cros_ec_light_prox.

config GP2AP002
	tristate "Sharp GP2AP002 Proximity/ALS sensor"
	depends on I2C
	select REGMAP
	help
	  Say Y here if you have a Sharp GP2AP002 proximity/ALS combo-chip
	  hooked to an I2C bus.

	  To compile this driver as a module, choose M here: the
	  module will be called gp2ap002.

config GP2AP020A00F
	tristate "Sharp GP2AP020A00F Proximity/ALS sensor"
	depends on I2C
	select REGMAP_I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select IRQ_WORK
	help
	  Say Y here if you have a Sharp GP2AP020A00F proximity/ALS combo-chip
	  hooked to an I2C bus.

	  To compile this driver as a module, choose M here: the
	  module will be called gp2ap020a00f.

config IQS621_ALS
	tristate "Azoteq IQS621/622 ambient light sensors"
	depends on MFD_IQS62X || COMPILE_TEST
	help
	  Say Y here if you want to build support for the Azoteq IQS621
	  and IQS622 ambient light sensors.

	  To compile this driver as a module, choose M here: the module
	  will be called iqs621-als.

config SENSORS_ISL29018
	tristate "Intersil 29018 light and proximity sensor"
	depends on I2C
	select REGMAP_I2C
	default n
	help
	  If you say yes here you get support for ambient light sensing and
	  proximity infrared sensing from Intersil ISL29018.
	  This driver will provide the measurements of ambient light intensity
	  in lux, proximity infrared sensing and normal infrared sensing.
	  Data from sensor is accessible via sysfs.

config SENSORS_ISL29028
	tristate "Intersil ISL29028 Concurrent Light and Proximity Sensor"
	depends on I2C
	select REGMAP_I2C
	help
	  Provides driver for the Intersil's ISL29028 device.
	  This driver supports the sysfs interface to get the ALS, IR intensity,
	  Proximity value via iio. The ISL29028 provides the concurrent sensing
	  of ambient light and proximity.

config ISL29125
	tristate "Intersil ISL29125 digital color light sensor"
	depends on I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say Y here if you want to build a driver for the Intersil ISL29125
	  RGB light sensor for I2C.

	  To compile this driver as a module, choose M here: the module will be
	  called isl29125.

config ISL76682
	tristate "Intersil ISL76682 Light Sensor"
	depends on I2C
	select REGMAP_I2C
	help
	  Say Y here if you want to build a driver for the Intersil ISL76682
	  Ambient Light Sensor and IR Intensity sensor. This driver provides
	  the readouts via standard IIO sysfs and device interface. Both ALS
	  illuminance and IR illuminance are provided raw with separate scale
	  setting which can be configured via sysfs, the default scale is 1000
	  lux, other options are 4000/16000/64000 lux.

	  To compile this driver as a module, choose M here: the module will be
	  called isl76682.

config HID_SENSOR_ALS
	depends on HID_SENSOR_HUB
	select IIO_BUFFER
	select HID_SENSOR_IIO_COMMON
	select HID_SENSOR_IIO_TRIGGER
	tristate "HID ALS"
	help
	  Say yes here to build support for the HID SENSOR
	  Ambient light sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called hid-sensor-als.

config HID_SENSOR_PROX
	depends on HID_SENSOR_HUB
	select IIO_BUFFER
	select HID_SENSOR_IIO_COMMON
	select HID_SENSOR_IIO_TRIGGER
	tristate "HID PROX"
	help
	  Say yes here to build support for the HID SENSOR
	  Proximity sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called hid-sensor-prox.

config JSA1212
	tristate "JSA1212 ALS and proximity sensor driver"
	depends on I2C
	select REGMAP_I2C
	help
	  Say Y here if you want to build a IIO driver for JSA1212
	  proximity & ALS sensor device.

	  To compile this driver as a module, choose M here:
	  the module will be called jsa1212.

config ROHM_BU27008
	tristate "ROHM BU27008 color (RGB+C/IR) sensor"
	depends on I2C
	select REGMAP_I2C
	select IIO_GTS_HELPER
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Enable support for the ROHM BU27008 color sensor.
	  The ROHM BU27008 is a sensor with 5 photodiodes (red, green,
	  blue, clear and IR) with four configurable channels. Red and
	  green being always available and two out of the rest three
	  (blue, clear, IR) can be selected to be simultaneously measured.
	  Typical application is adjusting LCD backlight of TVs,
	  mobile phones and tablet PCs.

config ROHM_BU27034
	tristate "ROHM BU27034 ambient light sensor"
	depends on I2C
	select REGMAP_I2C
	select IIO_GTS_HELPER
	select IIO_BUFFER
	select IIO_KFIFO_BUF
	help
	  Enable support for the ROHM BU27034 ambient light sensor. ROHM BU27034
	  is an ambient light sesnor with 3 channels and 3 photo diodes capable
	  of detecting a very wide range of illuminance.
	  Typical application is adjusting LCD and backlight power of TVs and
	  mobile phones.

config RPR0521
	tristate "ROHM RPR0521 ALS and proximity sensor driver"
	depends on I2C
	select REGMAP_I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say Y here if you want to build support for ROHM's RPR0521
	  ambient light and proximity sensor device.

	  To compile this driver as a module, choose M here:
	  the module will be called rpr0521.

config SENSORS_LM3533
	tristate "LM3533 ambient light sensor"
	depends on MFD_LM3533
	help
	  If you say yes here you get support for the ambient light sensor
	  interface on National Semiconductor / TI LM3533 Lighting Power
	  chips.

	  The sensor interface can be used to control the LEDs and backlights
	  of the chip through defining five light zones and three sets of
	  corresponding output-current values.

	  The driver provides raw and mean adc readings along with the current
	  light zone through sysfs. A threshold event can be generated on zone
	  changes. The ALS-control output values can be set per zone for the
	  three current output channels.

config LTR390
	tristate "LTR-390UV-01 ambient light and UV sensor"
	depends on I2C
	select REGMAP_I2C
	help
	  If you say yes here you get support for the Lite-On LTR-390UV-01
	  ambient light and UV sensor.

	  This driver can also be built as a module.  If so, the module
	  will be called ltr390.

config LTR501
	tristate "LTR-501ALS-01 light sensor"
	depends on I2C
	select REGMAP_I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  If you say yes here you get support for the Lite-On LTR-501ALS-01
	  ambient light and proximity sensor. This driver also supports LTR-559
	  ALS/PS or LTR-301 ALS sensors.

	  This driver can also be built as a module.  If so, the module
	  will be called ltr501.

config LTRF216A
	tristate "Liteon LTRF216A Light Sensor"
	depends on I2C
	select REGMAP_I2C
	help
	  If you say Y or M here, you get support for Liteon LTRF216A
	  Ambient Light Sensor.

	  If built as a dynamically linked module, it will be called
	  ltrf216a.

config LV0104CS
	tristate "LV0104CS Ambient Light Sensor"
	depends on I2C
	help
	  Say Y here if you want to build support for the On Semiconductor
	  LV0104CS ambient light sensor.

	  To compile this driver as a module, choose M here:
	  the module will be called lv0104cs.

config MAX44000
	tristate "MAX44000 Ambient and Infrared Proximity Sensor"
	depends on I2C
	select REGMAP_I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say Y here if you want to build support for Maxim Integrated's
	  MAX44000 ambient and infrared proximity sensor device.

	  To compile this driver as a module, choose M here:
	  the module will be called max44000.

config MAX44009
	tristate "MAX44009 Ambient Light Sensor"
	depends on I2C
	select REGMAP_I2C
	help
	 Say Y here if you want to build support for Maxim Integrated's
	 MAX44009 ambient light sensor device.

	 To compile this driver as a module, choose M here:
	 the module will be called max44009.

config NOA1305
	tristate "ON Semiconductor NOA1305 ambient light sensor"
	depends on I2C
	select REGMAP_I2C
	help
	 Say Y here if you want to build support for the ON Semiconductor
	 NOA1305 ambient light sensor.

	 To compile this driver as a module, choose M here:
	 The module will be called noa1305.

config OPT3001
	tristate "Texas Instruments OPT3001 Light Sensor"
	depends on I2C
	help
	  If you say Y or M here, you get support for Texas Instruments
	  OPT3001 Ambient Light Sensor.

	  If built as a dynamically linked module, it will be called
	  opt3001.

config OPT4001
	tristate "Texas Instruments OPT4001 Light Sensor"
	depends on I2C
	select REGMAP_I2C
	help
	  If you say Y or M here, you get support for Texas Instruments
	  OPT4001 Ambient Light Sensor.

	  If built as a dynamically linked module, it will be called
	  opt4001.

config PA12203001
	tristate "TXC PA12203001 light and proximity sensor"
	depends on I2C
	select REGMAP_I2C
	help
	  If you say yes here you get support for the TXC PA12203001
	  ambient light and proximity sensor.

	  This driver can also be built as a module.  If so, the module
	  will be called pa12203001.

config SI1133
	tristate "SI1133 UV Index Sensor and Ambient Light Sensor"
	depends on I2C
	select REGMAP_I2C
	  help
	  Say Y here if you want to build a driver for the Silicon Labs SI1133
	  UV Index Sensor and Ambient Light Sensor chip.

	  To compile this driver as a module, choose M here: the module will be
	  called si1133.

config SI1145
	tristate "SI1132 and SI1141/2/3/5/6/7 combined ALS, UV index and proximity sensor"
	depends on I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say Y here if you want to build a driver for the Silicon Labs SI1132 or
	  SI1141/2/3/5/6/7 combined ambient light, UV index and proximity sensor
	  chips.

	  To compile this driver as a module, choose M here: the module will be
	  called si1145.

config STK3310
	tristate "STK3310 ALS and proximity sensor"
	depends on I2C
	select REGMAP_I2C
	help
	  Say yes here to get support for the Sensortek STK3310 ambient light
	  and proximity sensor. The STK3311 model is also supported by this
	  driver.

	  Choosing M will build the driver as a module. If so, the module
	  will be called stk3310.

config ST_UVIS25
	tristate "STMicroelectronics UVIS25 sensor driver"
	depends on (I2C || SPI)
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select ST_UVIS25_I2C if (I2C)
	select ST_UVIS25_SPI if (SPI_MASTER)
	help
	  Say yes here to build support for STMicroelectronics UVIS25
	  uv sensor

	  To compile this driver as a module, choose M here: the module
	  will be called st_uvis25.

config ST_UVIS25_I2C
	tristate
	depends on ST_UVIS25
	select REGMAP_I2C

config ST_UVIS25_SPI
	tristate
	depends on ST_UVIS25
	select REGMAP_SPI

config TCS3414
	tristate "TAOS TCS3414 digital color sensor"
	depends on I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  If you say yes here you get support for the TAOS TCS3414
	  family of digital color sensors.

	  This driver can also be built as a module.  If so, the module
	  will be called tcs3414.

config TCS3472
	tristate "TAOS TCS3472 color light-to-digital converter"
	depends on I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  If you say yes here you get support for the TAOS TCS3472
	  family of color light-to-digital converters with IR filter.

	  This driver can also be built as a module.  If so, the module
	  will be called tcs3472.

config SENSORS_TSL2563
	tristate "TAOS TSL2560, TSL2561, TSL2562 and TSL2563 ambient light sensors"
	depends on I2C
	help
	  If you say yes here you get support for the Taos TSL2560,
	  TSL2561, TSL2562 and TSL2563 ambient light sensors.

	  This driver can also be built as a module.  If so, the module
	  will be called tsl2563.

config TSL2583
	tristate "TAOS TSL2580, TSL2581 and TSL2583 light-to-digital converters"
	depends on I2C
	help
	  Provides support for the TAOS tsl2580, tsl2581 and tsl2583 devices.
	  Access ALS data via iio, sysfs.

config TSL2591
        tristate "TAOS TSL2591 ambient light sensor"
        depends on I2C
        help
          Select Y here for support of the AMS/TAOS TSL2591 ambient light sensor,
          featuring channels for combined visible + IR intensity and lux illuminance.
          Access data via iio and sysfs. Supports iio_events.

          To compile this driver as a module, select M: the
          module will be called tsl2591.

config TSL2772
	tristate "TAOS TSL/TMD2x71 and TSL/TMD2x72 Family of light and proximity sensors"
	depends on I2C
	help
	  Support for: tsl2571, tsl2671, tmd2671, tsl2771, tmd2771, tsl2572, tsl2672,
	  tmd2672, tsl2772, tmd2772 devices.
	  Provides iio_events and direct access via sysfs.

config TSL4531
	tristate "TAOS TSL4531 ambient light sensors"
	depends on I2C
	help
	  Say Y here if you want to build a driver for the TAOS TSL4531 family
	  of ambient light sensors with direct lux output.

	  To compile this driver as a module, choose M here: the
	  module will be called tsl4531.

config US5182D
	tristate "UPISEMI light and proximity sensor"
	depends on I2C
	help
	  If you say yes here you get support for the UPISEMI US5182D
	  ambient light and proximity sensor.

	  This driver can also be built as a module.  If so, the module
	  will be called us5182d.

config VCNL4000
	tristate "VCNL4000/4010/4020/4200 combined ALS and proximity sensor"
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Vishay VCNL4000,
	  VCNL4010, VCNL4020, VCNL4200 combined ambient light and proximity
	  sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called vcnl4000.

config VCNL4035
	tristate "VCNL4035 combined ALS and proximity sensor"
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select REGMAP_I2C
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Vishay VCNL4035,
	  combined ambient light (ALS) and proximity sensor. Currently only ALS
	  function is available.

	  To compile this driver as a module, choose M here: the
	  module will be called vcnl4035.

config VEML6030
	tristate "VEML6030 ambient light sensor"
	select REGMAP_I2C
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Vishay VEML6030
	  ambient light sensor (ALS).

	  To compile this driver as a module, choose M here: the
	  module will be called veml6030.

config VEML6040
	tristate "VEML6040 RGBW light sensor"
	select REGMAP_I2C
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Vishay VEML6040
	  RGBW light sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called veml6040.

config VEML6070
	tristate "VEML6070 UV A light sensor"
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Vishay VEML6070 UV A
	  light sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called veml6070.

config VEML6075
	tristate "VEML6075 UVA and UVB light sensor"
	select REGMAP_I2C
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Vishay VEML6075 UVA
	  and UVB light sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called veml6075.

config VL6180
	tristate "VL6180 ALS, range and proximity sensor"
	depends on I2C
	help
	  Say Y here if you want to build a driver for the STMicroelectronics
	  VL6180 combined ambient light, range and proximity sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called vl6180.

config ZOPT2201
	tristate "ZOPT2201 ALS and UV B sensor"
	depends on I2C
	help
	  Say Y here if you want to build a driver for the IDT
	  ZOPT2201 ambient light and UV B sensor.

	  To compile this driver as a module, choose M here: the
	  module will be called zopt2201.

endmenu
