内核驱动 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 - 立即触发事件的阈值