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