核心驅動 bh1770glc¶
支援的晶片
ROHM BH1770GLC
OSRAM SFH7770
資料手冊: 不提供免費下載
作者: Samu Onkalo <samu.p.onkalo@nokia.com>
描述¶
BH1770GLC 和 SFH7770 是組合式環境光和接近感測器。ALS 和接近部分獨立執行,但它們共享通用的 I2C 介面和中斷邏輯。原則上它們可以獨立執行,但 ALS 側的結果用於評估接近感測器的可靠性。
ALS 產生 16 位勒克斯值。晶片包含中斷邏輯以產生高低閾值中斷。
接近部分包含紅外 LED 驅動器,最多支援 3 個紅外 LED。晶片測量反射的紅外光量併產生接近結果。解析度為 8 位。驅動器僅支援一個通道。驅動器使用 ALS 結果來評估接近結果的可靠性。因此,當需要接近檢測時,ALS 總是執行的。
驅動程式使用閾值中斷,以避免輪詢值的需要。晶片中不存在接近低中斷。這是透過使用延遲工作來模擬的。只要有高於閾值的接近中斷,延遲工作就會被向前推進。因此,當接近水平低於閾值時,沒有中斷,延遲工作最終將執行。這被視為沒有接近指示。
當在配置中啟用時,晶片狀態透過執行時 PM 框架進行控制。
校準比例因子用於隱藏晶片之間的差異。預設值設定為中性狀態,即因子為 1.00。要獲得正確的值,需要校準光源作為參考。校準比例因子設定使得測量結果與預期的勒克斯值大致相同。
SYSFS¶
- chip_id
RO - 顯示檢測到的晶片型別和版本
- power_state
RW - 啟用/停用晶片
使用計數邏輯
1 啟用晶片
0 停用晶片
- lux0_input
RO - 測量的勒克斯值
當閾值中斷髮生時呼叫 sysfs_notify
- lux0_sensor_range
RO - lux0_input 最大值
- lux0_rate
RW - 測量速率(單位:赫茲)
- lux0_rate_avail
RO - 支援的測量速率
- lux0_thresh_above_value
RW - 高電平閾值
所有高於該值的結果都會觸發中斷。65535(即 sensor_range)停用高於中斷。
- lux0_thresh_below_value
RW - 低電平閾值
所有低於該值的結果都會觸發中斷。0 停用低於中斷。
- lux0_calibscale
RW - 校準值
預設設定為中性值。輸出結果乘以 calibscale / calibscale_default 值。
- lux0_calibscale_default
RO - 中性校準值
- prox0_raw
RO - 測量的接近值
當閾值中斷髮生時呼叫 sysfs_notify
- prox0_sensor_range
RO - prox0_raw 最大值
- prox0_raw_en
RW - 啟用/停用接近功能
使用計數邏輯
1 啟用接近功能
0 停用接近功能
- prox0_thresh_above_count
RW - 觸發事件所需的接近中斷次數
- prox0_rate_above
RW - 當電平高於閾值時(即已報告接近開啟時)的測量速率(單位:赫茲)。
- prox0_rate_below
RW - 當電平低於閾值時(即已報告接近關閉時)的測量速率(單位:赫茲)。
- prox0_rate_avail
RO - 支援的接近測量速率(單位:赫茲)
- prox0_thresh_above0_value
RW - 觸發接近事件的閾值。
由永續性過濾器過濾 (prox0_thresh_above_count)
- prox0_thresh_above1_value
RW - 立即觸發事件的閾值