Rockchip 遥控器与传感器输入

Rockchip 遥控器与传感器输入

1. PWM IR遥控

RK3588板级 DTS可见:

1
compatible = "rockchip,remotectl-pwm";

对应 remotectl/rockchip_pwm_remotectl.c,主配置启用 ROCKCHIP_REMOTECTLROCKCHIP_REMOTECTL_PWM

2. 数据路径

1
2
3
4
5
6
7
PWM capture IRQ
-> decode pulse timing/state machine
-> lookup usercode + scancode
-> Linux keycode
-> input_report_key()
-> input_sync()
-> release timer

厂商驱动使用 tasklet/timer分离捕获和解析。

3. DT keymap

driver解析多个 remote key table:

  • usercode;
  • scancode/keycode pairs;
  • power key;
  • PWM channel/IRQ;
  • wake配置。

遥控器协议、地址码和键码必须匹配实际遥控器。

4. Power wake

driver支持将 power key信息配置到 secure firmware/硬件 pwrmatch,suspend/resume通过 SIP SMC保持遥控唤醒。普通运行时解码成功不代表深度休眠唤醒一定可用。

5. Repeat/release

IR协议可能持续发送 repeat frame。driver需:

  • 维持按下;
  • 处理 repeat;
  • timeout合成 release;
  • 避免丢 IRQ后 stuck key。

6. drivers/input/sensors

这是 Rockchip厂商 sensor框架,包含:

  • accelerometer;
  • gyroscope;
  • compass;
  • light/proximity;
  • pressure;
  • hall/angle/temperature。

许多 driver面向旧 Android HAL,通过 input events或私有接口上报。

7. 与 IIO 的关系

上游新 sensor更倾向 IIO。两套框架同时绑定同一芯片会冲突。选择依据:

  • 产品 Android HAL预期;
  • DTS compatible;
  • Kconfig;
  • buffer/trigger需求;
  • 用户 ABI兼容。

8. 维护风险

厂商目录常包含:

  • 私有 ioctl/sysfs;
  • 固件 blobs;
  • Android wakelock兼容;
  • 老 timer/tasklet API;
  • 全局变量;
  • 非标准 DT properties。

修改时需做并发、remove、suspend和越界安全审查。

9. 调试

1
2
3
4
cat /proc/bus/input/devices
evtest
dmesg | grep -Ei 'remote|pwm|key'
cat /sys/kernel/debug/pwm 2>/dev/null

IR raw waveform问题应结合示波器/逻辑分析仪和 IRQ计数判断。

文章互动

阅读 --

留言

0 条留言

正在加载留言…