~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/misc-devices/bh1770glc.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 =======================
  4 Kernel driver bh1770glc
  5 =======================
  6 
  7 Supported chips:
  8 
  9 - ROHM BH1770GLC
 10 - OSRAM SFH7770
 11 
 12 Data sheet:
 13 Not freely available
 14 
 15 Author:
 16 Samu Onkalo <samu.p.onkalo@nokia.com>
 17 
 18 Description
 19 -----------
 20 BH1770GLC and SFH7770 are combined ambient light and proximity sensors.
 21 ALS and proximity parts operates on their own, but they shares common I2C
 22 interface and interrupt logic. In principle they can run on their own,
 23 but ALS side results are used to estimate reliability of the proximity sensor.
 24 
 25 ALS produces 16 bit lux values. The chip contains interrupt logic to produce
 26 low and high threshold interrupts.
 27 
 28 Proximity part contains IR-led driver up to 3 IR leds. The chip measures
 29 amount of reflected IR light and produces proximity result. Resolution is
 30 8 bit. Driver supports only one channel. Driver uses ALS results to estimate
 31 reliability of the proximity results. Thus ALS is always running while
 32 proximity detection is needed.
 33 
 34 Driver uses threshold interrupts to avoid need for polling the values.
 35 Proximity low interrupt doesn't exists in the chip. This is simulated
 36 by using a delayed work. As long as there is proximity threshold above
 37 interrupts the delayed work is pushed forward. So, when proximity level goes
 38 below the threshold value, there is no interrupt and the delayed work will
 39 finally run. This is handled as no proximity indication.
 40 
 41 Chip state is controlled via runtime pm framework when enabled in config.
 42 
 43 Calibscale factor is used to hide differences between the chips. By default
 44 value set to neutral state meaning factor of 1.00. To get proper values,
 45 calibrated source of light is needed as a reference. Calibscale factor is set
 46 so that measurement produces about the expected lux value.
 47 
 48 SYSFS
 49 -----
 50 
 51 chip_id
 52         RO - shows detected chip type and version
 53 
 54 power_state
 55         RW - enable / disable chip
 56 
 57         Uses counting logic
 58 
 59              - 1 enables the chip
 60              - 0 disables the chip
 61 
 62 lux0_input
 63         RO - measured lux value
 64 
 65              sysfs_notify called when threshold interrupt occurs
 66 
 67 lux0_sensor_range
 68         RO - lux0_input max value
 69 
 70 lux0_rate
 71         RW - measurement rate in Hz
 72 
 73 lux0_rate_avail
 74         RO - supported measurement rates
 75 
 76 lux0_thresh_above_value
 77         RW - HI level threshold value
 78 
 79              All results above the value
 80              trigs an interrupt. 65535 (i.e. sensor_range) disables the above
 81              interrupt.
 82 
 83 lux0_thresh_below_value
 84         RW - LO level threshold value
 85 
 86              All results below the value
 87              trigs an interrupt. 0 disables the below interrupt.
 88 
 89 lux0_calibscale
 90         RW - calibration value
 91 
 92              Set to neutral value by default.
 93              Output results are multiplied with calibscale / calibscale_default
 94              value.
 95 
 96 lux0_calibscale_default
 97         RO - neutral calibration value
 98 
 99 prox0_raw
100         RO - measured proximity value
101 
102              sysfs_notify called when threshold interrupt occurs
103 
104 prox0_sensor_range
105         RO - prox0_raw max value
106 
107 prox0_raw_en
108         RW - enable / disable proximity
109 
110              Uses counting logic
111 
112              - 1 enables the proximity
113              - 0 disables the proximity
114 
115 prox0_thresh_above_count
116         RW - number of proximity interrupts needed before triggering the event
117 
118 prox0_rate_above
119         RW - Measurement rate (in Hz) when the level is above threshold
120         i.e. when proximity on has been reported.
121 
122 prox0_rate_below
123         RW - Measurement rate (in Hz) when the level is below threshold
124         i.e. when proximity off has been reported.
125 
126 prox0_rate_avail
127         RO - Supported proximity measurement rates in Hz
128 
129 prox0_thresh_above0_value
130         RW - threshold level which trigs proximity events.
131 
132              Filtered by persistence filter (prox0_thresh_above_count)
133 
134 prox0_thresh_above1_value
135         RW - threshold level which trigs event immediately

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php