[RK3288][Android6.0] 系统按键驱动流程分析

本文分析了Rockchip RK3288在Android6.0系统中的按键驱动流程,重点讲解了按键驱动位于kernel/drivers/input/keyboard/rk_keys.c,其中电源键作为GPIO并具备唤醒功能,而音量键通过ADC读取电压值。按键驱动通过内核input子系统注册,并由rk_keys_parse_dt()解析dts中的按键配置。keys_timer()定时器处理按键状态变化,开机时工作队列每100ms检测按键,电源键唤醒时中断也会触发定时器。
摘要由CSDN通过智能技术生成

Rockchip的按键驱动位于 kernel/drivers/input/keyboard/rk_keys.c

默认支持的keys在dts中定义:

这里写图片描述

其中power key作为普通gpio,具有唤醒功能。而其他按键比如,volume up/down 可以通过adc精确读取到gpio的电压值,原理图如下:

这里写图片描述
这里写图片描述

和一般的按键一样,驱动是通过内核input子系统来将keys注册供用户空间使用

static int keys_probe(struct platform_device *pdev)
{
    input = devm_input_allocate_device(dev);
    input->name = "rk29-keypad";    /* pdev->name; */
    input->phys = "gpio-keys/input0";
    input->dev.parent 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值