Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/Documentation/misc-devices/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  bh1770glc.rst   Sprache: unbekannt

 
.. SPDX-License-Identifier: GPL-2.0

=======================
Kernel driver bh1770glc
=======================

Supported chips:

- ROHM BH1770GLC
- OSRAM SFH7770

Data sheet:
Not freely available

Author:
Samu Onkalo <samu.p.onkalo@nokia.com>

Description
-----------
BH1770GLC and SFH7770 are combined ambient light and proximity sensors.
ALS and proximity parts operates on their own, but they shares common I2C
interface and interrupt logic. In principle they can run on their own,
but ALS side results are used to estimate reliability of the proximity sensor.

ALS produces 16 bit lux values. The chip contains interrupt logic to produce
low and high threshold interrupts.

Proximity part contains IR-led driver up to 3 IR leds. The chip measures
amount of reflected IR light and produces proximity result. Resolution is
8 bit. Driver supports only one channel. Driver uses ALS results to estimate
reliability of the proximity results. Thus ALS is always running while
proximity detection is needed.

Driver uses threshold interrupts to avoid need for polling the values.
Proximity low interrupt doesn't exists in the chip. This is simulated
by using a delayed work. As long as there is proximity threshold above
interrupts the delayed work is pushed forward. So, when proximity level goes
below the threshold value, there is no interrupt and the delayed work will
finally run. This is handled as no proximity indication.

Chip state is controlled via runtime pm framework when enabled in config.

Calibscale factor is used to hide differences between the chips. By default
value set to neutral state meaning factor of 1.00. To get proper values,
calibrated source of light is needed as a reference. Calibscale factor is set
so that measurement produces about the expected lux value.

SYSFS
-----

chip_id
 RO - shows detected chip type and version

power_state
 RW - enable / disable chip

 Uses counting logic

      - 1 enables the chip
      - 0 disables the chip

lux0_input
 RO - measured lux value

      sysfs_notify called when threshold interrupt occurs

lux0_sensor_range
 RO - lux0_input max value

lux0_rate
 RW - measurement rate in Hz

lux0_rate_avail
 RO - supported measurement rates

lux0_thresh_above_value
 RW - HI level threshold value

      All results above the value
      trigs an interrupt. 65535 (i.e. sensor_range) disables the above
      interrupt.

lux0_thresh_below_value
 RW - LO level threshold value

      All results below the value
      trigs an interrupt. 0 disables the below interrupt.

lux0_calibscale
 RW - calibration value

      Set to neutral value by default.
      Output results are multiplied with calibscale / calibscale_default
      value.

lux0_calibscale_default
 RO - neutral calibration value

prox0_raw
 RO - measured proximity value

      sysfs_notify called when threshold interrupt occurs

prox0_sensor_range
 RO - prox0_raw max value

prox0_raw_en
 RW - enable / disable proximity

      Uses counting logic

      - 1 enables the proximity
      - 0 disables the proximity

prox0_thresh_above_count
 RW - number of proximity interrupts needed before triggering the event

prox0_rate_above
 RW - Measurement rate (in Hz) when the level is above threshold
 i.e. when proximity on has been reported.

prox0_rate_below
 RW - Measurement rate (in Hz) when the level is below threshold
 i.e. when proximity off has been reported.

prox0_rate_avail
 RO - Supported proximity measurement rates in Hz

prox0_thresh_above0_value
 RW - threshold level which trigs proximity events.

      Filtered by persistence filter (prox0_thresh_above_count)

prox0_thresh_above1_value
 RW - threshold level which trigs event immediately

[ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ]