1*4882a593Smuzhiyun====================== 2*4882a593SmuzhiyunKernel driver isl29003 3*4882a593Smuzhiyun====================== 4*4882a593Smuzhiyun 5*4882a593SmuzhiyunSupported chips: 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun* Intersil ISL29003 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunPrefix: 'isl29003' 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunAddresses scanned: none 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunDatasheet: 14*4882a593Smuzhiyunhttp://www.intersil.com/data/fn/fn7464.pdf 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunAuthor: Daniel Mack <daniel@caiaq.de> 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunDescription 20*4882a593Smuzhiyun----------- 21*4882a593SmuzhiyunThe ISL29003 is an integrated light sensor with a 16-bit integrating type 22*4882a593SmuzhiyunADC, I2C user programmable lux range select for optimized counts/lux, and 23*4882a593SmuzhiyunI2C multi-function control and monitoring capabilities. The internal ADC 24*4882a593Smuzhiyunprovides 16-bit resolution while rejecting 50Hz and 60Hz flicker caused by 25*4882a593Smuzhiyunartificial light sources. 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunThe driver allows to set the lux range, the bit resolution, the operational 28*4882a593Smuzhiyunmode (see below) and the power state of device and can read the current lux 29*4882a593Smuzhiyunvalue, of course. 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunDetection 33*4882a593Smuzhiyun--------- 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunThe ISL29003 does not have an ID register which could be used to identify 36*4882a593Smuzhiyunit, so the detection routine will just try to read from the configured I2C 37*4882a593Smuzhiyunaddress and consider the device to be present as soon as it ACKs the 38*4882a593Smuzhiyuntransfer. 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun 41*4882a593SmuzhiyunSysfs entries 42*4882a593Smuzhiyun------------- 43*4882a593Smuzhiyun 44*4882a593Smuzhiyunrange: 45*4882a593Smuzhiyun == =========================== 46*4882a593Smuzhiyun 0: 0 lux to 1000 lux (default) 47*4882a593Smuzhiyun 1: 0 lux to 4000 lux 48*4882a593Smuzhiyun 2: 0 lux to 16,000 lux 49*4882a593Smuzhiyun 3: 0 lux to 64,000 lux 50*4882a593Smuzhiyun == =========================== 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunresolution: 53*4882a593Smuzhiyun == ===================== 54*4882a593Smuzhiyun 0: 2^16 cycles (default) 55*4882a593Smuzhiyun 1: 2^12 cycles 56*4882a593Smuzhiyun 2: 2^8 cycles 57*4882a593Smuzhiyun 3: 2^4 cycles 58*4882a593Smuzhiyun == ===================== 59*4882a593Smuzhiyun 60*4882a593Smuzhiyunmode: 61*4882a593Smuzhiyun == ================================================= 62*4882a593Smuzhiyun 0: diode1's current (unsigned 16bit) (default) 63*4882a593Smuzhiyun 1: diode1's current (unsigned 16bit) 64*4882a593Smuzhiyun 2: difference between diodes (l1 - l2, signed 15bit) 65*4882a593Smuzhiyun == ================================================= 66*4882a593Smuzhiyun 67*4882a593Smuzhiyunpower_state: 68*4882a593Smuzhiyun == ================================================= 69*4882a593Smuzhiyun 0: device is disabled (default) 70*4882a593Smuzhiyun 1: device is enabled 71*4882a593Smuzhiyun == ================================================= 72*4882a593Smuzhiyun 73*4882a593Smuzhiyunlux (read only): 74*4882a593Smuzhiyun returns the value from the last sensor reading 75*4882a593Smuzhiyun 76