1# SPDX-License-Identifier: GPL-2.0-only
2
3#
4# Light sensors
5#
6# When adding new entries keep the list in alphabetical order
7
8menu "Light sensors"
9
10config ACPI_ALS
11	tristate "ACPI Ambient Light Sensor"
12	depends on ACPI
13	select IIO_BUFFER
14	select IIO_TRIGGERED_BUFFER
15	select IIO_KFIFO_BUF
16	help
17	  Say Y here if you want to build a driver for the ACPI0008
18	  Ambient Light Sensor.
19
20	  To compile this driver as a module, choose M here: the module will
21	  be called acpi-als.
22
23config ADJD_S311
24	tristate "ADJD-S311-CR999 digital color sensor"
25	select IIO_BUFFER
26	select IIO_TRIGGERED_BUFFER
27	depends on I2C
28	help
29	  If you say yes here you get support for the Avago ADJD-S311-CR999
30	  digital color light sensor.
31
32	  This driver can also be built as a module.  If so, the module
33	  will be called adjd_s311.
34
35config ADUX1020
36	tristate "ADUX1020 photometric sensor"
37	select REGMAP_I2C
38	depends on I2C
39	help
40	 Say Y here if you want to build a driver for the Analog Devices
41	 ADUX1020 photometric sensor.
42
43	 To compile this driver as a module, choose M here: the
44	 module will be called adux1020.
45
46config AL3010
47	tristate "AL3010 ambient light sensor"
48	depends on I2C
49	help
50	  Say Y here if you want to build a driver for the Dyna Image AL3010
51	  ambient light sensor.
52
53	  To compile this driver as a module, choose M here: the
54	  module will be called al3010.
55
56config AL3320A
57	tristate "AL3320A ambient light sensor"
58	depends on I2C
59	help
60	  Say Y here if you want to build a driver for the Dyna Image AL3320A
61	  ambient light sensor.
62
63	  To compile this driver as a module, choose M here: the
64	  module will be called al3320a.
65
66config APDS9300
67	tristate "APDS9300 ambient light sensor"
68	depends on I2C
69	help
70	  Say Y here if you want to build a driver for the Avago APDS9300
71	  ambient light sensor.
72
73	  To compile this driver as a module, choose M here: the
74	  module will be called apds9300.
75
76config APDS9306
77	tristate "Avago APDS9306 Ambient Light Sensor"
78	depends on I2C
79	select REGMAP_I2C
80	select IIO_GTS_HELPER
81	help
82	  If you say Y or M here, you get support for Avago APDS9306
83	  Ambient Light Sensor.
84
85	  If built as a dynamically linked module, it will be called
86	  apds9306.
87
88config APDS9960
89	tristate "Avago APDS9960 gesture/RGB/ALS/proximity sensor"
90	select REGMAP_I2C
91	select IIO_BUFFER
92	select IIO_KFIFO_BUF
93	depends on I2C
94	help
95	  Say Y here to build I2C interface support for the Avago
96	  APDS9960 gesture/RGB/ALS/proximity sensor.
97
98	  To compile this driver as a module, choose M here: the
99	  module will be called apds9960
100
101config AS73211
102	tristate "AMS AS73211 XYZ color sensor and AMS AS7331 UV sensor"
103	depends on I2C
104	select IIO_BUFFER
105	select IIO_TRIGGERED_BUFFER
106	help
107	 If you say yes here you get support for the AMS AS73211
108	 JENCOLOR(R) Digital XYZ and the AMS AS7331 UVA, UVB and UVC
109	 ultraviolet sensors.
110
111	 For triggered measurements, you will need an additional trigger driver
112	 like IIO_HRTIMER_TRIGGER or IIO_SYSFS_TRIGGER.
113
114	 This driver can also be built as a module.  If so, the module
115	 will be called as73211.
116
117config BH1745
118	tristate "ROHM BH1745 colour sensor"
119	depends on I2C
120	select REGMAP_I2C
121	select IIO_BUFFER
122	select IIO_TRIGGERED_BUFFER
123	select IIO_GTS_HELPER
124	help
125	  Say Y here to build support for the ROHM bh1745 colour sensor.
126
127	  To compile this driver as a module, choose M here: the module will
128	  be called bh1745.
129
130config BH1750
131	tristate "ROHM BH1750 ambient light sensor"
132	depends on I2C
133	help
134	  Say Y here to build support for the ROHM BH1710, BH1715, BH1721,
135	  BH1750, BH1751 ambient light sensors.
136
137	  To compile this driver as a module, choose M here: the module will
138	  be called bh1750.
139
140config BH1780
141	tristate "ROHM BH1780 ambient light sensor"
142	depends on I2C
143	help
144	  Say Y here to build support for the ROHM BH1780GLI ambient
145	  light sensor.
146
147	  To compile this driver as a module, choose M here: the module will
148	  be called bh1780.
149
150config CM32181
151	depends on I2C
152	tristate "CM32181 driver"
153	help
154	  Say Y here if you use cm32181.
155	  This option enables ambient light sensor using
156	  Capella cm32181 device driver.
157
158	  To compile this driver as a module, choose M here:
159	  the module will be called cm32181.
160
161config CM3232
162	depends on I2C
163	tristate "CM3232 ambient light sensor"
164	help
165	  Say Y here if you use cm3232.
166	  This option enables ambient light sensor using
167	  Capella Microsystems cm3232 device driver.
168
169	  To compile this driver as a module, choose M here:
170	  the module will be called cm3232.
171
172config CM3323
173	depends on I2C
174	tristate "Capella CM3323 color light sensor"
175	help
176	  Say Y here if you want to build a driver for Capella CM3323
177	  color sensor.
178
179	  To compile this driver as a module, choose M here: the module will
180	  be called cm3323.
181
182config CM3605
183	tristate "Capella CM3605 ambient light and proximity sensor"
184	help
185	  Say Y here if you want to build a driver for Capella CM3605
186	  ambient light and short range proximity sensor.
187
188	  To compile this driver as a module, choose M here: the module will
189	  be called cm3605.
190
191config CM36651
192	depends on I2C
193	tristate "CM36651 driver"
194	help
195	  Say Y here if you use cm36651.
196	  This option enables proximity & RGB sensor using
197	  Capella cm36651 device driver.
198
199	  To compile this driver as a module, choose M here:
200	  the module will be called cm36651.
201
202config IIO_CROS_EC_LIGHT_PROX
203	tristate "ChromeOS EC Light and Proximity Sensors"
204	depends on IIO_CROS_EC_SENSORS_CORE
205	help
206	  Say Y here if you use the light and proximity sensors
207	  presented by the ChromeOS EC Sensor hub.
208
209	  To compile this driver as a module, choose M here:
210	  the module will be called cros_ec_light_prox.
211
212config GP2AP002
213	tristate "Sharp GP2AP002 Proximity/ALS sensor"
214	depends on I2C
215	select REGMAP
216	help
217	  Say Y here if you have a Sharp GP2AP002 proximity/ALS combo-chip
218	  hooked to an I2C bus.
219
220	  To compile this driver as a module, choose M here: the
221	  module will be called gp2ap002.
222
223config GP2AP020A00F
224	tristate "Sharp GP2AP020A00F Proximity/ALS sensor"
225	depends on I2C
226	select REGMAP_I2C
227	select IIO_BUFFER
228	select IIO_TRIGGERED_BUFFER
229	select IRQ_WORK
230	help
231	  Say Y here if you have a Sharp GP2AP020A00F proximity/ALS combo-chip
232	  hooked to an I2C bus.
233
234	  To compile this driver as a module, choose M here: the
235	  module will be called gp2ap020a00f.
236
237config IQS621_ALS
238	tristate "Azoteq IQS621/622 ambient light sensors"
239	depends on MFD_IQS62X || COMPILE_TEST
240	help
241	  Say Y here if you want to build support for the Azoteq IQS621
242	  and IQS622 ambient light sensors.
243
244	  To compile this driver as a module, choose M here: the module
245	  will be called iqs621-als.
246
247config SENSORS_ISL29018
248	tristate "Intersil 29018 light and proximity sensor"
249	depends on I2C
250	select REGMAP_I2C
251	default n
252	help
253	  If you say yes here you get support for ambient light sensing and
254	  proximity infrared sensing from Intersil ISL29018.
255	  This driver will provide the measurements of ambient light intensity
256	  in lux, proximity infrared sensing and normal infrared sensing.
257	  Data from sensor is accessible via sysfs.
258
259config SENSORS_ISL29028
260	tristate "Intersil ISL29028 Concurrent Light and Proximity Sensor"
261	depends on I2C
262	select REGMAP_I2C
263	help
264	  Provides driver for the Intersil's ISL29028 device.
265	  This driver supports the sysfs interface to get the ALS, IR intensity,
266	  Proximity value via iio. The ISL29028 provides the concurrent sensing
267	  of ambient light and proximity.
268
269config ISL29125
270	tristate "Intersil ISL29125 digital color light sensor"
271	depends on I2C
272	select IIO_BUFFER
273	select IIO_TRIGGERED_BUFFER
274	help
275	  Say Y here if you want to build a driver for the Intersil ISL29125
276	  RGB light sensor for I2C.
277
278	  To compile this driver as a module, choose M here: the module will be
279	  called isl29125.
280
281config ISL76682
282	tristate "Intersil ISL76682 Light Sensor"
283	depends on I2C
284	select REGMAP_I2C
285	help
286	  Say Y here if you want to build a driver for the Intersil ISL76682
287	  Ambient Light Sensor and IR Intensity sensor. This driver provides
288	  the readouts via standard IIO sysfs and device interface. Both ALS
289	  illuminance and IR illuminance are provided raw with separate scale
290	  setting which can be configured via sysfs, the default scale is 1000
291	  lux, other options are 4000/16000/64000 lux.
292
293	  To compile this driver as a module, choose M here: the module will be
294	  called isl76682.
295
296config HID_SENSOR_ALS
297	depends on HID_SENSOR_HUB
298	select IIO_BUFFER
299	select HID_SENSOR_IIO_COMMON
300	select HID_SENSOR_IIO_TRIGGER
301	tristate "HID ALS"
302	help
303	  Say yes here to build support for the HID SENSOR
304	  Ambient light sensor.
305
306	  To compile this driver as a module, choose M here: the
307	  module will be called hid-sensor-als.
308
309config HID_SENSOR_PROX
310	depends on HID_SENSOR_HUB
311	select IIO_BUFFER
312	select HID_SENSOR_IIO_COMMON
313	select HID_SENSOR_IIO_TRIGGER
314	tristate "HID PROX"
315	help
316	  Say yes here to build support for the HID SENSOR
317	  Proximity sensor.
318
319	  To compile this driver as a module, choose M here: the
320	  module will be called hid-sensor-prox.
321
322config JSA1212
323	tristate "JSA1212 ALS and proximity sensor driver"
324	depends on I2C
325	select REGMAP_I2C
326	help
327	  Say Y here if you want to build a IIO driver for JSA1212
328	  proximity & ALS sensor device.
329
330	  To compile this driver as a module, choose M here:
331	  the module will be called jsa1212.
332
333config ROHM_BU27008
334	tristate "ROHM BU27008 color (RGB+C/IR) sensor"
335	depends on I2C
336	select REGMAP_I2C
337	select IIO_GTS_HELPER
338	select IIO_BUFFER
339	select IIO_TRIGGERED_BUFFER
340	help
341	  Enable support for the ROHM BU27008 color sensor.
342	  The ROHM BU27008 is a sensor with 5 photodiodes (red, green,
343	  blue, clear and IR) with four configurable channels. Red and
344	  green being always available and two out of the rest three
345	  (blue, clear, IR) can be selected to be simultaneously measured.
346	  Typical application is adjusting LCD backlight of TVs,
347	  mobile phones and tablet PCs.
348
349config ROHM_BU27034
350	tristate "ROHM BU27034 ambient light sensor"
351	depends on I2C
352	select REGMAP_I2C
353	select IIO_GTS_HELPER
354	select IIO_BUFFER
355	select IIO_KFIFO_BUF
356	help
357	  Enable support for the ROHM BU27034 ambient light sensor. ROHM BU27034
358	  is an ambient light sesnor with 3 channels and 3 photo diodes capable
359	  of detecting a very wide range of illuminance.
360	  Typical application is adjusting LCD and backlight power of TVs and
361	  mobile phones.
362
363config RPR0521
364	tristate "ROHM RPR0521 ALS and proximity sensor driver"
365	depends on I2C
366	select REGMAP_I2C
367	select IIO_BUFFER
368	select IIO_TRIGGERED_BUFFER
369	help
370	  Say Y here if you want to build support for ROHM's RPR0521
371	  ambient light and proximity sensor device.
372
373	  To compile this driver as a module, choose M here:
374	  the module will be called rpr0521.
375
376config SENSORS_LM3533
377	tristate "LM3533 ambient light sensor"
378	depends on MFD_LM3533
379	help
380	  If you say yes here you get support for the ambient light sensor
381	  interface on National Semiconductor / TI LM3533 Lighting Power
382	  chips.
383
384	  The sensor interface can be used to control the LEDs and backlights
385	  of the chip through defining five light zones and three sets of
386	  corresponding output-current values.
387
388	  The driver provides raw and mean adc readings along with the current
389	  light zone through sysfs. A threshold event can be generated on zone
390	  changes. The ALS-control output values can be set per zone for the
391	  three current output channels.
392
393config LTR390
394	tristate "LTR-390UV-01 ambient light and UV sensor"
395	depends on I2C
396	select REGMAP_I2C
397	help
398	  If you say yes here you get support for the Lite-On LTR-390UV-01
399	  ambient light and UV sensor.
400
401	  This driver can also be built as a module.  If so, the module
402	  will be called ltr390.
403
404config LTR501
405	tristate "LTR-501ALS-01 light sensor"
406	depends on I2C
407	select REGMAP_I2C
408	select IIO_BUFFER
409	select IIO_TRIGGERED_BUFFER
410	help
411	  If you say yes here you get support for the Lite-On LTR-501ALS-01
412	  ambient light and proximity sensor. This driver also supports LTR-559
413	  ALS/PS or LTR-301 ALS sensors.
414
415	  This driver can also be built as a module.  If so, the module
416	  will be called ltr501.
417
418config LTRF216A
419	tristate "Liteon LTRF216A Light Sensor"
420	depends on I2C
421	select REGMAP_I2C
422	help
423	  If you say Y or M here, you get support for Liteon LTRF216A
424	  Ambient Light Sensor.
425
426	  If built as a dynamically linked module, it will be called
427	  ltrf216a.
428
429config LV0104CS
430	tristate "LV0104CS Ambient Light Sensor"
431	depends on I2C
432	help
433	  Say Y here if you want to build support for the On Semiconductor
434	  LV0104CS ambient light sensor.
435
436	  To compile this driver as a module, choose M here:
437	  the module will be called lv0104cs.
438
439config MAX44000
440	tristate "MAX44000 Ambient and Infrared Proximity Sensor"
441	depends on I2C
442	select REGMAP_I2C
443	select IIO_BUFFER
444	select IIO_TRIGGERED_BUFFER
445	help
446	  Say Y here if you want to build support for Maxim Integrated's
447	  MAX44000 ambient and infrared proximity sensor device.
448
449	  To compile this driver as a module, choose M here:
450	  the module will be called max44000.
451
452config MAX44009
453	tristate "MAX44009 Ambient Light Sensor"
454	depends on I2C
455	select REGMAP_I2C
456	help
457	 Say Y here if you want to build support for Maxim Integrated's
458	 MAX44009 ambient light sensor device.
459
460	 To compile this driver as a module, choose M here:
461	 the module will be called max44009.
462
463config NOA1305
464	tristate "ON Semiconductor NOA1305 ambient light sensor"
465	depends on I2C
466	select REGMAP_I2C
467	help
468	 Say Y here if you want to build support for the ON Semiconductor
469	 NOA1305 ambient light sensor.
470
471	 To compile this driver as a module, choose M here:
472	 The module will be called noa1305.
473
474config OPT3001
475	tristate "Texas Instruments OPT3001 Light Sensor"
476	depends on I2C
477	help
478	  If you say Y or M here, you get support for Texas Instruments
479	  OPT3001 Ambient Light Sensor.
480
481	  If built as a dynamically linked module, it will be called
482	  opt3001.
483
484config OPT4001
485	tristate "Texas Instruments OPT4001 Light Sensor"
486	depends on I2C
487	select REGMAP_I2C
488	help
489	  If you say Y or M here, you get support for Texas Instruments
490	  OPT4001 Ambient Light Sensor.
491
492	  If built as a dynamically linked module, it will be called
493	  opt4001.
494
495config PA12203001
496	tristate "TXC PA12203001 light and proximity sensor"
497	depends on I2C
498	select REGMAP_I2C
499	help
500	  If you say yes here you get support for the TXC PA12203001
501	  ambient light and proximity sensor.
502
503	  This driver can also be built as a module.  If so, the module
504	  will be called pa12203001.
505
506config SI1133
507	tristate "SI1133 UV Index Sensor and Ambient Light Sensor"
508	depends on I2C
509	select REGMAP_I2C
510	  help
511	  Say Y here if you want to build a driver for the Silicon Labs SI1133
512	  UV Index Sensor and Ambient Light Sensor chip.
513
514	  To compile this driver as a module, choose M here: the module will be
515	  called si1133.
516
517config SI1145
518	tristate "SI1132 and SI1141/2/3/5/6/7 combined ALS, UV index and proximity sensor"
519	depends on I2C
520	select IIO_BUFFER
521	select IIO_TRIGGERED_BUFFER
522	help
523	  Say Y here if you want to build a driver for the Silicon Labs SI1132 or
524	  SI1141/2/3/5/6/7 combined ambient light, UV index and proximity sensor
525	  chips.
526
527	  To compile this driver as a module, choose M here: the module will be
528	  called si1145.
529
530config STK3310
531	tristate "STK3310 ALS and proximity sensor"
532	depends on I2C
533	select REGMAP_I2C
534	help
535	  Say yes here to get support for the Sensortek STK3310 ambient light
536	  and proximity sensor. The STK3311 model is also supported by this
537	  driver.
538
539	  Choosing M will build the driver as a module. If so, the module
540	  will be called stk3310.
541
542config ST_UVIS25
543	tristate "STMicroelectronics UVIS25 sensor driver"
544	depends on (I2C || SPI)
545	select IIO_BUFFER
546	select IIO_TRIGGERED_BUFFER
547	select ST_UVIS25_I2C if (I2C)
548	select ST_UVIS25_SPI if (SPI_MASTER)
549	help
550	  Say yes here to build support for STMicroelectronics UVIS25
551	  uv sensor
552
553	  To compile this driver as a module, choose M here: the module
554	  will be called st_uvis25.
555
556config ST_UVIS25_I2C
557	tristate
558	depends on ST_UVIS25
559	select REGMAP_I2C
560
561config ST_UVIS25_SPI
562	tristate
563	depends on ST_UVIS25
564	select REGMAP_SPI
565
566config TCS3414
567	tristate "TAOS TCS3414 digital color sensor"
568	depends on I2C
569	select IIO_BUFFER
570	select IIO_TRIGGERED_BUFFER
571	help
572	  If you say yes here you get support for the TAOS TCS3414
573	  family of digital color sensors.
574
575	  This driver can also be built as a module.  If so, the module
576	  will be called tcs3414.
577
578config TCS3472
579	tristate "TAOS TCS3472 color light-to-digital converter"
580	depends on I2C
581	select IIO_BUFFER
582	select IIO_TRIGGERED_BUFFER
583	help
584	  If you say yes here you get support for the TAOS TCS3472
585	  family of color light-to-digital converters with IR filter.
586
587	  This driver can also be built as a module.  If so, the module
588	  will be called tcs3472.
589
590config SENSORS_TSL2563
591	tristate "TAOS TSL2560, TSL2561, TSL2562 and TSL2563 ambient light sensors"
592	depends on I2C
593	help
594	  If you say yes here you get support for the Taos TSL2560,
595	  TSL2561, TSL2562 and TSL2563 ambient light sensors.
596
597	  This driver can also be built as a module.  If so, the module
598	  will be called tsl2563.
599
600config TSL2583
601	tristate "TAOS TSL2580, TSL2581 and TSL2583 light-to-digital converters"
602	depends on I2C
603	help
604	  Provides support for the TAOS tsl2580, tsl2581 and tsl2583 devices.
605	  Access ALS data via iio, sysfs.
606
607config TSL2591
608        tristate "TAOS TSL2591 ambient light sensor"
609        depends on I2C
610        help
611          Select Y here for support of the AMS/TAOS TSL2591 ambient light sensor,
612          featuring channels for combined visible + IR intensity and lux illuminance.
613          Access data via iio and sysfs. Supports iio_events.
614
615          To compile this driver as a module, select M: the
616          module will be called tsl2591.
617
618config TSL2772
619	tristate "TAOS TSL/TMD2x71 and TSL/TMD2x72 Family of light and proximity sensors"
620	depends on I2C
621	help
622	  Support for: tsl2571, tsl2671, tmd2671, tsl2771, tmd2771, tsl2572, tsl2672,
623	  tmd2672, tsl2772, tmd2772 devices.
624	  Provides iio_events and direct access via sysfs.
625
626config TSL4531
627	tristate "TAOS TSL4531 ambient light sensors"
628	depends on I2C
629	help
630	  Say Y here if you want to build a driver for the TAOS TSL4531 family
631	  of ambient light sensors with direct lux output.
632
633	  To compile this driver as a module, choose M here: the
634	  module will be called tsl4531.
635
636config US5182D
637	tristate "UPISEMI light and proximity sensor"
638	depends on I2C
639	help
640	  If you say yes here you get support for the UPISEMI US5182D
641	  ambient light and proximity sensor.
642
643	  This driver can also be built as a module.  If so, the module
644	  will be called us5182d.
645
646config VCNL4000
647	tristate "VCNL4000/4010/4020/4200 combined ALS and proximity sensor"
648	select IIO_BUFFER
649	select IIO_TRIGGERED_BUFFER
650	depends on I2C
651	help
652	  Say Y here if you want to build a driver for the Vishay VCNL4000,
653	  VCNL4010, VCNL4020, VCNL4200 combined ambient light and proximity
654	  sensor.
655
656	  To compile this driver as a module, choose M here: the
657	  module will be called vcnl4000.
658
659config VCNL4035
660	tristate "VCNL4035 combined ALS and proximity sensor"
661	select IIO_BUFFER
662	select IIO_TRIGGERED_BUFFER
663	select REGMAP_I2C
664	depends on I2C
665	help
666	  Say Y here if you want to build a driver for the Vishay VCNL4035,
667	  combined ambient light (ALS) and proximity sensor. Currently only ALS
668	  function is available.
669
670	  To compile this driver as a module, choose M here: the
671	  module will be called vcnl4035.
672
673config VEML6030
674	tristate "VEML6030 ambient light sensor"
675	select REGMAP_I2C
676	depends on I2C
677	help
678	  Say Y here if you want to build a driver for the Vishay VEML6030
679	  ambient light sensor (ALS).
680
681	  To compile this driver as a module, choose M here: the
682	  module will be called veml6030.
683
684config VEML6040
685	tristate "VEML6040 RGBW light sensor"
686	select REGMAP_I2C
687	depends on I2C
688	help
689	  Say Y here if you want to build a driver for the Vishay VEML6040
690	  RGBW light sensor.
691
692	  To compile this driver as a module, choose M here: the
693	  module will be called veml6040.
694
695config VEML6070
696	tristate "VEML6070 UV A light sensor"
697	depends on I2C
698	help
699	  Say Y here if you want to build a driver for the Vishay VEML6070 UV A
700	  light sensor.
701
702	  To compile this driver as a module, choose M here: the
703	  module will be called veml6070.
704
705config VEML6075
706	tristate "VEML6075 UVA and UVB light sensor"
707	select REGMAP_I2C
708	depends on I2C
709	help
710	  Say Y here if you want to build a driver for the Vishay VEML6075 UVA
711	  and UVB light sensor.
712
713	  To compile this driver as a module, choose M here: the
714	  module will be called veml6075.
715
716config VL6180
717	tristate "VL6180 ALS, range and proximity sensor"
718	depends on I2C
719	help
720	  Say Y here if you want to build a driver for the STMicroelectronics
721	  VL6180 combined ambient light, range and proximity sensor.
722
723	  To compile this driver as a module, choose M here: the
724	  module will be called vl6180.
725
726config ZOPT2201
727	tristate "ZOPT2201 ALS and UV B sensor"
728	depends on I2C
729	help
730	  Say Y here if you want to build a driver for the IDT
731	  ZOPT2201 ambient light and UV B sensor.
732
733	  To compile this driver as a module, choose M here: the
734	  module will be called zopt2201.
735
736endmenu
737