€•ËXŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ)/translations/zh_CN/misc-devices/apds990x”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/zh_TW/misc-devices/apds990x”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/it_IT/misc-devices/apds990x”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ja_JP/misc-devices/apds990x”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ko_KR/misc-devices/apds990x”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/pt_BR/misc-devices/apds990x”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/sp_SP/misc-devices/apds990x”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒC/var/lib/git/docbuild/linux/Documentation/misc-devices/apds990x.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒKernel driver apds990x”h]”hŒKernel driver apds990x”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒSupported chips: Avago APDS990X”h]”hŒSupported chips: Avago APDS990X”…””}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)”}”(hŒ Data sheet: Not freely available”h]”hŒ Data sheet: Not freely available”…””}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhÊh²hubhÞ)”}”(hŒ-Author: Samu Onkalo ”h]”(hŒAuthor: Samu Onkalo <”…””}”(hhûh²hh³Nh´NubhŒ reference”“”)”}”(hŒsamu.p.onkalo@nokia.com”h]”hŒsamu.p.onkalo@nokia.com”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:samu.p.onkalo@nokia.com”uh1jhhûubhŒ>”…””}”(hhûh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhÊh²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Description”h]”hŒ Description”…””}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´KubhÞ)”}”(hŒÃAPDS990x is a combined ambient light and proximity sensor. ALS and proximity functionality are highly connected. ALS measurement path must be running while the proximity functionality is enabled.”h]”hŒÃAPDS990x is a combined ambient light and proximity sensor. ALS and proximity functionality are highly connected. ALS measurement path must be running while the proximity functionality is enabled.”…””}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjh²hubhÞ)”}”(hXALS produces raw measurement values for two channels: Clear channel (infrared + visible light) and IR only. However, threshold comparisons happen using clear channel only. Lux value and the threshold level on the HW might vary quite much depending the spectrum of the light source.”h]”hXALS produces raw measurement values for two channels: Clear channel (infrared + visible light) and IR only. However, threshold comparisons happen using clear channel only. Lux value and the threshold level on the HW might vary quite much depending the spectrum of the light source.”…””}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjh²hubhÞ)”}”(hX\Driver makes necessary conversions to both directions so that user handles only lux values. Lux value is calculated using information from the both channels. HW threshold level is calculated from the given lux value to match with current type of the lightning. Sometimes inaccuracy of the estimations lead to false interrupt, but that doesn't harm.”h]”hX^Driver makes necessary conversions to both directions so that user handles only lux values. Lux value is calculated using information from the both channels. HW threshold level is calculated from the given lux value to match with current type of the lightning. Sometimes inaccuracy of the estimations lead to false interrupt, but that doesn’t harm.”…””}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjh²hubhÞ)”}”(hŒÄALS contains 4 different gain steps. Driver automatically selects suitable gain step. After each measurement, reliability of the results is estimated and new measurement is triggered if necessary.”h]”hŒÄALS contains 4 different gain steps. Driver automatically selects suitable gain step. After each measurement, reliability of the results is estimated and new measurement is triggered if necessary.”…””}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K"hjh²hubhÞ)”}”(hŒ†Platform data can provide tuned values to the conversion formulas if values are known. Otherwise plain sensor default values are used.”h]”hŒ†Platform data can provide tuned values to the conversion formulas if values are known. Otherwise plain sensor default values are used.”…””}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K&hjh²hubhÞ)”}”(hŒsProximity side is little bit simpler. There is no need for complex conversions. It produces directly usable values.”h]”hŒsProximity side is little bit simpler. There is no need for complex conversions. It produces directly usable values.”…””}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K)hjh²hubhÞ)”}”(hŒ…Driver controls chip operational state using pm_runtime framework. Voltage regulators are controlled based on chip operational state.”h]”hŒ…Driver controls chip operational state using pm_runtime framework. Voltage regulators are controlled based on chip operational state.”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K,hjh²hubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒSYSFS”h]”hŒSYSFS”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjšh²hh³hÇh´K0ubhŒdefinition_list”“”)”}”(hhh]”(hŒdefinition_list_item”“”)”}”(hŒ2chip_id RO - shows detected chip type and version ”h]”(hŒterm”“”)”}”(hŒchip_id”h]”hŒchip_id”…””}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´K4hj²ubhŒ definition”“”)”}”(hhh]”hÞ)”}”(hŒ)RO - shows detected chip type and version”h]”hŒ)RO - shows detected chip type and version”…””}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K4hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´K4hj­ubj±)”}”(hŒmpower_state RW - enable / disable chip. Uses counting logic 1 enables the chip 0 disables the chip”h]”(j·)”}”(hŒ power_state”h]”hŒ power_state”…””}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´K9hjåubjÇ)”}”(hhh]”(hÞ)”}”(hŒ/RW - enable / disable chip. Uses counting logic”h]”hŒ/RW - enable / disable chip. Uses counting logic”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K7hj÷ubhŒ block_quote”“”)”}”(hŒ&1 enables the chip 0 disables the chip”h]”hÞ)”}”(hŒ&1 enables the chip 0 disables the chip”h]”hŒ&1 enables the chip 0 disables the chip”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K9hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K9hj÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´K9hj­h²hubj±)”}”(hŒ]lux0_input RO - measured lux value sysfs_notify called when threshold interrupt occurs ”h]”(j·)”}”(hŒ lux0_input”h]”hŒ lux0_input”…””}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´K>hj.ubjÇ)”}”(hhh]”(hÞ)”}”(hŒRO - measured lux value”h]”hŒRO - measured lux value”…””}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K>hj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´K>hj­h²hubj±)”}”(hŒÀlux0_sensor_range RO - lux0_input max value. Actually never reaches since sensor tends to saturate much before that. Real max value varies depending on the light spectrum etc. ”h]”(j·)”}”(hŒlux0_sensor_range”h]”hŒlux0_sensor_range”…””}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´KEhjuubjÇ)”}”(hhh]”(hÞ)”}”(hŒRO - lux0_input max value.”h]”hŒRO - lux0_input max value.”…””}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KAhj‡ubj )”}”(hŒƒActually never reaches since sensor tends to saturate much before that. Real max value varies depending on the light spectrum etc. ”h]”hÞ)”}”(hŒ‚Actually never reaches since sensor tends to saturate much before that. Real max value varies depending on the light spectrum etc.”h]”hŒ‚Actually never reaches since sensor tends to saturate much before that. Real max value varies depending on the light spectrum etc.”…””}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KChj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KChj‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´KEhj­h²hubj±)”}”(hŒ&lux0_rate RW - measurement rate in Hz ”h]”(j·)”}”(hŒ lux0_rate”h]”hŒ lux0_rate”…””}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´KHhj¼ubjÇ)”}”(hhh]”hÞ)”}”(hŒRW - measurement rate in Hz”h]”hŒRW - measurement rate in Hz”…””}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KHhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´KHhj­h²hubj±)”}”(hŒ1lux0_rate_avail RO - supported measurement rates ”h]”(j·)”}”(hŒlux0_rate_avail”h]”hŒlux0_rate_avail”…””}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´KKhjëubjÇ)”}”(hhh]”hÞ)”}”(hŒ RO - supported measurement rates”h]”hŒ RO - supported measurement rates”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KKhjýubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjëubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´KKhj­h²hubj±)”}”(hŒ£lux0_calibscale RW - calibration value. Set to neutral value by default. Output results are multiplied with calibscale / calibscale_default value. ”h]”(j·)”}”(hŒlux0_calibscale”h]”hŒlux0_calibscale”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´KRhjubjÇ)”}”(hhh]”(hÞ)”}”(hŒRW - calibration value.”h]”hŒRW - calibration value.”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KNhj,ubj )”}”(hŒkSet to neutral value by default. Output results are multiplied with calibscale / calibscale_default value. ”h]”hÞ)”}”(hŒjSet to neutral value by default. Output results are multiplied with calibscale / calibscale_default value.”h]”hŒjSet to neutral value by default. Output results are multiplied with calibscale / calibscale_default value.”…””}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KPhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KPhj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´KRhj­h²hubj±)”}”(hŒ7lux0_calibscale_default RO - neutral calibration value ”h]”(j·)”}”(hŒlux0_calibscale_default”h]”hŒlux0_calibscale_default”…””}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´KUhjaubjÇ)”}”(hhh]”hÞ)”}”(hŒRO - neutral calibration value”h]”hŒRO - neutral calibration value”…””}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KUhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´KUhj­h²hubj±)”}”(hŒ¯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. ”h]”(j·)”}”(hŒlux0_thresh_above_value”h]”hŒlux0_thresh_above_value”…””}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´K\hjubjÇ)”}”(hhh]”(hÞ)”}”(hŒRW - HI level threshold value.”h]”hŒRW - HI level threshold value.”…””}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KXhj¢ubj )”}”(hŒhAll results above the value trigs an interrupt. 65535 (i.e. sensor_range) disables the above interrupt. ”h]”hÞ)”}”(hŒgAll results above the value trigs an interrupt. 65535 (i.e. sensor_range) disables the above interrupt.”h]”hŒgAll results above the value trigs an interrupt. 65535 (i.e. sensor_range) disables the above interrupt.”…””}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KZhj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KZhj¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´K\hj­h²hubj±)”}”(hŒ’lux0_thresh_below_value RW - LO level threshold value. All results below the value trigs an interrupt. 0 disables the below interrupt. ”h]”(j·)”}”(hŒlux0_thresh_below_value”h]”hŒlux0_thresh_below_value”…””}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´Kbhj×ubjÇ)”}”(hhh]”(hÞ)”}”(hŒRW - LO level threshold value.”h]”hŒRW - LO level threshold value.”…””}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K_hjéubj )”}”(hŒPAll results below the value trigs an interrupt. 0 disables the below interrupt. ”h]”hÞ)”}”(hŒOAll results below the value trigs an interrupt. 0 disables the below interrupt.”h]”hŒOAll results below the value trigs an interrupt. 0 disables the below interrupt.”…””}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kahjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kahjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´Kbhj­h²hubj±)”}”(hŒbprox0_raw RO - measured proximity value sysfs_notify called when threshold interrupt occurs ”h]”(j·)”}”(hŒ prox0_raw”h]”hŒ prox0_raw”…””}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´KghjubjÇ)”}”(hhh]”(hÞ)”}”(hŒRO - measured proximity value”h]”hŒRO - measured proximity value”…””}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kehj0ubj )”}”(hŒ4sysfs_notify called when threshold interrupt occurs ”h]”hÞ)”}”(hŒ3sysfs_notify called when threshold interrupt occurs”h]”hŒ3sysfs_notify called when threshold interrupt occurs”…””}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KghjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kghj0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´Kghj­h²hubj±)”}”(hŒ3prox0_sensor_range RO - prox0_raw max value (1023) ”h]”(j·)”}”(hŒprox0_sensor_range”h]”hŒprox0_sensor_range”…””}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´KjhjeubjÇ)”}”(hhh]”hÞ)”}”(hŒRO - prox0_raw max value (1023)”h]”hŒRO - prox0_raw max value (1023)”…””}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kjhjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjeubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´Kjhj­h²hubj±)”}”(hŒƒprox0_raw_en RW - enable / disable proximity - uses counting logic - 1 enables the proximity - 0 disables the proximity ”h]”(j·)”}”(hŒ prox0_raw_en”h]”hŒ prox0_raw_en”…””}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´Kphj”ubjÇ)”}”(hhh]”(hÞ)”}”(hŒ5RW - enable / disable proximity - uses counting logic”h]”hŒ5RW - enable / disable proximity - uses counting logic”…””}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kmhj¦ubj )”}”(hŒ5- 1 enables the proximity - 0 disables the proximity ”h]”hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ1 enables the proximity”h]”hÞ)”}”(hjÄh]”hŒ1 enables the proximity”…””}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KohjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj½ubjÁ)”}”(hŒ0 disables the proximity ”h]”hÞ)”}”(hŒ0 disables the proximity”h]”hŒ0 disables the proximity”…””}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KphjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj½ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j»h³hÇh´Kohj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kohj¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´Kphj­h²hubj±)”}”(hX—prox0_reporting_mode RW - trigger / periodic. In "trigger" mode the driver tells two possible values: 0 or prox0_sensor_range value. 0 means no proximity, 1023 means proximity. This causes minimal number of interrupts. In "periodic" mode the driver reports all values above prox0_thresh_above. This causes more interrupts, but it can give _rough_ estimate about the distance. ”h]”(j·)”}”(hŒprox0_reporting_mode”h]”hŒprox0_reporting_mode”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´Kzhj ubjÇ)”}”(hhh]”(hÞ)”}”(hŒRW - trigger / periodic.”h]”hŒRW - trigger / periodic.”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kshjubj )”}”(hXJIn "trigger" mode the driver tells two possible values: 0 or prox0_sensor_range value. 0 means no proximity, 1023 means proximity. This causes minimal number of interrupts. In "periodic" mode the driver reports all values above prox0_thresh_above. This causes more interrupts, but it can give _rough_ estimate about the distance. ”h]”hÞ)”}”(hXIIn "trigger" mode the driver tells two possible values: 0 or prox0_sensor_range value. 0 means no proximity, 1023 means proximity. This causes minimal number of interrupts. In "periodic" mode the driver reports all values above prox0_thresh_above. This causes more interrupts, but it can give _rough_ estimate about the distance.”h]”hXQIn “trigger†mode the driver tells two possible values: 0 or prox0_sensor_range value. 0 means no proximity, 1023 means proximity. This causes minimal number of interrupts. In “periodic†mode the driver reports all values above prox0_thresh_above. This causes more interrupts, but it can give _rough_ estimate about the distance.”…””}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kuhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kuhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´Kzhj­h²hubj±)”}”(hŒ\prox0_reporting_mode_avail RO - accepted values to prox0_reporting_mode (trigger, periodic) ”h]”(j·)”}”(hŒprox0_reporting_mode_avail”h]”hŒprox0_reporting_mode_avail”…””}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´K}hjRubjÇ)”}”(hhh]”hÞ)”}”(hŒ@RO - accepted values to prox0_reporting_mode (trigger, periodic)”h]”hŒ@RO - accepted values to prox0_reporting_mode (trigger, periodic)”…””}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K}hjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´K}hj­h²hubj±)”}”(hŒKprox0_thresh_above_value RW - threshold level which trigs proximity events.”h]”(j·)”}”(hŒprox0_thresh_above_value”h]”hŒprox0_thresh_above_value”…””}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¶h³hÇh´KhjubjÇ)”}”(hhh]”hÞ)”}”(hŒ2RW - threshold level which trigs proximity events.”h]”hŒ2RW - threshold level which trigs proximity events.”…””}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K€hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j°h³hÇh´Khj­h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j«hjšh²hh³hÇh´Nubeh}”(h]”Œsysfs”ah ]”h"]”Œsysfs”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K0ubeh}”(h]”Œkernel-driver-apds990x”ah ]”h"]”Œkernel driver apds990x”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jéŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jÃjÀj—j”j»j¸uŒ nametypes”}”(jÉj—‰j»‰uh}”(jÀhÊj”jj¸jšuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.