linux/Documentation/misc-devices/apds990x.txt
<<
>>
Prefs
   1Kernel driver apds990x
   2======================
   3
   4Supported chips:
   5Avago APDS990X
   6
   7Data sheet:
   8Not freely available
   9
  10Author:
  11Samu Onkalo <samu.p.onkalo@nokia.com>
  12
  13Description
  14-----------
  15
  16APDS990x is a combined ambient light and proximity sensor. ALS and proximity
  17functionality are highly connected. ALS measurement path must be running
  18while the proximity functionality is enabled.
  19
  20ALS produces raw measurement values for two channels: Clear channel
  21(infrared + visible light) and IR only. However, threshold comparisons happen
  22using clear channel only. Lux value and the threshold level on the HW
  23might vary quite much depending the spectrum of the light source.
  24
  25Driver makes necessary conversions to both directions so that user handles
  26only lux values. Lux value is calculated using information from the both
  27channels. HW threshold level is calculated from the given lux value to match
  28with current type of the lightning. Sometimes inaccuracy of the estimations
  29lead to false interrupt, but that doesn't harm.
  30
  31ALS contains 4 different gain steps. Driver automatically
  32selects suitable gain step. After each measurement, reliability of the results
  33is estimated and new measurement is trigged if necessary.
  34
  35Platform data can provide tuned values to the conversion formulas if
  36values are known. Otherwise plain sensor default values are used.
  37
  38Proximity side is little bit simpler. There is no need for complex conversions.
  39It produces directly usable values.
  40
  41Driver controls chip operational state using pm_runtime framework.
  42Voltage regulators are controlled based on chip operational state.
  43
  44SYSFS
  45-----
  46
  47
  48chip_id
  49        RO - shows detected chip type and version
  50
  51power_state
  52        RW - enable / disable chip. Uses counting logic
  53             1 enables the chip
  54             0 disables the chip
  55lux0_input
  56        RO - measured lux value
  57             sysfs_notify called when threshold interrupt occurs
  58
  59lux0_sensor_range
  60        RO - lux0_input max value. Actually never reaches since sensor tends
  61             to saturate much before that. Real max value varies depending
  62             on the light spectrum etc.
  63
  64lux0_rate
  65        RW - measurement rate in Hz
  66
  67lux0_rate_avail
  68        RO - supported measurement rates
  69
  70lux0_calibscale
  71        RW - calibration value. Set to neutral value by default.
  72             Output results are multiplied with calibscale / calibscale_default
  73             value.
  74
  75lux0_calibscale_default
  76        RO - neutral calibration value
  77
  78lux0_thresh_above_value
  79        RW - HI level threshold value. All results above the value
  80             trigs an interrupt. 65535 (i.e. sensor_range) disables the above
  81             interrupt.
  82
  83lux0_thresh_below_value
  84        RW - LO level threshold value. All results below the value
  85             trigs an interrupt. 0 disables the below interrupt.
  86
  87prox0_raw
  88        RO - measured proximity value
  89             sysfs_notify called when threshold interrupt occurs
  90
  91prox0_sensor_range
  92        RO - prox0_raw max value (1023)
  93
  94prox0_raw_en
  95        RW - enable / disable proximity - uses counting logic
  96             1 enables the proximity
  97             0 disables the proximity
  98
  99prox0_reporting_mode
 100        RW - trigger / periodic. In "trigger" mode the driver tells two possible
 101             values: 0 or prox0_sensor_range value. 0 means no proximity,
 102             1023 means proximity. This causes minimal number of interrupts.
 103             In "periodic" mode the driver reports all values above
 104             prox0_thresh_above. This causes more interrupts, but it can give
 105             _rough_ estimate about the distance.
 106
 107prox0_reporting_mode_avail
 108        RO - accepted values to prox0_reporting_mode (trigger, periodic)
 109
 110prox0_thresh_above_value
 111        RW - threshold level which trigs proximity events.
 112
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.