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
