|
内核
kernel/arch/arm64/boot/dts/rpdzkj_config.dtsi
adc-keys {
up-key {
linux,code = <103>; //按键号码
label = "up"; //按键类型
rockchip,adc_value = <839>; //adc键值
};
};
PS:GPIO按键不需要ADC键值
按键号码跟按键名字决定按键的功能
按键号码与按键类型的值可以从系统头文件获取,不同系统在不同的目录
adc键值的获取方式看下面
Android
device/rockchip/common/rk29-keypad.kl
key 103 UP
103跟dts的“linux,code”对应
UP跟dts的“label”对应,up名字由记录按键类型文件中获取
读取ADC键值的方法:
1、按键驱动中找到读取ADC键值的节点
/kernel/drivers/input/keyboard/rk_keys.c
系统具体使用的按键驱动在相应的目录下找到被编译的文件
static ssize_t adc_value_show(struct device *dev, struct device_attribute *attr,char *buf)
{
struct rk_keys_drvdata *ddata = dev_get_drvdata(dev);
return sprintf(buf, "adc_value: %d\n", ddata->result);
}
static DEVICE_ATTR(get_adc_value, S_IRUGO | S_IWUSR, adc_value_show, NULL);
//get_adc_value就是节点的名字
static int keys_probe(struct platform_device *pdev)
{
error = device_create_file(dev, &dev_attr_get_adc_value);
//创建节点的函数
}
2、在文件系统中cat节点
busybox find / -name "get_adc_value"
按下按键
cat /sys/devices/ff100000.adc/key.35/get_adc_value
显示出对应按键的adc键值:adc_value:xxx
|
|