核心驅動 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 - 立即觸發事件的閾值