gpio_button_data:描述按键/按钮的控制逻辑配置参数。 gpio_keys_platform_data:描述按键/按钮的平台配置参数。 gpio_keys_drvdata:作为platform data注册到platform设备总线的配置参数。 四、设备注册与probe流程 gpio-key驱动以platform_driver的身份注册到系统中,因此需要定义platform_driver结构。在probe阶段,驱动会获取...
本文主要以分析通用GPIO按键驱动:gpio_keys.C文件为主,将其中牵涉到Linux驱动架构流程,以及架构设计思想进行分析。 【概述】gpio_keys是基于input架构实现的一个通用gpio按键驱动。该驱动基于pladform_driver架构,实现了驱动和设备分离,减少了程序的耦合性,同时提高程序的可移植性。符合Linux设备驱动模型的设计思想。工程...
--- a/kernel-4.4/drivers/input/keyboard/gpio_keys.c+++ b/kernel-4.4/drivers/input/keyboard/gpio_keys.c@@ -32,6 +32,11 @@#include<linux/of_irq.h>#include<linux/spinlock.h>++#define LOG_TAG "[BUTTON]: %s() line: %d "+#define PRINTK_T(fmt, args...) printk(KERN_INFO LOG_TAG...
linux内核下的 drivers/input/keyboard/gpio_keys.c实现了一个体系结构无关的GPIO按键驱动,使用此按键驱动,只需在相应的设备树定义相关的数据即可。驱动的实现非常简单,但是较适合于实现独立式按键驱动。 gpio-keys是基于input架构实现的一个通用GPIO按键驱动。该驱动基于platform_driver架构,实现了驱动和设备分离,符合Li...
Linux Driver : gpio-keys的解析 背景 在阅读高通设备树配置一个按键的时候,没有找到按键是在什么时候进行处理的。因此根据仅有的线索gpio-key.c进行分析,发现根据之前的学习积累,很快就看懂了。 介绍 gpio-keys是基于platform来实现实现的一个通用的GPIO按键驱动,对上可以提供input子系统的event。
简介:Linux内核中的gpio-keys.c(driver/input/keyboard/gpio-keys.c)统一了所有关于按键的驱动实现方式。其良好的代码架构可以兼容几乎所有平台的关于按键的处理流程。如果需要在目标平台实现关于按键的驱动程序,完全可以直接使用该驱动,几乎不用自己实现任何代码。
2.2 gpio_keys_platform_data结构体 platform_data结构体顾名思义,基本上就是和我们整个驱动开发数据相关的。 staticstructgpio_keys_platform_dataomapl138_user_keys_pdata={ .buttons = omapl138_user_keys, .nbuttons = ARRAY_SIZE( omapl138_user_keys ) ...
1>首先来查看驱动源码,在/mnt/workspace/osrc-lab/source/drivers/input/keyboard/gpio_keys_polled.c,我们可以看到驱动的源码并不大,大家可以自己仔细阅读,对开发驱动会有很大的好处。 2> 在这个驱动源码里我们可以看到设备树的驱动就是根据“gpio-keys-polled“进行匹配的,当我们设备树里的compatible对应的名字和驱动...
2. GPIO键盘驱动: GPIO键盘驱动允许使用GPIO引脚作为输入设备,将其视为键盘的按键或开关。使用gpio-keys驱动模块,可以将GPIO引脚映射为键盘按键,并通过读取输入设备节点来监视和控制GPIO引脚。 首先,确保内核配置中已启用gpio-keys支持: ``` CONFIG_INPUT_GPIO_KEYS=y ...