RK3588 输入拓扑与设备树
1. 典型拓扑
1 | SARADC ch1 -> adc-keys -> volume/menu/back |
2. ADC keys
rk3588s-evb.dtsi 等公共文件定义 adc-keys、SARADC channel 1、1.8V key-up和四档键值。对应 CONFIG_KEYBOARD_ADC=y。
不同板 resistor ladder可能不同,不应复制阈值而不核对原理图。
3. Touch
多个 EVB定义 goodix,gt1x,例如 I2C地址 0x14、reset/IRQ GPIO和 LCD 3.3V supply。部分板还并列 Hynitron/FocalTech候选。
验证:
1 | i2cdetect -y <bus> # 仅确认安全时 |
不要对未知 I2C地址盲扫或强制 bind。
4. PMIC power key
RK806通过 MFD创建 rk805-pwrkey platform child。Input driver不直接匹配 RK806 DT compatible;其 probe依赖 parent MFD、regmap irq和资源名称。
5. IR
若板 DTS有 rockchip,remotectl-pwm,驱动读取 remote key tables并配置 power wake。需要 PWM capture pinmux、IRQ和 secure firmware共同支持。
6. GPIO keys
主配置已启用 interrupt和 polled GPIO keyboard,但具体 RK3588公共板更多使用 ADC keys。是否有 GPIO button必须按目标 DTS核对。
7. USB/Bluetooth
这两类不在 RK3588 SoC DTS中枚举具体键鼠:
- USB runtime enumeration;
- Bluetooth pairing/SDP/GATT;
- HID Core生成 input device。
需同时启用 USB host、BT、HID和对应 transport。
8. 配置事实
主配置:
- evdev、ADC/GPIO keyboard、touch、IR、uinput、RK805 pwrkey启用;
- AT keyboard、PS/2 mouse、serio禁用;
- FF memless启用;
- mouse touchpad drivers CYAPA/ELAN I2C启用。
最终产品还会叠加 fragment,必须以 /proc/config.gz 为准。
9. Android
Android InputReader按 .idc/.kl/.kcm 和 device identity映射:
- Linux keycode到 Android key;
- touch orientation/size;
- virtual keys;
- wake policy。
内核事件正确不代表 Android层映射一定正确。
10. 验证链
1 | 原理图 |
正在加载留言…