Add a driver for Intersil's ISL29003 ambient light sensor device plus some documentation. Inspired by tsl2550.c, a driver for a similar device. It is put in drivers/misc for now until the industrial I/O framework gets merged. Signed-off-by: Daniel Mack <daniel@caiaq.de> Acked-by: Jonathan Cameron <jic23@cam.ac.uk> Cc: Jean Delvare <khali@linux-fr.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
Kernel driver isl29003
 | 
						|
=====================
 | 
						|
 | 
						|
Supported chips:
 | 
						|
* Intersil ISL29003
 | 
						|
Prefix: 'isl29003'
 | 
						|
Addresses scanned: none
 | 
						|
Datasheet:
 | 
						|
http://www.intersil.com/data/fn/fn7464.pdf
 | 
						|
 | 
						|
Author: Daniel Mack <daniel@caiaq.de>
 | 
						|
 | 
						|
 | 
						|
Description
 | 
						|
-----------
 | 
						|
The ISL29003 is an integrated light sensor with a 16-bit integrating type
 | 
						|
ADC, I2C user programmable lux range select for optimized counts/lux, and
 | 
						|
I2C multi-function control and monitoring capabilities. The internal ADC
 | 
						|
provides 16-bit resolution while rejecting 50Hz and 60Hz flicker caused by
 | 
						|
artificial light sources.
 | 
						|
 | 
						|
The driver allows to set the lux range, the bit resolution, the operational
 | 
						|
mode (see below) and the power state of device and can read the current lux
 | 
						|
value, of course.
 | 
						|
 | 
						|
 | 
						|
Detection
 | 
						|
---------
 | 
						|
 | 
						|
The ISL29003 does not have an ID register which could be used to identify
 | 
						|
it, so the detection routine will just try to read from the configured I2C
 | 
						|
addess and consider the device to be present as soon as it ACKs the
 | 
						|
transfer.
 | 
						|
 | 
						|
 | 
						|
Sysfs entries
 | 
						|
-------------
 | 
						|
 | 
						|
range:
 | 
						|
	0: 0 lux to 1000 lux (default)
 | 
						|
	1: 0 lux to 4000 lux
 | 
						|
	2: 0 lux to 16,000 lux
 | 
						|
	3: 0 lux to 64,000 lux
 | 
						|
 | 
						|
resolution:
 | 
						|
	0: 2^16 cycles (default)
 | 
						|
	1: 2^12 cycles
 | 
						|
	2: 2^8 cycles
 | 
						|
	3: 2^4 cycles
 | 
						|
 | 
						|
mode:
 | 
						|
	0: diode1's current (unsigned 16bit) (default)
 | 
						|
	1: diode1's current (unsigned 16bit)
 | 
						|
	2: difference between diodes (l1 - l2, signed 15bit)
 | 
						|
 | 
						|
power_state:
 | 
						|
	0: device is disabled (default)
 | 
						|
	1: device is enabled
 | 
						|
 | 
						|
lux (read only):
 | 
						|
	returns the value from the last sensor reading
 | 
						|
 |