1.vendor或者device 目录或者framework下有一些.kl文件定义键值
2.kl文件命名为规则为Vendor_2717_Product_32b0.kl 其中2717 和32b0可以通过 cat /proc/bus/input/devices 查看
如:
console:/ # cat /proc/bus/input/devices
I: Bus=0018 Vendor=3697 Product=0001 Version=0001
N: Name="MStar Smart TV IR Receiver"
P: Phys=/dev/ir
S: Sysfs=/devices/ir/input/input0
U: Uniq=
H: Handlers=sysrq kbd event0 mstar_ir
B: PROP=0
B: EV=100013
B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffbff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe
B: MSC=10
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="ST LSM6DS3 Accelerometer Sensor"
P: Phys=
S: Sysfs=/devices/i2c@2/i2c-2/2-006a/input/input1
U: Uniq=
H: Handlers=event1
B: PROP=0
B: EV=11
B: MSC=97
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="ST LSM6DS3 Gyroscope Sensor"
P: Phys=
S: Sysfs=/devices/i2c@2/i2c-2/2-006a/input/input2
U: Uniq=
H: Handlers=event2
B: PROP=0
B: EV=11
B: MSC=97
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="ST LSM6DS3 Significant Motion Sensor"
P: Phys=
S: Sysfs=/devices/i2c@2/i2c-2/2-006a/input/input3
U: Uniq=
H: Handlers=event3
B: PROP=0
B: EV=11
B: MSC=91
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="ST LSM6DS3 Step Counter Sensor"
P: Phys=
S: Sysfs=/devices/i2c@2/i2c-2/2-006a/input/input4
U: Uniq=
H: Handlers=event4
B: PROP=0
B: EV=11
B: MSC=91
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="ST LSM6DS3 Step Detector Sensor"
P: Phys=
S: Sysfs=/devices/i2c@2/i2c-2/2-006a/input/input5
U: Uniq=
H: Handlers=event5
B: PROP=0
B: EV=11
B: MSC=91
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="ST LSM6DS3 Tilt Sensor"
P: Phys=
S: Sysfs=/devices/i2c@2/i2c-2/2-006a/input/input6
U: Uniq=
H: Handlers=event6
B: PROP=0
B: EV=11
B: MSC=91
I: Bus=0003 Vendor=0c45 Product=1915 Version=0100
N: Name="USB 2.0 Camera"
P: Phys=usb-mstar-1/button
S: Sysfs=/devices/Mstar-ehci-4/usb4/4-1/4-1:1.0/input/input7
U: Uniq=
H: Handlers=kbd event7
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0 0 0 0
I: Bus=0010 Vendor=0001 Product=0001 Version=0100
N: Name="gpio_keypad"
P: Phys=gpio_keypad/input0
S: Sysfs=/devices/gpio_keypad/input/input8
U: Uniq=
H: Handlers=kbd event8
B: PROP=0
B: EV=100003
B: KEY=10 0 1e0000 0 0 0
I: Bus=0006 Vendor=3697 Product=0002 Version=0000
N: Name="MStar Smart TV Keypad"
P: Phys=
S: Sysfs=/devices/virtual/input/input9
U: Uniq=
H: Handlers=sysrq kbd event9
B: PROP=0
B: EV=3
B: KEY=7fffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe
如果要修改/查看键值先找到对应设备的Vendor和Product对应的数值找到,然后在搜索对应的kl文件即可。
代码驱动注册input设备时会填写Vendor和Product对应的数值。也可以通过查看代码获取这个数值如:
3.如何新添加键值
在Vendor_0001_Product_0001.kl文件中添加映射如:
key 35 PAUSE
说明:
key -- 是关键字。固定值,不需要改变。
35 -- 驱动上报的值 可以查看“include/linux/input.h”,不过现在多放在设备树中了
PAUSE-- 它对应是“KeycodeLabels.h”文件中的KEYCODES表格元素的“literal”值。