1*0c6db450SPer-Daniel Olsson============================== 2*0c6db450SPer-Daniel OlssonOPT4060 driver 3*0c6db450SPer-Daniel Olsson============================== 4*0c6db450SPer-Daniel Olsson 5*0c6db450SPer-Daniel Olsson1. Overview 6*0c6db450SPer-Daniel Olsson============================= 7*0c6db450SPer-Daniel Olsson 8*0c6db450SPer-Daniel OlssonThis driver supports the Texas Instrument RGBW high resolution color sensor over 9*0c6db450SPer-Daniel OlssonI2C. 10*0c6db450SPer-Daniel Olssonhttps://www.ti.com/lit/gpn/opt4060 11*0c6db450SPer-Daniel Olsson 12*0c6db450SPer-Daniel OlssonThe driver supports: 13*0c6db450SPer-Daniel Olsson- Raw values for red, green, blue and clear. 14*0c6db450SPer-Daniel Olsson- Illuminance values. 15*0c6db450SPer-Daniel Olsson- Scaled color values for red, green and blue. 16*0c6db450SPer-Daniel Olsson- IIO events for thresholds. 17*0c6db450SPer-Daniel Olsson- IIO triggered buffer using both its own data ready trigger and triggers from 18*0c6db450SPer-Daniel Olssonother drivers. 19*0c6db450SPer-Daniel Olsson 20*0c6db450SPer-Daniel Olsson2. Illuminance calculation 21*0c6db450SPer-Daniel Olsson============================= 22*0c6db450SPer-Daniel Olsson 23*0c6db450SPer-Daniel OlssonIlluminance is calculated using the wide spectrum green channel. 24*0c6db450SPer-Daniel Olsson 25*0c6db450SPer-Daniel Olssonlux = GREEN_RAW x 2.15e-3 26*0c6db450SPer-Daniel Olsson 27*0c6db450SPer-Daniel OlssonThe value is accessed from: 28*0c6db450SPer-Daniel Olsson/sys/bus/iio/devices/iio:deviceX/in_illuminance_input 29*0c6db450SPer-Daniel Olsson 30*0c6db450SPer-Daniel OlssonSee section 8.4.5.2 in the data sheet for additional details. 31*0c6db450SPer-Daniel Olsson 32*0c6db450SPer-Daniel Olsson3. Color scale values 33*0c6db450SPer-Daniel Olsson============================= 34*0c6db450SPer-Daniel Olsson 35*0c6db450SPer-Daniel OlssonThe sensor has different sensitivity for the different color components and 36*0c6db450SPer-Daniel Olssoncompensating factors are exposed from the driver. 37*0c6db450SPer-Daniel Olsson 38*0c6db450SPer-Daniel OlssonThe values are accessed from: 39*0c6db450SPer-Daniel Olsson/sys/bus/iio/devices/iio:deviceX/in_intensity_red_scale 40*0c6db450SPer-Daniel Olsson/sys/bus/iio/devices/iio:deviceX/in_intensity_green_scale 41*0c6db450SPer-Daniel Olsson/sys/bus/iio/devices/iio:deviceX/in_intensity_blue_scale 42*0c6db450SPer-Daniel Olsson 43*0c6db450SPer-Daniel OlssonA userspace application can multiply the raw values with the scale values so 44*0c6db450SPer-Daniel Olssonthat for a particular test light source, typically white, the measurement 45*0c6db450SPer-Daniel Olssonintensity is the same across the different color channels. This is calculated 46*0c6db450SPer-Daniel Olssonin the following way: 47*0c6db450SPer-Daniel Olsson 48*0c6db450SPer-Daniel OlssonR = RED_RAW x SCALE_RED(2.4) 49*0c6db450SPer-Daniel OlssonG = GREEN_RAW x SCALE_GREEN(1.0) 50*0c6db450SPer-Daniel OlssonB = BLUE_RAW x SCALE_BLUE(1.3) 51*0c6db450SPer-Daniel Olsson 52*0c6db450SPer-Daniel OlssonThe data sheet suggests using the scaled values to normalize the scaled R, G 53*0c6db450SPer-Daniel Olssonand B values. This is useful to get a value for the ratio between colors 54*0c6db450SPer-Daniel Olssonindependent of light intensity. A userspace application can do this in the 55*0c6db450SPer-Daniel Olssonfollowing way: 56*0c6db450SPer-Daniel Olsson 57*0c6db450SPer-Daniel OlssonR_NORMALIZED = R / (R + G + B) 58*0c6db450SPer-Daniel OlssonG_NORMALIZED = G / (R + G + B) 59*0c6db450SPer-Daniel OlssonB_NORMALIZED = B / (R + G + B) 60*0c6db450SPer-Daniel Olsson 61*0c6db450SPer-Daniel OlssonSee section 8.4.5.2 in the data sheet for additional details. 62