Rockchip 遥控器与传感器输入
1. PWM IR遥控
RK3588板级 DTS可见:
1 | compatible = "rockchip,remotectl-pwm"; |
对应 remotectl/rockchip_pwm_remotectl.c,主配置启用 ROCKCHIP_REMOTECTL 和 ROCKCHIP_REMOTECTL_PWM。
2. 数据路径
1 | PWM capture IRQ |
厂商驱动使用 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 | cat /proc/bus/input/devices |
IR raw waveform问题应结合示波器/逻辑分析仪和 IRQ计数判断。
正在加载留言…