Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

* UPISEMI us5182d I2C ALS and Proximity sensor

Required properties:
- compatible: must be "upisemi,usd5182"
- reg: the I2C address of the device

Optional properties:
- upisemi,glass-coef: glass attenuation factor - compensation factor of
                      resolution 1000 for material transmittance.

- upisemi,dark-ths: array of 8 elements containing 16-bit thresholds (adc
                    counts) corresponding to every scale.

- upisemi,upper-dark-gain: 8-bit dark gain compensation factor(4 int and 4
                           fractional bits - Q4.4) applied when light > threshold

- upisemi,lower-dark-gain: 8-bit dark gain compensation factor(4 int and 4
                           fractional bits - Q4.4) applied when light < threshold

- upisemi,continuous: This chip has two power modes: one-shot (chip takes one
                      measurement and then shuts itself down) and continuous (
                      chip takes continuous measurements). The one-shot mode is
                      more power-friendly but the continuous mode may be more
                      reliable. If this property is specified the continuous
                      mode will be used instead of the default one-shot one for
                      raw reads.

If the optional properties are not specified these factors will default to the
values in the below example.
The glass-coef defaults to no compensation for the covering material.
The threshold array defaults to experimental values that work with US5182D
sensor on evaluation board - roughly between 12-32 lux.
There will be no dark-gain compensation by default when ALS > thresh
(0 * dark-gain), and a 1.35 compensation factor when ALS < thresh.

Example:

    usd5182@39 {
                compatible = "upisemi,usd5182";
                reg = <0x39>;
                upisemi,glass-coef = < 1000 >;
                upisemi,dark-ths = /bits/ 16 <170 200 512 512 800 2000 4000 8000>;
                upisemi,upper-dark-gain = /bits/ 8 <0x00>;
                upisemi,lower-dark-gain = /bits/ 8 <0x16>;
    };