一.驱动层配置:
这里是rk3326为例
1.在驱动文件kernel-5.10/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v11-avb.dtsi中
配置键值
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 2>;
io-channel-names = "buttons";
poll-interval = <100>;
keyup-threshold-microvolt = <1800000>; 按键抬起电压值
custom-key {
linux,code = <KEY_CUSTIOM>;
label = "custom";
press-threshold-microvolt = <1310000>; //按键按下电压采样值
};
备注:1.home -key 为新加键值,
2.press-threshold-microvolt = <1310000>; //按键按下电压采样值 (需要和电子工程师确定采样值大小)
2.在目录kernel-5.10/include/uapi/linux/input-event-codes.h文件修改添加
#define KEY_CUSTIOM 249 /* 新增按键 */
说明:这里定义的键名称一定要和上一步rk3326-evb-lp3-v11-avb.dtsi文件配件的键名称保持一致
二.上层映射配置
1.当驱动层添加完成配置后,通过getevent命令查看底层驱动配置的键值
Seoul_TF:/ $ Seoul_TF:/ $ getevent
add device 1: /dev/input/event2
name: "mtk-tpd"
add device 2: /dev/input/event0
name: "ACCDET"
add device 3: /dev/input/event1
name: "mtk-kpd"
/dev/input/event1: 0001 00f9 00000001
/dev/input/event1: 0000 0000 00000000
/dev/input/event1: 0001 00f9 00000000
/dev/input/event1: 0000 0000 000000002
————————————————
2.添加KL 映射
按键布局文件由 供应商、产品(可能还包括版本)ID 或输入设备名称来确定位置。系统会按顺序查阅以下路径,在以下任一kl文件下添加映射即可:
如果所有文件都没有,系统会默认是去读取/data/system/devices/keylayout/Generic.kl配置
————————————————
原文链接:https://blog.csdn.net/a546036242/article/details/121012512