xref: /linux/Documentation/iio/opt4060.rst (revision 1260ed77798502de9c98020040d2995008de10cc)
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